using System.Collections.Generic; using UnityEngine; //我的福地 namespace vnxbqy.UI { public class BlessedLandWin : Window { [SerializeField] ScrollerController itemScroller; [SerializeField] ButtonEx btnClose; [SerializeField] ButtonEx btnRecord; [SerializeField] ButtonEx btnRefresh; [SerializeField] ButtonEx btnSuperRefresh; [SerializeField] ButtonEx btnRreasureBowl; [SerializeField] ButtonEx btnSearch; [SerializeField] ButtonEx btnManage; [SerializeField] ImageEx imgRefresh; [SerializeField] ImageEx imgMoney; [SerializeField] TextEx txtFreeWorkerCount; [SerializeField] TextEx txtAllWorkerCount; [SerializeField] TextEx txtSuperRefreshCount; [SerializeField] TextEx txtBlessedLandName; [SerializeField] RectTransform rectBlessedLandNameImage; [SerializeField] RectTransform rectBlessedLandNameText; BlessedLandModel blessedLandModel { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { btnClose.SetListener(() => { WindowCenter.Instance.Close(); }); btnRecord.SetListener(() => { blessedLandModel.SendCB033Pack(5); }); btnRefresh.SetListener(() => { TryRefresh(); }); btnSuperRefresh.SetListener(() => { TrySuperRefresh(); }); btnRreasureBowl.SetListener(() => { WindowCenter.Instance.Open(); }); btnSearch.SetListener(() => { blessedLandModel.SendCB033Pack(3); blessedLandModel.SendCB033Pack(2); }); btnManage.SetListener(() => { WindowJumpMgr.Instance.WindowJumpToEx("BlessedLandManageWin"); }); } protected override void OnPreOpen() { itemScroller.OnRefreshCell += OnItemCellScrollerRefreshCell; blessedLandModel.UpdateNewAreaData += OnUpdateAreaData; blessedLandModel.UpdateFellowAndSurroundAreaData += OnUpdateFellowAndSurroundAreaData; blessedLandModel.UpdateRecordInfo += OnUpdateRecordInfo; WindowCenter.Instance.windowBeforeOpenEvent += OnWindowBeforeOpenEvent; WindowCenter.Instance.windowBeforeCloseEvent += OnWindowBeforeCloseEvent; DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; ModelCenter.Instance.GetModel().showPlayerId = blessedLandModel.myPlayerId; if (blessedLandModel.AwardType == 0) blessedLandModel.SendCB034Pack(); Display(); } void Display() { imgMoney.SetSprite(StringUtility.Contact("Money_Type_", blessedLandModel.refreshTypeCostCurrencyValueDict[1][0])); imgRefresh.sprite = blessedLandModel.IsRefresh(0) ? UILoader.LoadSprite("BlessedLand03") : UILoader.LoadSprite("BlessedLand04"); btnRefresh.SetColorful(null, blessedLandModel.IsRefresh(0)); btnSuperRefresh.SetActive(blessedLandModel.GetResdueSuperRefreshCount() > 0); txtAllWorkerCount.text = StringUtility.Contact(Language.Get("BlessedLand007"), " ", blessedLandModel.WorkerCount); txtFreeWorkerCount.text = StringUtility.Contact(Language.Get("BlessedLand006"), " ", blessedLandModel.WorkerCount - blessedLandModel.GetWorkingCount()); txtSuperRefreshCount.text = Language.Get("BlessedLand036", blessedLandModel.GetResdueSuperRefreshCount(), blessedLandModel.refreshTypeDailyLimitDict[1]); txtBlessedLandName.text = Language.Get("BlessedLand042", Language.Get("BlessedLand012")); } protected override void OnAfterOpen() { if (!blessedLandModel.newAreaDataDict.ContainsKey(blessedLandModel.myPlayerId)) return; itemScroller.Refresh(); for (int i = 0; i < blessedLandModel.newAreaDataDict[blessedLandModel.myPlayerId].MineItems.Count; i++) { itemScroller.AddCell(ScrollerDataType.Header, i); } itemScroller.Restart(); } protected override void OnAfterClose() { } protected override void OnPreClose() { itemScroller.OnRefreshCell -= OnItemCellScrollerRefreshCell; blessedLandModel.UpdateNewAreaData -= OnUpdateAreaData; blessedLandModel.UpdateFellowAndSurroundAreaData -= OnUpdateFellowAndSurroundAreaData; blessedLandModel.UpdateRecordInfo -= OnUpdateRecordInfo; WindowCenter.Instance.windowBeforeOpenEvent -= OnWindowBeforeOpenEvent; WindowCenter.Instance.windowBeforeCloseEvent -= OnWindowBeforeCloseEvent; DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize; } private void OnWindowBeforeOpenEvent(Window window) { if (window.name == "BlessedLandDetailsWin" || window.name == "BlessedLandCornucopiaWin" || window.name == "BlessedLandManageWin" || window.name == "BlessedLandOtherWin" || window.name == "BlessedLandRecordWin" || window.name == "BlessedLandSeekWin" || window.name == "BatchWin" || window.name == "BlessedLandFightWin" || window.name == "BlessedLandVictoryWin" || window.name == "BlessedLandDefeatedWin") { itemScroller.SetActive(false); } } private void OnWindowBeforeCloseEvent(Window window) { if (window.name == "BlessedLandDetailsWin" || window.name == "BlessedLandCornucopiaWin" || window.name == "BlessedLandManageWin" || window.name == "BlessedLandOtherWin" || window.name == "BlessedLandRecordWin" || window.name == "BlessedLandSeekWin" || window.name == "BatchWin" || window.name == "BlessedLandFightWin" || window.name == "BlessedLandVictoryWin" || window.name == "BlessedLandDefeatedWin") { itemScroller.SetActive(true); itemScroller.Refresh(); if (!blessedLandModel.newAreaDataDict.ContainsKey(blessedLandModel.myPlayerId)) return; for (int i = 0; i < blessedLandModel.newAreaDataDict[blessedLandModel.myPlayerId].MineItems.Count; i++) { itemScroller.AddCell(ScrollerDataType.Header, i); } itemScroller.Restart(); } } private void OnUpdateRecordInfo() { WindowJumpMgr.Instance.WindowJumpToEx("BlessedLandRecordWin"); } private void OnUpdateFellowAndSurroundAreaData() { WindowJumpMgr.Instance.WindowJumpToEx("BlessedLandSeekWin"); } private void OnUpdateAreaData(List list) { itemScroller.m_Scorller.RefreshActiveCellViews(); Display(); } private void OnItemCellScrollerRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as BlessedLandCell; _cell.Display(_cell.index); } void TryRefresh() { if (blessedLandModel.isSkipRefreshTip) { TrySkipLv4Tip(); } else { ConfirmCancel.MoneyIconToggleConfirm( Language.Get("TeamListRefresh"), Language.Get("BlessedLand034"), Language.Get("TeamListRefresh"), blessedLandModel.refreshTypeCostCurrencyValueDict[0][0], blessedLandModel.refreshTypeCostCurrencyValueDict[0][1], UIHelper.GetMoneyCnt(blessedLandModel.refreshTypeCostCurrencyValueDict[0][0]), (bool isOk, bool isToggle) => { ModelCenter.Instance.GetModel().isSkipRefreshTip = isToggle; if (isOk) TrySkipLv4Tip(); }, true, Language.Get("FlyShoseConfirmwin_Text2") ); return; } } void TrySuperRefresh() { ConfirmCancel.MoneyIconToggleConfirm( Language.Get("BlessedLand035"), Language.Get("BlessedLand019"), Language.Get("TeamListRefresh"), blessedLandModel.refreshTypeCostCurrencyValueDict[1][0], blessedLandModel.refreshTypeCostCurrencyValueDict[1][1], UIHelper.GetMoneyCnt(blessedLandModel.refreshTypeCostCurrencyValueDict[1][0]), (bool isOk, bool isToggle) => { if (isOk) { //超级刷新超出了每日刷新次数上限 if (blessedLandModel.RefreshCountSuper >= blessedLandModel.refreshTypeDailyLimitDict[1]) { SysNotifyMgr.Instance.ShowTip("BlessedLand09"); return; } //货币不足 if (UIHelper.GetMoneyCnt(blessedLandModel.refreshTypeCostCurrencyValueDict[1][0]) < (ulong)blessedLandModel.refreshTypeCostCurrencyValueDict[1][1]) { SysNotifyMgr.Instance.ShowTip("XianXiaMJ32"); return; } blessedLandModel.SendCB031Pack(1); } }); return; } void showToggleConfirmCancel() { ConfirmCancel.ToggleConfirmCancel( Language.Get("L1003"), Language.Get("BlessedLand018"), Language.Get("FlyShoseConfirmwin_Text2"), (bool isOk, bool isToggle) => { ModelCenter.Instance.GetModel().isSkipLv4Tip = isToggle; if (isOk) blessedLandModel.SendCB031Pack(0); } ); return; } void TrySkipLv4Tip() { if (blessedLandModel.isSkipLv4Tip == true) { TrySendCB031Pack(); } else { if (blessedLandModel.IsGreaterLv4Item()) { showToggleConfirmCancel(); } else { TrySendCB031Pack(); } } } void TrySendCB031Pack() { if (UIHelper.GetMoneyCnt(blessedLandModel.refreshTypeCostCurrencyValueDict[0][0]) < (ulong)blessedLandModel.refreshTypeCostCurrencyValueDict[0][1]) { SysNotifyMgr.Instance.ShowTip("XianXiaMJ32"); return; } blessedLandModel.SendCB031Pack(0); } public void OnBeforePlayerDataInitialize() { if (WindowCenter.Instance.IsOpen()) { WindowJumpMgr.Instance.ClearJumpData(); WindowCenter.Instance.CloseAll(); } } } }