using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class FamilyAffairWin : Window
|
{
|
[SerializeField] Text countTxt;
|
[SerializeField] ScrollerController scroller;
|
[SerializeField] Button close;
|
[SerializeField] Button refreshBtn;
|
[SerializeField] RichText refreshText;
|
FairyNewModel familyModel { get { return ModelCenter.Instance.GetModel<FairyNewModel>(); } }
|
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
|
close.AddListener(CloseClick);
|
refreshBtn.AddListener(OnRefreshAffair);
|
}
|
|
protected override void OnPreOpen()
|
{
|
scroller.OnRefreshCell += Scroller_OnRefreshCell;
|
familyModel.UpdateFamilyAffairEvent += UpdateAffair;
|
Initialize();
|
}
|
|
private void Scroller_OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as FamilyAffairCell;
|
_cell.Display(cell.index);
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
scroller.OnRefreshCell -= Scroller_OnRefreshCell;
|
familyModel.UpdateFamilyAffairEvent -= UpdateAffair;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
|
|
public void Initialize()
|
{
|
|
scroller.Refresh();
|
var keys = familyModel.familyAffairDic.Keys.ToList();
|
foreach (var key in keys)
|
{
|
scroller.AddCell(ScrollerDataType.Header, key);
|
}
|
scroller.Restart();
|
UpdateAffair();
|
}
|
|
void UpdateAffair()
|
{
|
countTxt.text = Language.Get("FamillyFunc22", UIHelper.AppendColor(familyModel.affairCount >= familyModel.affairMaxCount ? TextColType.Red : TextColType.Green, familyModel.affairCount.ToString()), familyModel.affairMaxCount);
|
if (familyModel.freeRefreshCount >= familyModel.freeRefreshMaxCount)
|
{
|
refreshText.text = Language.Get("FamillyFunc19", familyModel.payRefresh[1], familyModel.payRefresh[0]);
|
}
|
else
|
{
|
refreshText.text = Language.Get("FamillyFunc18");
|
}
|
scroller.m_Scorller.RefreshActiveCellViews();
|
|
refreshBtn.SetActive(familyModel.affairCount < familyModel.affairMaxCount);
|
}
|
|
void OnRefreshAffair()
|
{
|
if (familyModel.affairCount >= familyModel.affairMaxCount)
|
{
|
return;
|
}
|
|
if (familyModel.freeRefreshCount >= familyModel.freeRefreshMaxCount &&
|
UIHelper.GetMoneyCnt(familyModel.payRefresh[0]) < (ulong)familyModel.payRefresh[1])
|
{
|
RechargeTipWin.moneyType = familyModel.payRefresh[0];
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
return;
|
}
|
var pack = new CA613_tagCMFamilyAffairOP();
|
pack.OPType = 1;
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
}
|
}
|