using LitJson;
|
using vnxbqy.UI;
|
using System.Collections.Generic;
|
|
/// <summary>
|
/// 限时豪礼
|
/// </summary>
|
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<VipModel>(); } }
|
|
|
protected override void BindController()
|
{
|
itemCellScroller = proxy.GetWidgtEx<ScrollerController>("itemCellScroller");
|
buttonScroller = proxy.GetWidgtEx<ScrollerController>("buttonScroller");
|
txtProfitNumber = proxy.GetWidgtEx<TextEx>("txtProfitNumber");
|
txtGiftName = proxy.GetWidgtEx<TextEx>("txtGiftName");
|
txtEndTimeNumber = proxy.GetWidgtEx<TextEx>("txtEndTimeNumber");
|
txtBuyNow = proxy.GetWidgtEx<TextEx>("txtBuyNow");
|
btnClose = proxy.GetWidgtEx<ButtonEx>("btnClose");
|
btnBuyNow = proxy.GetWidgtEx<ButtonEx>("btnBuyNow");
|
imgBuyNow = proxy.GetWidgtEx<ImageEx>("imgBuyNow");
|
imgTimeOutNow = proxy.GetWidgtEx<ImageEx>("imgTimeOutNow");
|
|
var obj = btnBuyNow.FindComponent("Text", "Txt_orgPrice");
|
if (obj != null)
|
orgPrice = obj as TextEx;
|
}
|
|
protected override void AddListeners()
|
{
|
btnClose.SetListener(() =>
|
{
|
CloseWin<LimitedTimeLuxuryGiftWin>();
|
|
});
|
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<LimitedTimeLuxuryGiftWin>();
|
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<LimitedTimeLuxuryGiftButtonCell>();
|
_cell.Display(cell.index);
|
}
|
|
private void OnItemCellScrollerRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetILBehaviour<LimitedTimeLuxuryGiftItemCell>();
|
_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<Item> awards = new List<Item>();
|
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();
|
}
|
}
|