using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; public class GuildHawkerWin : UIBase { [SerializeField] Text talkText; [SerializeField] List items = new List(); [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(); }); 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.CheckMoneyCount(GuildManager.Instance.zbgPriceType, GuildManager.Instance.familyZBGActions[1].Value2, 2)) { // 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", UIHelper.GetIconNameWithMoneyType(GuildManager.Instance.zbgPriceType), cutPrice)+ Language.Get("Guild_71"), (bool isOK) => { if (isOK) { GuildManager.Instance.OnZhenbaogeOP(1); } }); } } void OnPlayerZBGEvent() { DisplayBtnState(); } }