//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, April 07, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace vnxbqy.UI { public class RuneTowerPassedInfoPanel : MonoBehaviour { [SerializeField] ScrollRect m_ScrollRect; [SerializeField] RuneTowerPassedInfoBehaviour[] m_Behaviours; RuneTowerModel model { get { return ModelCenter.Instance.GetModel(); } } public void Display() { var passedTowers = RuneTowerConfig.GetKeys(); for (int i = 0; i < m_Behaviours.Length; i++) { var behaviour = m_Behaviours[i]; if (i < passedTowers.Count) { behaviour.SetActive(true); var towerId = int.Parse(passedTowers[i]); var state = GetTowerState(towerId); if (state == 1) { behaviour.Display(towerId, true); } else if (state == -1) { behaviour.Display(towerId, false); } else { var latestPassedFloor = ModelCenter.Instance.GetModel().passRuneTowerFloor; behaviour.Display(towerId, (int)latestPassedFloor); } } else { behaviour.SetActive(false); } } m_ScrollRect.verticalNormalizedPosition = 1f; } private int GetTowerState(int _towerId) { var latestPassedFloor = ModelCenter.Instance.GetModel().passRuneTowerFloor; var lastPassTowerId = -1; if (latestPassedFloor > 0) { lastPassTowerId = RuneTowerFloorConfig.Get((int)latestPassedFloor).TowerId; } if (model.allTowerCompleted) { return 1; } else if (latestPassedFloor == 0) { return -1; } else if (_towerId == lastPassTowerId) { if (lastPassTowerId == model.currentTower) { return 0; } else { return 1; } } else { return lastPassTowerId > _towerId ? 1 : -1; } } } }