using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class FamilyZBGWin : Window
|
{
|
[SerializeField] Button close;
|
[SerializeField] Text talkText;
|
[SerializeField] ScaleTween talkTween;
|
[SerializeField] List<ItemCell> items = new List<ItemCell>();
|
[SerializeField] Text orgPrice;
|
[SerializeField] Image orgIcon;
|
[SerializeField] Transform cutObj;
|
[SerializeField] Text price;
|
[SerializeField] Text totalInfo;
|
[SerializeField] Button memberOnlineBtn;
|
[SerializeField] ScrollerController scroller;
|
[SerializeField] Button cutBtn;
|
[SerializeField] Text cutText;
|
[SerializeField] Image cutState;
|
|
|
|
FairyNewModel familyModel { get { return ModelCenter.Instance.GetModel<FairyNewModel>(); } }
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
|
close.AddListener(CloseClick);
|
memberOnlineBtn.AddListener(() =>
|
{
|
WindowCenter.Instance.Open<FamilyZBGNoCutWin>();
|
});
|
|
cutBtn.AddListener(OnCut);
|
}
|
|
protected override void OnPreOpen()
|
{
|
talkTween.Stop();
|
familyModel.UpdateFamilyActionEvent += OnFamilyActionInfoEvent;
|
scroller.OnRefreshCell += OnRefreshCell;
|
familyModel.UpdateZhenbaogeEvent += OnPlayerZBGEvent;
|
|
Display();
|
CreateScroller();
|
}
|
|
|
protected override void OnAfterOpen()
|
{
|
DisplayTalk();
|
}
|
|
protected override void OnPreClose()
|
{
|
familyModel.UpdateFamilyActionEvent -= OnFamilyActionInfoEvent;
|
scroller.OnRefreshCell -= OnRefreshCell;
|
familyModel.UpdateZhenbaogeEvent -= OnPlayerZBGEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as FamilyZBGCell;
|
_cell.Display(cell.index);
|
}
|
|
|
void CreateScroller()
|
{
|
scroller.Refresh();
|
var keys = familyModel.sortPlayerCut;
|
for (int i = 0; i < keys.Count; i++)
|
{
|
scroller.AddCell(ScrollerDataType.Header, i);
|
}
|
scroller.Restart();
|
}
|
|
|
void Display()
|
{
|
var awards = familyModel.GetZBGItems();
|
for (int i = 0; i < items.Count; i++)
|
{
|
if (i < awards.Length)
|
{
|
items[i].SetActive(true);
|
int itemID = awards[i][0];
|
items[i].Init(new ItemCellModel(itemID, false, (ulong)awards[i][1]));
|
items[i].button.AddListener(() => {
|
ItemTipUtility.Show(itemID);
|
});
|
}
|
else
|
{
|
items[i].SetActive(false);
|
}
|
}
|
|
orgPrice.text = familyModel.zbgOrgPriceValue.ToString();
|
orgIcon.SetSmallIconWithMoneyType(familyModel.zbgPriceType);
|
|
DisplayFamilyCutInfo();
|
DisplayBtnState();
|
}
|
|
void DisplayFamilyCutInfo()
|
{
|
int cutPrice = 0;
|
if (familyModel.familyZBGActions[1].Value3 > 0)
|
{
|
price.text = "-" + familyModel.familyZBGActions[1].Value2;
|
|
cutPrice = familyModel.zbgOrgPriceValue + (int)familyModel.familyZBGActions[1].Value2;
|
}
|
else
|
{
|
price.text = familyModel.familyZBGActions[1].Value2.ToString();
|
cutPrice = familyModel.zbgOrgPriceValue - (int)familyModel.familyZBGActions[1].Value2;
|
}
|
|
|
totalInfo.text = Language.Get("FairyZBG2", familyModel.familyZBGActions.Count - 1, PlayerDatas.Instance.fairyData.fairy.Member.Count,
|
"SmallMoney" + familyModel.zbgPriceType, cutPrice);
|
|
cutObj.SetActive(familyModel.familyZBGActions.Count > 1);
|
|
}
|
|
void DisplayBtnState()
|
{
|
if (familyModel.zhenbaogeCutState == 0)
|
{
|
cutText.text = Language.Get("FairyZBG3");
|
cutBtn.SetActive(true);
|
cutState.SetActive(false);
|
}
|
else if (familyModel.zhenbaogeBuyState == 0)
|
{
|
cutText.text = Language.Get("FairyZBG4");
|
cutBtn.SetActive(true);
|
cutState.SetActive(false);
|
}
|
else
|
{
|
cutBtn.SetActive(false);
|
cutState.SetActive(true);
|
}
|
}
|
|
|
void DisplayTalk()
|
{
|
talkTween.SetStartState();
|
talkTween.Play();
|
|
talkText.text = Language.Get("FairyZBGTalk" + familyModel.GetTalkState());
|
}
|
|
|
private void OnDisable()
|
{
|
|
}
|
|
private void OnFamilyActionInfoEvent(bool restart)
|
{
|
if (restart)
|
{
|
Display();
|
}
|
else
|
{
|
DisplayFamilyCutInfo();
|
}
|
|
DisplayTalk();
|
if (familyModel.sortPlayerCut.Count != scroller.GetNumberOfCells(scroller.m_Scorller))
|
{
|
CreateScroller();
|
}
|
else
|
{
|
scroller.m_Scorller.RefreshActiveCellViews();
|
}
|
|
DisplayBtnState();
|
}
|
|
void OnCut()
|
{
|
//退盟的cd限制
|
if (familyModel.needCheckCutCD && (TimeUtility.AllSeconds - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60 < familyModel.zbgChangFamilyCD )
|
{
|
SysNotifyMgr.Instance.ShowTip("ZhenbaogeCut1", familyModel.zbgChangFamilyCD - (TimeUtility.AllSeconds - PlayerDatas.Instance.baseData.leaveFamilyTime) / 60);
|
return;
|
}
|
if (familyModel.zhenbaogeCutState == 0)
|
{
|
familyModel.OnZhenbaogeOP(0);
|
}
|
else if (familyModel.zhenbaogeBuyState == 0)
|
{
|
if (packModel.GetEmptyGridCount(PackType.Item) < items.Count)
|
{
|
SysNotifyMgr.Instance.ShowTip("GeRen_lhs_202580");
|
return;
|
}
|
|
if (familyModel.familyZBGActions[1].Value3 == 0 && UIHelper.GetMoneyCnt(familyModel.zbgPriceType) < familyModel.familyZBGActions[1].Value2)
|
{
|
SysNotifyMgr.Instance.ShowTip("LackMoney", familyModel.zbgPriceType);
|
return;
|
}
|
|
familyModel.OnZhenbaogeOP(1);
|
}
|
}
|
|
|
void OnPlayerZBGEvent()
|
{
|
DisplayBtnState();
|
}
|
}
|
}
|