//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, July 16, 2019
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
|
public class EquipStarMaterialSelectButton : MonoBehaviour
|
{
|
[SerializeField] Image m_Lock;
|
[SerializeField] Button m_SelectMaterial;
|
[SerializeField] Image m_Add;
|
[SerializeField] ItemBehaviour m_ItemBehaviour;
|
|
EquipStarModel starModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
|
|
public void Display(bool isLock, int itemId)
|
{
|
var state = 1;
|
if (isLock)
|
{
|
state = 1;
|
}
|
else
|
{
|
if (itemId == 0)
|
{
|
state = 2;
|
}
|
else
|
{
|
state = 3;
|
}
|
}
|
|
switch (state)
|
{
|
case 1:
|
m_Lock.gameObject.SetActive(true);
|
m_Add.gameObject.SetActive(false);
|
m_ItemBehaviour.gameObject.SetActive(false);
|
m_SelectMaterial.RemoveAllListeners();
|
break;
|
case 2:
|
m_Lock.gameObject.SetActive(false);
|
m_Add.gameObject.SetActive(true);
|
m_ItemBehaviour.gameObject.SetActive(false);
|
m_SelectMaterial.SetListener(OpenMaterialSelectWin);
|
break;
|
case 3:
|
m_Lock.gameObject.SetActive(false);
|
m_Add.gameObject.SetActive(false);
|
m_ItemBehaviour.gameObject.SetActive(true);
|
m_ItemBehaviour.SetItem(itemId, 0);
|
m_SelectMaterial.SetListener(OpenMaterialSelectWin);
|
break;
|
}
|
}
|
|
public void Dispose()
|
{
|
|
}
|
|
private void OpenMaterialSelectWin()
|
{
|
starModel.normalMaterials.Clear();
|
var equipPosition = new Int2(starModel.selectedLevel.value, starModel.selectedPlace.value);
|
var starLevel = starModel.GetStarLevel(equipPosition);
|
starModel.CalculateStarUpgradeProbability(new Int2(starModel.selectedLevel.value, starModel.selectedPlace.value));
|
|
var materials = starModel.GetMaterials(equipPosition, starLevel + 1);
|
if (materials.IsNullOrEmpty())
|
{
|
var getWays = starModel.GetMaterialGetWays(equipPosition, starLevel + 1);
|
var getWayModel = ModelCenter.Instance.GetModel<GetWayModel>();
|
getWayModel.SetWays(getWays.ToArray());
|
|
WindowCenter.Instance.Open<GetWayWin>();
|
}
|
else
|
{
|
WindowCenter.Instance.Open<EquipStarMaterialSelectWin>();
|
}
|
|
}
|
|
}
|
|
}
|