//-------------------------------------------------------- // [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(); } } 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.SetWays(getWays.ToArray()); WindowCenter.Instance.Open(); } else { WindowCenter.Instance.Open(); } } } }