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<BlessedLandModel>(); } }
|
VipModel vipModel { get { return ModelCenter.Instance.GetModelEx<VipModel>(); } }
|
BlessedLandManageMouseModel model { get { return ModelCenter.Instance.GetModel<BlessedLandManageMouseModel>(); } }
|
|
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<BlessedLandManageMouseRenewalPopWin>();
|
});
|
}
|
|
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);
|
}
|
}
|
}
|