using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class GuildHawkerWin : UIBase
|
{
|
[SerializeField] Text talkText;
|
[SerializeField] List<ItemCell> items = new List<ItemCell>();
|
[SerializeField] Text orgPrice;
|
[SerializeField] Image orgIcon;
|
[SerializeField] Text price;
|
[SerializeField] Image nowIcon;
|
[SerializeField] Text totalInfo;
|
[SerializeField] Button memberOnlineBtn;
|
[SerializeField] ScrollerController scroller;
|
[SerializeField] Button cutBtn;
|
[SerializeField] Text cutText;
|
[SerializeField] Text timeText;
|
|
|
|
|
protected override void InitComponent()
|
{
|
|
memberOnlineBtn.AddListener(() =>
|
{
|
UIManager.Instance.OpenWindow<GuildHawkerNoCutWin>();
|
});
|
|
cutBtn.AddListener(OnCut);
|
}
|
|
protected override void OnPreOpen()
|
{
|
GuildManager.Instance.UpdateFamilyActionEvent += OnFamilyActionInfoEvent;
|
scroller.OnRefreshCell += OnRefreshCell;
|
GuildManager.Instance.UpdateZhenbaogeEvent += OnPlayerZBGEvent;
|
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
|
|
Display();
|
CreateScroller();
|
}
|
|
|
protected override void OnOpen()
|
{
|
DisplayTalk();
|
}
|
|
protected override void OnPreClose()
|
{
|
GuildManager.Instance.UpdateFamilyActionEvent -= OnFamilyActionInfoEvent;
|
scroller.OnRefreshCell -= OnRefreshCell;
|
GuildManager.Instance.UpdateZhenbaogeEvent -= OnPlayerZBGEvent;
|
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
|
}
|
|
void OnSecondEvent()
|
{
|
timeText.text = Language.Get("Guild_74", TimeUtility.SecondsToShortDHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds));
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as GuildHawkerCutCell;
|
_cell.Display(cell.index);
|
}
|
|
|
void CreateScroller()
|
{
|
scroller.Refresh();
|
var keys = GuildManager.Instance.sortPlayerCut;
|
for (int i = 0; i < keys.Count; i++)
|
{
|
scroller.AddCell(ScrollerDataType.Header, i);
|
}
|
scroller.Restart();
|
}
|
|
|
void Display()
|
{
|
var awards = GuildManager.Instance.GetZBGItems();
|
for (int i = 0; i < items.Count; i++)
|
{
|
if (i < awards.Length)
|
{
|
items[i].SetActive(true);
|
int itemID = awards[i][0];
|
items[i].Init(new ItemCellModel(itemID, false, awards[i][1]));
|
items[i].button.AddListener(() => {
|
ItemTipUtility.Show(itemID);
|
});
|
}
|
else
|
{
|
items[i].SetActive(false);
|
}
|
}
|
|
orgPrice.text = GuildManager.Instance.zbgOrgPriceValue.ToString();
|
orgIcon.SetIconWithMoneyType(GuildManager.Instance.zbgPriceType);
|
nowIcon.SetIconWithMoneyType(GuildManager.Instance.zbgPriceType);
|
|
DisplayFamilyCutInfo();
|
DisplayBtnState();
|
OnSecondEvent();
|
}
|
|
void DisplayFamilyCutInfo()
|
{
|
int cutPrice = 0;
|
if (GuildManager.Instance.familyZBGActions[1].Value3 > 0)
|
{
|
price.text = "-" + GuildManager.Instance.familyZBGActions[1].Value2;
|
|
cutPrice = GuildManager.Instance.zbgOrgPriceValue + (int)GuildManager.Instance.familyZBGActions[1].Value2;
|
}
|
else
|
{
|
price.text = GuildManager.Instance.familyZBGActions[1].Value2.ToString();
|
cutPrice = GuildManager.Instance.zbgOrgPriceValue - (int)GuildManager.Instance.familyZBGActions[1].Value2;
|
}
|
|
|
totalInfo.text = Language.Get("Guild_73", GuildManager.Instance.familyZBGActions.Count - 1, PlayerDatas.Instance.fairyData.fairy.MemberCount,
|
UIHelper.GetIconNameWithMoneyType(GuildManager.Instance.zbgPriceType), cutPrice);
|
|
orgIcon.SetActive(GuildManager.Instance.familyZBGActions.Count > 1);
|
|
}
|
|
void DisplayBtnState()
|
{
|
if (GuildManager.Instance.zhenbaogeCutState == 0)
|
{
|
cutText.text = Language.Get("Guild_76");
|
cutBtn.SetInteractable(true);
|
}
|
else if (GuildManager.Instance.zhenbaogeBuyState == 0)
|
{
|
cutText.text = Language.Get("L1134");
|
cutBtn.SetInteractable(true);
|
}
|
else
|
{
|
cutText.text = Language.Get("L1133");
|
cutBtn.SetInteractable(false);
|
}
|
}
|
|
|
void DisplayTalk()
|
{
|
talkText.text = Language.Get("GuildHawkerTalk" + GuildManager.Instance.GetTalkState());
|
}
|
|
|
private void OnDisable()
|
{
|
|
}
|
|
private void OnFamilyActionInfoEvent(bool restart)
|
{
|
if (restart)
|
{
|
Display();
|
}
|
else
|
{
|
DisplayFamilyCutInfo();
|
}
|
|
DisplayTalk();
|
if (GuildManager.Instance.sortPlayerCut.Count != scroller.GetNumberOfCells(scroller.m_Scorller))
|
{
|
CreateScroller();
|
}
|
else
|
{
|
scroller.m_Scorller.RefreshActiveCellViews();
|
}
|
|
DisplayBtnState();
|
}
|
|
void OnCut()
|
{
|
//退盟的cd限制
|
if (GuildManager.Instance.needCheckCutCD && (TimeUtility.AllSeconds - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60 < GuildManager.Instance.zbgChangFamilyCD )
|
{
|
SysNotifyMgr.Instance.ShowTip("ZhenbaogeCut1", GuildManager.Instance.zbgChangFamilyCD - (TimeUtility.AllSeconds - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60);
|
return;
|
}
|
if (GuildManager.Instance.zhenbaogeCutState == 0)
|
{
|
GuildManager.Instance.OnZhenbaogeOP(0);
|
}
|
else if (GuildManager.Instance.zhenbaogeBuyState == 0)
|
{
|
if (PackManager.Instance.GetEmptyGridCount(PackType.Item) < items.Count)
|
{
|
SysNotifyMgr.Instance.ShowTip("GeRen_lhs_202580");
|
return;
|
}
|
|
if (GuildManager.Instance.familyZBGActions[1].Value3 == 0 && UIHelper.GetMoneyCnt(GuildManager.Instance.zbgPriceType) < GuildManager.Instance.familyZBGActions[1].Value2)
|
{
|
SysNotifyMgr.Instance.ShowTip("LackMoney", GuildManager.Instance.zbgPriceType);
|
return;
|
}
|
|
int cutPrice = 0;
|
if (GuildManager.Instance.familyZBGActions[1].Value3 > 0)
|
{
|
cutPrice = -(int)GuildManager.Instance.familyZBGActions[1].Value2;
|
|
}
|
else
|
{
|
cutPrice = (int)GuildManager.Instance.familyZBGActions[1].Value2;
|
}
|
|
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
|
Language.Get("L1135", GuildManager.Instance.zbgPriceType, cutPrice)+ Language.Get("Guild_71"), (bool isOK) =>
|
{
|
if (isOK)
|
{
|
GuildManager.Instance.OnZhenbaogeOP(1);
|
}
|
});
|
|
}
|
}
|
|
|
void OnPlayerZBGEvent()
|
{
|
DisplayBtnState();
|
}
|
}
|