//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, March 07, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI {
|
|
public class LevelGiftWin : Window
|
{
|
[SerializeField] ScrollerController m_LevelGiftCtrl;
|
|
LevelGiftModel m_Model;
|
LevelGiftModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<LevelGiftModel>());
|
}
|
}
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_LevelGiftCtrl.OnRefreshCell += OnRefreshCell;
|
}
|
|
protected override void OnPreOpen()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshInfoEvent;
|
model.OnGetGiftUpdateEvent += OnGetGiftUpdateEvent;
|
//model.OnLimitGiftUpdateEvent += OnLimitGiftUpdateEvent;
|
if (m_LevelGiftCtrl.GetNumberOfCells(m_LevelGiftCtrl.m_Scorller) == 0)
|
{
|
m_LevelGiftCtrl.Refresh();
|
var _cfgs = LVAawrdConfig.GetValues();
|
for (int i = 0; i < _cfgs.Count; i++)
|
{
|
m_LevelGiftCtrl.AddCell(ScrollerDataType.Header, _cfgs[i].RewardID);
|
}
|
m_LevelGiftCtrl.Restart();
|
}
|
var _index = 0;
|
model.TryGetLevelGift(out _index);
|
m_LevelGiftCtrl.JumpIndex(_index);
|
m_LevelGiftCtrl.m_Scorller.RefreshActiveCellViews();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshInfoEvent;
|
model.OnGetGiftUpdateEvent -= OnGetGiftUpdateEvent;
|
//model.OnLimitGiftUpdateEvent -= OnLimitGiftUpdateEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
private void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
LevelGiftCell _cell = cell as LevelGiftCell;
|
var _award = model.levelGiftItemDict[_cell.index];
|
var _cfg = LVAawrdConfig.Get(_cell.index);
|
var _isGet = model.IsGet(_cfg.RewardID);
|
var _vipGot = model.IsVipGet(_cfg.RewardID);
|
var _items = _award.GetAwardItem(PlayerDatas.Instance.baseData.Job);
|
for (int i = 0; i < _cell.items.Length; i++)
|
{
|
if (i < _items.Count)
|
{
|
_cell.items[i].SetActive(true);
|
_cell.gotImages[i].SetActive(_isGet);
|
var _item = _items[i];
|
ItemCellModel _ItemData = new ItemCellModel(_item.id, true, (ulong)_item.count);
|
_cell.items[i].Init(_ItemData);
|
_cell.items[i].button.RemoveAllListeners();
|
_cell.items[i].button.AddListener(() =>
|
{
|
ItemTipUtility.Show(_item.id);
|
});
|
}
|
else
|
{
|
_cell.items[i].SetActive(false);
|
}
|
}
|
|
var _vipAward = model.m_VipItemDict[_cell.index];
|
ItemCellModel _vipDate = new ItemCellModel(_vipAward.item.id, true, (ulong)_vipAward.item.count);
|
_cell.vipItem.Init(_vipDate);
|
_cell.vipItem.button.RemoveAllListeners();
|
_cell.vipItem.button.AddListener(() =>
|
{
|
ItemTipUtility.Show(_vipAward.item.id);
|
});
|
_cell.vipGotImage.SetActive(_vipGot);
|
_cell.vipText.text = StringUtility.Contact("V", _vipAward.vipLv);
|
|
_cell.targetLevel.text = _cfg.LV.ToString();
|
|
int state = 0;
|
if (!_isGet && PlayerDatas.Instance.baseData.LV < _cfg.LV)
|
{
|
state = 0;
|
}
|
else if (!_isGet && PlayerDatas.Instance.baseData.LV >= _cfg.LV)
|
{
|
state = 1;
|
}
|
else if (!_vipGot && PlayerDatas.Instance.baseData.VIPLv < _cfg.VIPLimit)
|
{
|
state = 2;
|
}
|
else if (!_vipGot && PlayerDatas.Instance.baseData.VIPLv >= _cfg.VIPLimit)
|
{
|
state = 3;
|
}
|
else if (_isGet && _vipGot)
|
{
|
state = 4;
|
}
|
_cell.getBtn.SetActive(state == 1 || state == 3);
|
_cell.stateImg.SetActive(state == 0 || state == 4);
|
_cell.effect.SetActive(state == 1 || state == 3);
|
_cell.vipBtn.SetActive(state == 2);
|
|
if (state == 0 || state == 4)
|
{
|
_cell.stateImg.SetSprite(state == 0 ? "LVReward2" : "LVReward1");
|
}
|
|
_cell.getBtn.onClick.RemoveAllListeners();
|
_cell.getBtn.onClick.AddListener(() =>
|
{
|
var _count = ModelCenter.Instance.GetModel<PackModel>().GetEmptyGridCount(PackType.Item);
|
if (_items.Count > _count)
|
{
|
SysNotifyMgr.Instance.ShowTip("BagFull");
|
return;
|
}
|
CA504_tagCMPlayerGetReward _pak = new CA504_tagCMPlayerGetReward();
|
_pak.RewardType = 5;
|
_pak.DataEx = (uint)_cfg.RewardID;
|
_pak.DataExStr = string.Empty;
|
_pak.DataExStrLen = 0;
|
GameNetSystem.Instance.SendInfo(_pak);
|
});
|
|
_cell.vipBtn.RemoveAllListeners();
|
_cell.vipBtn.AddListener((UnityEngine.Events.UnityAction)(() =>
|
{
|
WindowJumpMgr.Instance.ClearJumpData();
|
WindowCenter.Instance.Close<WelfareWin>();
|
WindowCenter.Instance.Open<VipRechargeWin>(false, 0);
|
}));
|
}
|
|
private void PlayerDataRefreshInfoEvent(PlayerDataType _type)
|
{
|
if (_type == PlayerDataType.LV)
|
{
|
m_LevelGiftCtrl.m_Scorller.RefreshActiveCellViews();
|
}
|
else if (_type == PlayerDataType.VIPLv)
|
{
|
m_LevelGiftCtrl.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|
|
private void OnGetGiftUpdateEvent()
|
{
|
m_LevelGiftCtrl.m_Scorller.RefreshActiveCellViews();
|
}
|
|
private void OnLimitGiftUpdateEvent()
|
{
|
m_LevelGiftCtrl.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|
|
}
|
|
|
|
|