//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, March 08, 2019
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
|
public class EquipTrainLevelBehaviour : MonoBehaviour
|
{
|
|
[SerializeField] Button m_Select;
|
[SerializeField] Image m_BackGround;
|
[SerializeField] Image m_Arrow;
|
[SerializeField] Text m_Title;
|
|
readonly List<EquipTrainCandidateBehaviour> slotBehaviours = new List<EquipTrainCandidateBehaviour>();
|
|
EquipTrainModel model { get { return ModelCenter.Instance.GetModel<EquipTrainModel>(); } }
|
EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
|
|
public int level { get; private set; }
|
public void Init(int level)
|
{
|
var equipSet = equipModel.GetEquipSet(level);
|
var realmConfig = RealmConfig.Get(equipSet.realm);
|
this.m_Title.text = Language.Get("RealmEquipName", realmConfig.Name);
|
|
this.level = level;
|
m_Select.SetListener(Select);
|
}
|
|
public void UnInit()
|
{
|
Dispose();
|
|
this.level = 0;
|
this.m_Select.RemoveAllListeners();
|
}
|
|
public void Display()
|
{
|
var siblingIndex = this.transform.GetSiblingIndex();
|
var candidates = this.model.candidatePlaces.Fetch();
|
for (var i = candidates.Count - 1; i >= 0; i--)
|
{
|
var behaviour = EquipTrainCandidateBehaviourPool.Get();
|
behaviour.Display(candidates[i]);
|
behaviour.transform.SetParentEx(this.transform.parent, Vector3.zero, Quaternion.identity, Vector3.one);
|
behaviour.transform.SetSiblingIndex(siblingIndex + 1);
|
slotBehaviours.Add(behaviour);
|
}
|
|
m_BackGround.SetSprite("RealmEquip_16");
|
m_Arrow.transform.localEulerAngles = new Vector3(0, 0, 180);
|
}
|
|
public void Dispose()
|
{
|
for (var i = slotBehaviours.Count - 1; i >= 0; i--)
|
{
|
EquipTrainCandidateBehaviourPool.Release(slotBehaviours[i]);
|
}
|
|
slotBehaviours.Clear();
|
m_BackGround.SetSprite("RealmEquip_5");
|
m_Arrow.transform.localEulerAngles = Vector3.zero;
|
}
|
|
private void Select()
|
{
|
if (model.selectedLevel.value == this.level)
|
{
|
model.SelectLevel(0);
|
}
|
else
|
{
|
model.SelectLevel(this.level);
|
}
|
}
|
|
|
}
|
|
}
|