using LitJson;
using vnxbqy.UI;
using System.Collections.Generic;
///
/// 限时豪礼
///
public class LimitedTimeLuxuryGiftWin : ILWindow
{
ScrollerController itemCellScroller; //购买界面一般和策划协商最多几个物品展示即可,不用滚动条
ScrollerController buttonScroller;
TextEx txtProfitNumber;
TextEx txtGiftName;
TextEx txtEndTimeNumber;
TextEx txtBuyNow;
ButtonEx btnClose;
ButtonEx btnBuyNow;
ImageEx imgBuyNow;
ImageEx imgTimeOutNow;
TextEx orgPrice;
VipModel vipModel { get { return ModelCenter.Instance.GetModelEx(); } }
protected override void BindController()
{
itemCellScroller = proxy.GetWidgtEx("itemCellScroller");
buttonScroller = proxy.GetWidgtEx("buttonScroller");
txtProfitNumber = proxy.GetWidgtEx("txtProfitNumber");
txtGiftName = proxy.GetWidgtEx("txtGiftName");
txtEndTimeNumber = proxy.GetWidgtEx("txtEndTimeNumber");
txtBuyNow = proxy.GetWidgtEx("txtBuyNow");
btnClose = proxy.GetWidgtEx("btnClose");
btnBuyNow = proxy.GetWidgtEx("btnBuyNow");
imgBuyNow = proxy.GetWidgtEx("imgBuyNow");
imgTimeOutNow = proxy.GetWidgtEx("imgTimeOutNow");
var obj = btnBuyNow.FindComponent("Text", "Txt_orgPrice");
if (obj != null)
orgPrice = obj as TextEx;
}
protected override void AddListeners()
{
btnClose.SetListener(() =>
{
CloseWin();
});
btnBuyNow.SetListener(() =>
{
if (LimitedTimeLuxuryGiftModel.Instance.showCtgId == 0)
return;
vipModel.CTG(LimitedTimeLuxuryGiftModel.Instance.showCtgId);
});
}
protected override void OnPreOpen()
{
//未指定显示的ctgId时,显示第一个
if (LimitedTimeLuxuryGiftModel.Instance.showCtgId == 0)
{
var ctgList = LimitedTimeLuxuryGiftModel.Instance.GetShowCtgIDList();
if (ctgList.Count == 0)
{
CloseWin();
return;
}
LimitedTimeLuxuryGiftModel.Instance.showCtgId = ctgList[0];
}
LimitedTimeLuxuryGiftModel.Instance.UpdateAllUIEvent += OnUpdateAllUIEvent;
GlobalTimeEvent.Instance.secondEvent += OnRefreshSecond;
itemCellScroller.OnRefreshCell += OnItemCellScrollerRefreshCell;
buttonScroller.OnRefreshCell += OnButtonScrollerRefreshCell;
}
protected override void OnAfterOpen()
{
Initialize();
}
protected override void OnPreClose()
{
LimitedTimeLuxuryGiftModel.Instance.UpdateAllUIEvent -= OnUpdateAllUIEvent;
GlobalTimeEvent.Instance.secondEvent -= OnRefreshSecond;
itemCellScroller.OnRefreshCell -= OnItemCellScrollerRefreshCell;
buttonScroller.OnRefreshCell -= OnButtonScrollerRefreshCell;
}
protected override void OnAfterClose()
{
LimitedTimeLuxuryGiftModel.Instance.showCtgId = 0;
}
private void OnUpdateAllUIEvent()
{
CreateItemScroller();
buttonScroller.m_Scorller.RefreshActiveCellViews();
DisplayOther();
OnRefreshSecond();
}
private void OnButtonScrollerRefreshCell(ScrollerDataType type, CellView cell)
{
var _cell = cell.GetILBehaviour();
_cell.Display(cell.index);
}
private void OnItemCellScrollerRefreshCell(ScrollerDataType type, CellView cell)
{
var _cell = cell.GetILBehaviour();
_cell.Display(cell.index);
}
void Initialize()
{
CreateCTGButtonScroller();
CreateItemScroller();
DisplayOther();
OnRefreshSecond();
}
void CreateCTGButtonScroller()
{
buttonScroller.Refresh();
var ctgList = LimitedTimeLuxuryGiftModel.Instance.GetShowCtgIDList();
for (int i = 0; i < ctgList.Count; i++)
{
buttonScroller.AddCell(ScrollerDataType.Header, ctgList[i]);
}
buttonScroller.Restart();
}
void CreateItemScroller()
{
itemCellScroller.Refresh();
var showCtgID = LimitedTimeLuxuryGiftModel.Instance.showCtgId;
List- awards = new List
- ();
vipModel.TryGetRechargeItem(showCtgID, out awards);
for (int i = 0; i < awards.Count; i++)
{
itemCellScroller.AddCell(ScrollerDataType.Header, i);
}
itemCellScroller.Restart();
}
private void OnRefreshSecond()
{
int showCtgID = LimitedTimeLuxuryGiftModel.Instance.showCtgId;
if (showCtgID == 0)
return;
int state = LimitedTimeLuxuryGiftModel.Instance.GetGiftState(showCtgID);
if (state == 0)
{
int showLuxuryGiftID = ILLimitedTimeLuxuryGiftConfig.GetLuxuryGiftIDByCtgID(showCtgID);
int seconds = LimitedTimeLuxuryGiftModel.Instance.GetShowCloseTime(showLuxuryGiftID);
txtEndTimeNumber.text = UIHelper.AppendColor(TextColType.White, Language.Get("AllianceBoss_3", TimeUtility.SecondsToDHMS(seconds)));
}
else
{
txtEndTimeNumber.text = UIHelper.AppendColor(TextColType.White, Language.Get("XMZZ110"));
}
btnBuyNow.SetActiveIL(state == 0);
imgBuyNow.SetActiveIL(state == 1);
imgTimeOutNow.SetActiveIL(state == 2);
}
void DisplayOther()
{
int showCtgID = LimitedTimeLuxuryGiftModel.Instance.showCtgId;
int showLuxuryGiftID = ILLimitedTimeLuxuryGiftConfig.GetLuxuryGiftIDByCtgID(showCtgID);
int showGiftGearIndex = ILLimitedTimeLuxuryGiftConfig.GetGiftGearIndexByCtgID(showCtgID);
OrderInfoConfig orderCfg;
vipModel.TryGetOrderInfo(showCtgID, out orderCfg);
txtBuyNow.text = Language.Get("NeedMoney", orderCfg.PayRMBNum);
if (orgPrice != null)
{
orgPrice.SetActiveIL(PlayerDatas.Instance.baseData.IsActive90Off);
orgPrice.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderCfg.m_PayRMBNum));
}
txtGiftName.text = CTGConfig.Get(showCtgID).Title;
txtProfitNumber.text = ILLimitedTimeLuxuryGiftConfig.Get(showLuxuryGiftID).ProfitRatio[showGiftGearIndex].ToString();
}
}