//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, April 18, 2019
|
//--------------------------------------------------------
|
|
using UnityEngine;
|
|
namespace vnxbqy.UI
|
{
|
public class FairyAffinityLoginActWin : Window
|
{
|
[SerializeField] TextEx txtProfitRatio;
|
[SerializeField] TextEx txtBuyValue;
|
[SerializeField] TextEx txtBuy;
|
[SerializeField] ButtonEx btnBuy;
|
[SerializeField] ImageEx imgBuy;
|
[SerializeField] ScrollerController m_Controller;
|
|
TextEx orgPrice;
|
|
VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
|
FairyAffinityLoginActModel model { get { return ModelCenter.Instance.GetModel<FairyAffinityLoginActModel>(); } }
|
FairyAffinityZhanLingModel fairyAffinityZhanLingModel { get { return ModelCenter.Instance.GetModel<FairyAffinityZhanLingModel>(); } }
|
|
#region Built-in
|
|
protected override void BindController()
|
{
|
var obj = btnBuy.FindComponent("Text", "Txt_orgPrice");
|
if (obj != null)
|
orgPrice = obj as TextEx;
|
}
|
|
protected override void AddListeners()
|
{
|
btnBuy.SetListener(() =>
|
{
|
OperationLoginAct holiday;
|
OperationTimeHepler.Instance.TryGetOperation(FairyAffinityLoginActModel.operaType, out holiday);
|
if (holiday == null)
|
return;
|
bool isBuy = model.IsBuyAwardEx();
|
if (isBuy)
|
return;
|
vipModel.CTG(holiday.awardExCTGID);
|
});
|
}
|
|
protected override void OnPreOpen()
|
{
|
m_Controller.OnRefreshCell += OnRefreshCell;
|
model.UpdateyLoginEvent += UpdateHolidayLogin;
|
fairyAffinityZhanLingModel.UpdateGiftStateEvent += UpdateHolidayLogin;
|
OperationTimeHepler.Instance.operationTimeUpdateEvent += OnOperationTimeUpdateEvent;
|
vipModel.rechargeCountEvent += VipModel_rechargeCountEvent;
|
Display();
|
DisplayScroll();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
m_Controller.OnRefreshCell -= OnRefreshCell;
|
model.UpdateyLoginEvent -= UpdateHolidayLogin;
|
fairyAffinityZhanLingModel.UpdateGiftStateEvent -= UpdateHolidayLogin;
|
OperationTimeHepler.Instance.operationTimeUpdateEvent -= OnOperationTimeUpdateEvent;
|
vipModel.rechargeCountEvent -= VipModel_rechargeCountEvent;
|
}
|
|
private void VipModel_rechargeCountEvent(int obj)
|
{
|
m_Controller.m_Scorller.RefreshActiveCellViews();
|
Display();
|
}
|
|
private void OnOperationTimeUpdateEvent(Operation operation)
|
{
|
if (operation == Operation.default44)
|
{
|
m_Controller.m_Scorller.RefreshActiveCellViews();
|
Display();
|
}
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
#endregion
|
|
private void Display()
|
{
|
bool isBuy = model.IsBuyAwardEx();
|
btnBuy.SetActiveIL(!isBuy);
|
imgBuy.SetActiveIL(isBuy);
|
OperationLoginAct holiday;
|
OperationTimeHepler.Instance.TryGetOperation(FairyAffinityLoginActModel.operaType, out holiday);
|
if (holiday == null || holiday.awardExCTGID <= 0)
|
return;
|
OrderInfoConfig orderCfg;
|
vipModel.TryGetOrderInfo(holiday.awardExCTGID, out orderCfg);
|
txtBuy.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderCfg.PayRMBNum));
|
if (orgPrice != null)
|
{
|
orgPrice.SetActiveIL(PlayerDatas.Instance.baseData.IsActive90Off);
|
orgPrice.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderCfg.m_PayRMBNum));
|
}
|
|
txtProfitRatio.text = Language.Get("BlessedLand039", CTGConfig.Get(holiday.awardExCTGID).Percentage);
|
txtBuyValue.text = model.buyValue.ToString();
|
}
|
|
private void DisplayScroll()
|
{
|
m_Controller.Refresh();
|
OperationLoginAct holiday;
|
OperationTimeHepler.Instance.TryGetOperation(FairyAffinityLoginActModel.operaType, out holiday);
|
if (holiday == null)
|
return;
|
for (int i = 0; i < holiday.loginAwards.Count; i++)
|
{
|
m_Controller.AddCell(ScrollerDataType.Header, i);
|
}
|
m_Controller.Restart();
|
m_Controller.m_Scorller.RefreshActiveCellViews();
|
m_Controller.JumpIndex(GetDefaultSelect());
|
}
|
|
private void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
if (type != ScrollerDataType.Header) return;
|
|
var _cell = cell as FairyAffinityLoginActCell;
|
|
_cell.Display(_cell.index);
|
}
|
|
private void UpdateHolidayLogin()
|
{
|
m_Controller.m_Scorller.RefreshActiveCellViews();
|
Display();
|
}
|
|
//优先选择可领取的,然后是已领取的下一天
|
private int GetDefaultSelect()
|
{
|
OperationLoginAct holiday;
|
OperationTimeHepler.Instance.TryGetOperation(FairyAffinityLoginActModel.operaType, out holiday);
|
if (holiday == null)
|
return 0;
|
int getYet = -1;
|
int reSign = -1;
|
for (int i = 0; i < holiday.loginAwards.Count; i++)
|
{
|
//0 不可领取(日期未到) 1 可领取 2 已领取 3补签(已过天) 4 继续签到(已购买) 5 继续签到(未购买)
|
var state = model.GetLoginAwardState(i + 1);
|
if (state == 1 || state == 4)
|
return i;
|
if (state == 2)
|
getYet = i;
|
if (state == 3 && reSign == -1)
|
reSign = i;
|
}
|
if (reSign != -1)
|
return reSign;
|
return getYet;
|
}
|
}
|
}
|