using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using System; namespace Snxxz.UI { public class CeremonyRechargeGiftWin : Window { [SerializeField] Button receiveBtn; [SerializeField] Button rechargeBtn; [SerializeField] Text receiveBtnText; [SerializeField] Image receiveBtnImg; [SerializeField] Text remainTimeText; [SerializeField] List itemBaiscs = new List(); List itemlist; ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel(); } } FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel(); } } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { rechargeBtn.AddListener(ClickRecharge); receiveBtn.AddListener(OnReceiveGift); } protected override void OnPreOpen() { GlobalTimeEvent.Instance.secondEvent += RefreshSecond; ceremonyModel.RefreshRechargeStateAct += SetReceiveBtnState; itemlist = ceremonyModel.GetRechargeAwardByLv(); Init(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= RefreshSecond; ceremonyModel.RefreshRechargeStateAct -= SetReceiveBtnState; } protected override void OnAfterClose() { } private void Init() { if (itemlist == null) return; for(int i = 0; i < itemBaiscs.Count; i++) { if(i < itemlist.Count) { itemBaiscs[i].gameObject.SetActive(true); FairylandCeremonyModel.AwardItem itemData = itemlist[i]; ItemCellModel cellModel = new ItemCellModel(itemData.itemId,true, (ulong)itemData.itemCount, itemData.isBind); itemBaiscs[i].Init(cellModel); itemBaiscs[i].cellBtn.RemoveAllListeners(); itemBaiscs[i].cellBtn.AddListener(()=> { ItemAttrData attrData = new ItemAttrData(itemData.itemId, true, (ulong)itemData.itemCount,-1,itemData.isBind); tipsModel.SetItemTipsModel(attrData); }); } else { itemBaiscs[i].gameObject.SetActive(false); } } RefreshSecond(); SetReceiveBtnState(); } private void RefreshSecond() { int seconds = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.FairyCeremony); if (seconds > 0) { remainTimeText.text = StringUtility.Contact("", TimeUtility.SecondsToHMS(seconds), ""); } else { remainTimeText.text = UIHelper.GetTextColorByItemColor(TextColType.Red, Language.Get("XMZZ110")); } } private void SetReceiveBtnState() { switch (ceremonyModel.receiveState) { case FairylandCeremonyModel.ReceiveState.NoReach: receiveBtnImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial(); receiveBtnText.text = "领取礼包"; break; case FairylandCeremonyModel.ReceiveState.Reach: receiveBtnImg.material = MaterialUtility.GetUIDefaultGraphicMaterial(); receiveBtnText.text = "领取礼包"; break; case FairylandCeremonyModel.ReceiveState.Already: receiveBtnImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial(); receiveBtnText.text = "已领取"; break; } } private void OnReceiveGift() { if (itemlist == null) return; switch (ceremonyModel.receiveState) { case FairylandCeremonyModel.ReceiveState.NoReach: SysNotifyMgr.Instance.ShowTip("FairylandCermonyRecharge1"); break; case FairylandCeremonyModel.ReceiveState.Reach: bool isGrid = playerPack.GetReaminGridCount(PackType.rptItem) - itemlist.Count >= 0 ? true : false; if (isGrid) { ceremonyModel.SendReceiveAward(GotServerRewardType.Def_RewardType_FCRecharge,0); } else { SysNotifyMgr.Instance.ShowTip("BagFull"); } break; case FairylandCeremonyModel.ReceiveState.Already: SysNotifyMgr.Instance.ShowTip("FairylandCermonyRecharge2"); break; } } private void ClickRecharge() { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc1); } } }