//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, January 18, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
namespace vnxbqy.UI
|
{
|
|
public class RealmTowerWin : Window
|
{
|
[SerializeField] ScrollerController m_TowerBehaviour;
|
[SerializeField] List<ItemCell> items;
|
[SerializeField] TextEx m_LevelLimit;
|
[SerializeField] Button m_Challenge;
|
[SerializeField] TextEx m_TopNow;
|
[SerializeField] TextEx m_TowerName;
|
[SerializeField] Button m_Close;
|
|
RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Challenge.SetListener(Challenge);
|
m_Close.AddListener(CloseClick);
|
}
|
|
protected override void OnPreOpen()
|
{
|
m_TowerBehaviour.OnRefreshCell += RefreshCell;
|
realmModel.OnTowerPassEvent += OnTowerPassEvent;
|
|
Display();
|
OnCreateScroller();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
m_TowerBehaviour.OnRefreshCell -= RefreshCell;
|
realmModel.OnTowerPassEvent -= OnTowerPassEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
}
|
|
#endregion
|
|
|
void Display()
|
{
|
var config = RealmTowerConfig.Get(realmModel.selectFloorID);
|
var awards = config.RewardItemList;
|
for (int i = 0; i < items.Count; i++)
|
{
|
if (i < awards.Length)
|
{
|
items[i].SetActive(true);
|
int itemID = awards[i][0];
|
items[i].Init(new ItemCellModel(itemID, false, (ulong)awards[i][1]));
|
items[i].button.AddListener(() => {
|
ItemTipUtility.Show(itemID);
|
});
|
}
|
else
|
{
|
items[i].SetActive(false);
|
}
|
}
|
|
m_LevelLimit.text = UIHelper.GetRealmName(config.NeedRealmLV, false, true);
|
m_Challenge.SetActive(realmModel.currentFloor == realmModel.selectFloorID);
|
m_TopNow.SetActive(realmModel.currentFloor != realmModel.selectFloorID);
|
m_TowerName.text = Language.Get("RealmTower4", RealmConfig.Get(RealmConfig.Get(RealmTowerConfig.Get(realmModel.selectFloorID).NeedRealmLV).LvLarge).Name);
|
}
|
|
|
void OnCreateScroller()
|
{
|
var floors = RealmTowerConfig.GetFloorsByFloorID(realmModel.selectFloorID);
|
if (floors == null) return;
|
m_TowerBehaviour.Refresh();
|
|
for (int i = floors.Count - 1; i >= 0; i--)
|
{
|
if (i == floors.Count - 1)
|
{
|
m_TowerBehaviour.AddCell(ScrollerDataType.Header, floors[i]);
|
}
|
else
|
{
|
m_TowerBehaviour.AddCell(ScrollerDataType.Normal, floors[i]);
|
}
|
}
|
|
m_TowerBehaviour.AddCell(ScrollerDataType.Tail, 0);
|
|
m_TowerBehaviour.Restart();
|
m_TowerBehaviour.JumpIndex(floors.Count - floors.IndexOf(realmModel.selectFloorID) - 1);
|
}
|
|
|
void Challenge()
|
{
|
realmModel.RequestChallenge();
|
}
|
|
void RefreshCell(ScrollerDataType type, CellView cell)
|
{
|
if (type == ScrollerDataType.Header || type == ScrollerDataType.Normal)
|
{
|
var floorCell = cell as RealmTowerFloorCell;
|
floorCell.Display(cell.index);
|
}
|
}
|
|
void OnTowerPassEvent()
|
{
|
Display();
|
m_TowerBehaviour.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|
|
}
|
|
|
|
|