//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, June 11, 2019
|
//--------------------------------------------------------
|
|
using UnityEngine.UI;
|
using vnxbqy.UI;
|
using System.Collections.Generic;
|
using UnityEngine;
|
|
public class Buy1Free5Win : ILWindow
|
{
|
ButtonEx closeBtn;
|
ButtonEx rightButton;
|
ButtonEx leftButton;
|
List<Transform> goodsList = new List<Transform>();
|
RedpointBehaviour rightRedPoint;
|
RedpointBehaviour leftRedPoint;
|
TextEx remainTime;
|
|
VipModel vipModel { get { return ModelCenter.Instance.GetModelEx<VipModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
closeBtn = GetWidgt<ButtonEx>("closeButton");
|
rightButton = GetWidgt<ButtonEx>("rightButton");
|
leftButton = GetWidgt<ButtonEx>("leftButton");
|
rightRedPoint = GetWidgt<RedpointBehaviour>("rightRedPoint");
|
leftRedPoint = GetWidgt<RedpointBehaviour>("leftRedPoint");
|
|
for (int i = 0; i < 6; i++)
|
{
|
goodsList.Add(GetWidgt<Transform>("goods" + i));
|
}
|
remainTime = GetWidgt<TextEx>("remainTime");
|
}
|
|
protected override void AddListeners()
|
{
|
closeBtn.AddListener(() =>
|
{
|
CloseWin<Buy1Free5Win>();
|
});
|
rightButton.AddListener(() =>
|
{
|
OperationBuy1Free5 operation;
|
if (OperationTimeHepler.Instance.TryGetOperation(Buy1Free5Model.operationType, out operation))
|
{
|
if (Buy1Free5Model.Instance.selectCTGIDIndex < operation.indexToCTGIDDict.Keys.Count - 1)
|
{
|
Buy1Free5Model.Instance.selectCTGIDIndex++;
|
Display();
|
}
|
}
|
});
|
|
leftButton.AddListener(() =>
|
{
|
if (Buy1Free5Model.Instance.selectCTGIDIndex > 0)
|
{
|
Buy1Free5Model.Instance.selectCTGIDIndex--;
|
Display();
|
}
|
});
|
}
|
|
protected override void OnAfterOpen()
|
{
|
vipModel.rechargeCountEvent += OnRechargeEvent;
|
Buy1Free5Model.Instance.UpdateFreeGiftEvent += Display;
|
Buy1Free5Model.Instance.selectCTGIDIndex = GetDefaultSelectIndex();
|
DisplayOpenTime();
|
Display();
|
}
|
|
|
|
protected override void OnPreClose()
|
{
|
vipModel.rechargeCountEvent -= OnRechargeEvent;
|
Buy1Free5Model.Instance.UpdateFreeGiftEvent -= Display;
|
}
|
|
protected override void LateUpdate()
|
{
|
DisplayOpenTime();
|
}
|
|
#endregion
|
|
|
void OnRechargeEvent(int id)
|
{
|
Display();
|
}
|
|
|
void DisplayOpenTime()
|
{
|
var seconds = (int)(TimeUtility.GetTodayStartTime().AddDays(1) - TimeUtility.ServerNow).TotalSeconds;
|
if (seconds > 0)
|
{
|
|
remainTime.text = TimeUtility.SecondsToDHMS(seconds);
|
return;
|
}
|
}
|
|
void Display()
|
{
|
OperationBuy1Free5 operation;
|
if (!OperationTimeHepler.Instance.TryGetOperation(Buy1Free5Model.operationType, out operation))
|
{
|
return;
|
}
|
|
var ctgID = operation.indexToCTGIDDict[Buy1Free5Model.Instance.selectCTGIDIndex];
|
var itemList = operation.CTGIDToFreeDict[ctgID];
|
//显示商品,第一个物品显示价格,后面物品显示免费
|
for (int i = 0; i < goodsList.Count; i++)
|
{
|
if (i < itemList.Count + 1)
|
{
|
goodsList[i].SetActiveIL(true);
|
var _cell = goodsList[i].GetILBehaviour<Buy1Free5Cell>();
|
_cell?.Display(i);
|
}
|
else
|
{
|
goodsList[i].SetActiveIL(false);
|
}
|
}
|
|
//显示左右切换按钮
|
leftButton.SetActiveIL(Buy1Free5Model.Instance.selectCTGIDIndex != 0);
|
rightButton.SetActiveIL(operation.indexToCTGIDDict.Count - 1 != Buy1Free5Model.Instance.selectCTGIDIndex);
|
Buy1Free5Model.Instance.UpdateLRRedpoint();
|
}
|
|
//默认索引为0,优先选中可领取奖励的档位
|
public int GetDefaultSelectIndex()
|
{
|
OperationBuy1Free5 operation;
|
if (OperationTimeHepler.Instance.TryGetOperation(Buy1Free5Model.operationType, out operation))
|
{
|
//key一定是从0开始的
|
for (int i = 0; i < operation.indexToCTGIDDict.Keys.Count; i++)
|
{
|
int ctgID = operation.indexToCTGIDDict[i];
|
var itemList = operation.CTGIDToFreeDict[ctgID];
|
for (int j = 0; j < itemList.Count; j++)
|
{
|
if (Buy1Free5Model.Instance.GetFreeGiftState(i, ctgID, j) == 1)
|
{
|
return i;
|
}
|
}
|
}
|
}
|
return 0;
|
}
|
}
|