using System.Linq; using UnityEngine; namespace vnxbqy.UI { //福地-管理 public class BlessedLandManageMouseWin : Window { [SerializeField] ScrollerController scroller; [SerializeField] ButtonEx btnClose; [SerializeField] ButtonEx btnFree; [SerializeField] TextEx txtHireDayCnt; [SerializeField] BlessedLandManageMouseButton btnBuy1; [SerializeField] BlessedLandManageMouseButton btnBuy2; [SerializeField] ButtonEx btnAuto; [SerializeField] ButtonEx btnStop; [SerializeField] ButtonEx btnRenewal; [SerializeField] TextEx txtNextSeekTime; [SerializeField] TextEx txtHireTime; [SerializeField] TextEx txtHireTime1; [SerializeField] TextEx txtNoHire; int ctgId1; int ctgId2; BlessedLandModel blessedLandModel { get { return ModelCenter.Instance.GetModel(); } } VipModel vipModel { get { return ModelCenter.Instance.GetModelEx(); } } BlessedLandManageMouseModel model { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { btnClose.SetListener(CloseClick); btnFree.SetListener(() => { ConfirmCancel.ShowPopConfirm( Language.Get("L1003"), Language.Get("BlessedLand070"), (bool _ok) => { if (_ok) { model.SendFreeUse(); } }); return; }); btnAuto.SetListener(() => { // 工人体力耗尽 int energyUsed = blessedLandModel.EnergyUsed; int totalEnergy = blessedLandModel.GetTotalEnergy(); if (energyUsed >= totalEnergy) { SysNotifyMgr.Instance.ShowTip("BlessedLand01"); return; } model.Start(); DisplayTime(); }); btnStop.SetListener(() => { model.Stop(); }); btnRenewal.SetListener(() => { WindowCenter.Instance.Open(); }); } protected override void OnPreOpen() { scroller.OnRefreshCell += OnRefreshCell; blessedLandModel.UpdateMineAreaData += OnUpdateMineAreaData; GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; model.StartStateChangeEvent += OnStartStateChangeEvent; Display(); } private void Display() { //0 未雇佣-未使用免费次数 1 未雇佣-已使用免费次数 2 雇佣中-未开始自动采集 3 雇佣中-自动采集中 int state = model.GetState(); txtNoHire.SetActive(state == 0); btnFree.SetActive(state == 0); btnBuy1.SetActive(state == 1); btnBuy2.SetActive(state == 1); txtHireTime1.SetActive(state == 2); btnAuto.SetActive(state == 2); txtHireTime.SetActive(state == 3); txtNextSeekTime.SetActive(state == 3); btnStop.SetActive(state == 3); btnRenewal.SetActive(state == 2 || state == 3); //type 1折的表现用图片还是下划线 1下划线 2 图片 //index 管家档位购买对应充值ID列表中的1维索引 btnBuy1.Display(1, 0); btnBuy2.Display(1, 1); txtHireDayCnt.text = Language.Get("BlessedLand060", model.butlerLevelDurationArr[0]); DisplayTime(); } protected override void OnAfterOpen() { CreateScroller(); } protected override void OnAfterClose() { } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; blessedLandModel.UpdateMineAreaData -= OnUpdateMineAreaData; GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; model.StartStateChangeEvent -= OnStartStateChangeEvent; } private void OnStartStateChangeEvent() { Display(); DisplayTime(); } private void OnSecondEvent() { Display(); } public void DisplayTime() { string hireTime = TimeUtility.SecondsToDHMS((int)blessedLandModel.HousekeeperEndTime - TimeUtility.AllSeconds); string hireTimeText = Language.Get("BlessedLand068", hireTime); txtHireTime.text = hireTimeText; txtHireTime1.text = hireTimeText; string resTime = TimeUtility.SecondsToDHMS(model.timeS - model.timer); txtNextSeekTime.text = Language.Get("BlessedLand066", resTime); } private void OnUpdateMineAreaData() { Display(); } private int SortItemID(int itemIdA, int itemIdB) { var itemIDToLimitLVDict = MineAreaItemConfig.GetItemIDToLimitLVDict(); var itemIDToSortDict = MineAreaItemConfig.GetItemIDToSortDict(); int limitLV1 = itemIDToLimitLVDict[itemIdA]; int limitLV2 = itemIDToLimitLVDict[itemIdB]; int sortNum1 = itemIDToSortDict[itemIdA]; int sortNum2 = itemIDToSortDict[itemIdB]; // LimitLV 越小越靠前 int compareResult = limitLV1.CompareTo(limitLV2); if (compareResult == 0) { // LimitLV相同,sortNum1越小越靠前 compareResult = sortNum1.CompareTo(sortNum2); } return compareResult; } private void CreateScroller() { scroller.Refresh(); var dict = MineAreaItemConfig.GetItemIDToLimitLVDict(); var list = dict.Keys.ToList(); list.Sort(SortItemID); for (int i = 0; i < list.Count; i++) { scroller.AddCell(ScrollerDataType.Header, list[i]); } scroller.Restart(); } private void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as BlessedLandManageMouseCell; _cell.Display(_cell.index); } } }