using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
namespace vnxbqy.UI
|
{
|
//其他福地
|
public class BlessedLandOtherWin : Window
|
{
|
[SerializeField] ScrollerController itemScroller;
|
[SerializeField] ButtonEx btnClose;
|
[SerializeField] ButtonEx btnRecord;
|
[SerializeField] ButtonEx btnSearch;
|
[SerializeField] ButtonEx btnManage;
|
[SerializeField] TextEx txtFreeWorkerCount;
|
[SerializeField] TextEx txtAllWorkerCount;
|
[SerializeField] TextEx txtBlessedLandName;
|
[SerializeField] RectTransform rectBlessedLandNameImage;
|
[SerializeField] RectTransform rectBlessedLandNameText;
|
bool isClickSeek = false;
|
BlessedLandModel blessedLandModel { get { return ModelCenter.Instance.GetModel<BlessedLandModel>(); } }
|
|
protected override void BindController()
|
{
|
|
}
|
|
protected override void AddListeners()
|
{
|
btnClose.SetListener(() =>
|
{
|
WindowJumpMgr.Instance.WindowJumpToEx("BlessedLandWin");
|
WindowJumpMgr.Instance.ClearJumpData();
|
});
|
|
btnRecord.SetListener(() =>
|
{
|
blessedLandModel.SendCB033Pack(5);
|
});
|
|
btnSearch.SetListener(() =>
|
{
|
blessedLandModel.SendCB033Pack(3); //在别人福地点寻觅不刷新
|
blessedLandModel.SendCB033Pack(2);
|
isClickSeek = true;
|
});
|
btnManage.SetListener(() =>
|
{
|
WindowJumpMgr.Instance.WindowJumpToEx("BlessedLandManageWin");
|
});
|
}
|
|
protected override void OnPreOpen()
|
{
|
isClickSeek = false;
|
itemScroller.OnRefreshCell += OnItemCellScrollerRefreshCell;
|
blessedLandModel.UpdateNewAreaData += OnUpdateAreaData;
|
blessedLandModel.UpdateRecordInfo += OnUpdateRecordInfo;
|
blessedLandModel.UpdateFellowAndSurroundAreaData += OnUpdateFellowAndSurroundAreaData;
|
WindowCenter.Instance.windowBeforeOpenEvent += OnWindowBeforeOpenEvent;
|
WindowCenter.Instance.windowBeforeCloseEvent += OnWindowBeforeCloseEvent;
|
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
|
DebugEx.Log("他人福地PlayerID: " + (int)blessedLandModel.showPlayerId);
|
txtBlessedLandName.text = blessedLandModel.showPlayerId < 10000 ? blessedLandModel.GetNameForPlayerId((int)blessedLandModel.showPlayerId) : UIHelper.ServerStringTrim(blessedLandModel.newAreaDataDict[blessedLandModel.showPlayerId].PlayerName);
|
txtAllWorkerCount.text = Language.Get("BlessedLand072", blessedLandModel.WorkerCount);
|
txtFreeWorkerCount.text = Language.Get("BlessedLand071", blessedLandModel.WorkerCount - blessedLandModel.GetWorkingCount());
|
}
|
|
protected override void OnAfterOpen()
|
{
|
itemScroller.Refresh();
|
for (int i = 0; i < blessedLandModel.newAreaDataDict[blessedLandModel.showPlayerId].MineItems.Count; i++)
|
{
|
itemScroller.AddCell(ScrollerDataType.Header, i);
|
}
|
itemScroller.Restart();
|
LayoutRebuilder.ForceRebuildLayoutImmediate(rectBlessedLandNameImage);
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
itemScroller.OnRefreshCell -= OnItemCellScrollerRefreshCell;
|
blessedLandModel.UpdateNewAreaData -= OnUpdateAreaData;
|
blessedLandModel.UpdateRecordInfo -= OnUpdateRecordInfo;
|
blessedLandModel.UpdateFellowAndSurroundAreaData -= OnUpdateFellowAndSurroundAreaData;
|
WindowCenter.Instance.windowBeforeOpenEvent -= OnWindowBeforeOpenEvent;
|
WindowCenter.Instance.windowBeforeCloseEvent -= OnWindowBeforeCloseEvent;
|
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
|
blessedLandModel.SendCB033Pack(4);
|
|
}
|
|
private void OnWindowBeforeCloseEvent(Window window)
|
{
|
if (window.name == "BlessedLandDetailsWin" || window.name == "BlessedLandCornucopiaWin"
|
|| window.name == "BlessedLandManageWin" || window.name == "BlessedLandWin"
|
|| window.name == "BlessedLandRecordWin" || window.name == "BlessedLandSeekWin"
|
|| window.name == "BatchWin")
|
{
|
itemScroller.SetActive(true);
|
itemScroller.Refresh();
|
for (int i = 0; i < blessedLandModel.newAreaDataDict[blessedLandModel.showPlayerId].MineItems.Count; i++)
|
{
|
itemScroller.AddCell(ScrollerDataType.Header, i);
|
}
|
itemScroller.Restart();
|
LayoutRebuilder.ForceRebuildLayoutImmediate(rectBlessedLandNameImage);
|
}
|
}
|
|
private void OnWindowBeforeOpenEvent(Window window)
|
{
|
if (window.name == "BlessedLandDetailsWin" || window.name == "BlessedLandCornucopiaWin"
|
|| window.name == "BlessedLandManageWin" || window.name == "BlessedLandWin"
|
|| window.name == "BlessedLandRecordWin" || window.name == "BlessedLandSeekWin"
|
|| window.name == "BatchWin")
|
{
|
itemScroller.SetActive(false);
|
LayoutRebuilder.ForceRebuildLayoutImmediate(rectBlessedLandNameImage);
|
}
|
}
|
|
private void OnUpdateFellowAndSurroundAreaData()
|
{
|
if (isClickSeek)
|
{
|
WindowJumpMgr.Instance.WindowJumpToEx("BlessedLandSeekWin");
|
isClickSeek = false;
|
}
|
}
|
|
private void OnUpdateRecordInfo()
|
{
|
WindowJumpMgr.Instance.WindowJumpToEx("BlessedLandRecordWin");
|
}
|
|
private void OnUpdateAreaData(List<uint> list)
|
{
|
if (list == null || list.Count == 0)
|
return;
|
|
if (list.Contains(blessedLandModel.showPlayerId))
|
{
|
itemScroller.Refresh();
|
for (int i = 0; i < blessedLandModel.newAreaDataDict[blessedLandModel.showPlayerId].MineItems.Count; i++)
|
{
|
itemScroller.AddCell(ScrollerDataType.Header, i);
|
}
|
itemScroller.Restart();
|
txtBlessedLandName.text = blessedLandModel.showPlayerId < 10000 ? blessedLandModel.GetNameForPlayerId((int)blessedLandModel.showPlayerId) : UIHelper.ServerStringTrim(blessedLandModel.newAreaDataDict[blessedLandModel.showPlayerId].PlayerName);
|
txtAllWorkerCount.text = Language.Get("BlessedLand072", blessedLandModel.WorkerCount);
|
txtFreeWorkerCount.text = Language.Get("BlessedLand071", blessedLandModel.WorkerCount - blessedLandModel.GetWorkingCount());
|
}
|
LayoutRebuilder.ForceRebuildLayoutImmediate(rectBlessedLandNameImage);
|
}
|
|
private void OnItemCellScrollerRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as BlessedLandOtherCell;
|
_cell.Display(_cell.index);
|
}
|
|
public void OnBeforePlayerDataInitialize()
|
{
|
if (WindowCenter.Instance.IsOpen<BlessedLandOtherWin>())
|
{
|
WindowJumpMgr.Instance.ClearJumpData();
|
WindowCenter.Instance.CloseAll();
|
}
|
}
|
}
|
}
|
|