//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, March 05, 2019
|
//--------------------------------------------------------
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class EquipStarLevelSelectBehaviour : MonoBehaviour
|
{
|
[SerializeField] Button m_Select;
|
[SerializeField] Image m_BackGround;
|
[SerializeField] Image m_Arrow;
|
[SerializeField] Text m_Title;
|
|
readonly List<EquipStarUpgradeCandidateSlot> slotBehaviours = new List<EquipStarUpgradeCandidateSlot>();
|
|
EquipStarModel model { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
|
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.GetCandidatePlaces();
|
for (var i = candidates.Count - 1; i >= 0; i--)
|
{
|
var behaviour = EquipStarUpgradeCandidateSlotPool.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--)
|
{
|
EquipStarUpgradeCandidateSlotPool.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);
|
}
|
}
|
|
}
|
|
|
}
|