using vnxbqy.UI;
|
|
using UnityEngine.UI;
|
|
class WeddingFBWin : ILWindow
|
{
|
Button enterBtn;
|
Button buyBtn;
|
Text enterCnt;
|
ScrollerController scroller;
|
Text cost;
|
Image costTypeImg;
|
ButtonEx sweepBtn;
|
|
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
TeamModel teamModel = ModelCenter.Instance.GetModel<TeamModel>();
|
#region Built-in
|
protected override void BindController()
|
{
|
enterBtn = proxy.GetWidgtEx<Button>("enterBtn");
|
buyBtn = proxy.GetWidgtEx<Button>("buyBtn");
|
enterCnt = proxy.GetWidgtEx<Text>("enterCnt");
|
scroller = proxy.GetWidgtEx<ScrollerController>("scroller");
|
cost = proxy.GetWidgtEx<Text>("cost");
|
costTypeImg = proxy.GetWidgtEx<Image>("Image");
|
sweepBtn = proxy.GetWidgtEx<ButtonEx>("sweepBtn");
|
}
|
|
protected override void AddListeners()
|
{
|
|
buyBtn.SetListener(BuyEnterCnt);
|
|
enterBtn.SetListener(EnterFB);
|
sweepBtn.SetListener(SweepFB);
|
}
|
|
protected override void OnPreOpen()
|
{
|
model.updateDungeonBuyCnt += UpdateDungeonTimes;
|
model.dungeonRecordChangeEvent += OnDungeonRecordUpdate;
|
scroller.OnRefreshCell += OnRefreshCell;
|
|
UpdateDungeonTimes();
|
|
}
|
|
protected override void OnAfterOpen()
|
{
|
CreateScroll();
|
}
|
|
protected override void OnPreClose()
|
{
|
model.updateDungeonBuyCnt -= UpdateDungeonTimes;
|
model.dungeonRecordChangeEvent -= OnDungeonRecordUpdate;
|
scroller.OnRefreshCell -= OnRefreshCell;
|
}
|
#endregion
|
|
private void UpdateDungeonTimes()
|
{
|
model.currentDungeon = new Dungeon(WeddingModel.qyFBID, 0);
|
var enterTimes = model.GetEnterTimes(WeddingModel.qyFBID);
|
var totalTimes = model.GetTotalTimes(WeddingModel.qyFBID);
|
enterCnt.text = Language.Get("WorldBoss_Endurance0", StringUtility.Contact(totalTimes - enterTimes, "/", totalTimes));
|
enterCnt.color = (totalTimes - enterTimes) > 0 ? UIHelper.GetUIColor(TextColType.White) : UIHelper.GetUIColor(TextColType.Red);
|
string costFormula;
|
model.TryGetBuyCountCost(model.currentDungeon.mapId, out costFormula);
|
cost.text = costFormula;
|
int moneyType = 1;
|
if (ILGeneralDefine.fbBuyTimes.ContainsKey(WeddingModel.qyFBID))
|
{
|
moneyType = ILGeneralDefine.fbBuyTimes[WeddingModel.qyFBID];
|
}
|
costTypeImg.SetSprite("Money_Type_" + moneyType);
|
|
var dungeonId = model.GetDungeonId(model.currentDungeon);
|
var dungeonConfig = DungeonConfig.Get(dungeonId);
|
sweepBtn.SetActiveIL(PlayerDatas.Instance.baseData.LV >= dungeonConfig.SweepLVLimit);
|
}
|
|
private void OnDungeonRecordUpdate(int _dataMapId)
|
{
|
UpdateDungeonTimes();
|
}
|
|
void EnterFB()
|
{
|
var enterTimes = model.GetEnterTimes(WeddingModel.qyFBID);
|
var totalTimes = model.GetTotalTimes(WeddingModel.qyFBID);
|
if (enterTimes >= totalTimes)
|
{
|
SysNotifyMgr.Instance.ShowTip("TryEnterJadeDynastyBossError_4");
|
return;
|
}
|
|
if (WeddingModel.Instance.isTeamTwo == 1 && teamModel.myTeam.memberCount != 2)
|
{
|
//双人队伍才可以
|
SysNotifyMgr.Instance.ShowTip("OnlyTwoMemTeamCanEnter", WeddingModel.qyFBID);
|
return;
|
}
|
if (teamModel.myTeam.memberCount > 2)
|
{
|
//双人队伍才可以
|
SysNotifyMgr.Instance.ShowTip("OnlyTwoMemTeamCanEnter", WeddingModel.qyFBID);
|
return;
|
}
|
if (CrossServerUtility.IsCrossServer() || ClientCrossServerOneVsOne.isClientCrossServerOneVsOne)
|
{
|
SysNotifyMgr.Instance.ShowTip("CrossMatching3");
|
return;
|
}
|
|
if (teamModel.myTeam.inTeam && !teamModel.myTeam.iamCaptainer)
|
{
|
SysNotifyMgr.Instance.ShowTip("DungeonGroupOnlyTeamLeader");
|
return;
|
}
|
|
model.RequestChallangeDungeon(WeddingModel.qyFBID, 0);
|
}
|
|
void SweepFB()
|
{
|
var enterTimes = model.GetEnterTimes(WeddingModel.qyFBID);
|
var totalTimes = model.GetTotalTimes(WeddingModel.qyFBID);
|
if (enterTimes >= totalTimes)
|
{
|
SysNotifyMgr.Instance.ShowTip("TryEnterJadeDynastyBossError_4");
|
return;
|
}
|
|
model.RequestSweep(model.currentDungeon);
|
|
}
|
|
void BuyEnterCnt()
|
{
|
if (WeddingModel.Instance.m_CoupleID == 0)
|
{
|
SysNotifyMgr.Instance.ShowTip("Marry8");
|
return;
|
}
|
WindowCenter.Instance.OpenEx<DungeonBuyTimesWin>();
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
if (cell.index >= WeddingModel.Instance.fbShowItems.Length)
|
return;
|
var itemInfo = WeddingModel.Instance.fbShowItems[cell.index];
|
var img = cell.transform.Find("Image").GetComponent<Image>();
|
img.SetActiveIL(itemInfo[3] == 1);
|
ItemCell item = cell.transform.Find("itemCell").GetComponent<ItemCell>();
|
|
int itemID = itemInfo[0];
|
var model = new ItemCellModel(itemID, false, (ulong)itemInfo[1]);
|
item.Init(model);
|
item.button.SetListener(() =>
|
{
|
ItemTipUtility.Show(itemID);
|
});
|
}
|
|
void CreateScroll()
|
{
|
scroller.Refresh();
|
|
for (int i = 0; i < WeddingModel.Instance.fbShowItems.Length; i++)
|
{
|
scroller.AddCell(ScrollerDataType.Header, i);
|
}
|
|
scroller.Restart();
|
}
|
}
|