//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, October 25, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace vnxbqy.UI { public class DungeonDifficultySelectBehaviour : ScrollItem { [SerializeField] ToggleButton m_Select; [SerializeField] ImageEx m_Icon; [SerializeField] Transform m_ContainerLock; [SerializeField] Text m_Index; [SerializeField] Text m_UnLockTitle; [SerializeField] Text m_UnLockLevel; [SerializeField] Material m_MaterialNormal; [SerializeField] Material m_MaterialGray; [SerializeField] FontColorSizeConfig m_TitleFontColorSize; [SerializeField] FontColorSizeConfig m_FontColorSize; Dungeon dungeon; DungeonModel model { get { return ModelCenter.Instance.GetModel(); } } public override void Display(object _data) { base.Display(_data); dungeon = (Dungeon)_data; var config = DungeonConfig.Get(model.GetDungeonId(dungeon.mapId, dungeon.lineId)); m_Select.isOn = model.selectedKylinDungeon == dungeon; var playerLevel = PlayerDatas.Instance.baseData.LV; var isUnLocked = playerLevel >= config.LVLimitMin; m_Icon.material = isUnLocked ? m_MaterialNormal : m_MaterialGray; m_ContainerLock.SetActive(!isUnLocked); m_UnLockTitle.color = m_FontColorSize.GetColorSize(isUnLocked ? "Normal" : "Locked").color; m_UnLockLevel.text = config.LVLimitMin.ToString(); m_UnLockLevel.color = m_FontColorSize.GetColorSize(isUnLocked ? "Normal" : "Locked").color; m_Index.text = (dungeon.lineId + 1).ToString(); m_Index.color = m_TitleFontColorSize.GetColorSize(isUnLocked ? "Normal" : "Locked").color; model.kylinDifficultySelectedEvent -= OnSelected; model.kylinDifficultySelectedEvent += OnSelected; } public override void Dispose() { base.Dispose(); model.kylinDifficultySelectedEvent -= OnSelected; } private void SelectDifficulty() { model.selectedKylinDungeon = dungeon; model.currentDungeon = dungeon; } private void OnSelected(Dungeon _dungeon) { m_Select.isOn = dungeon == _dungeon; } private void Awake() { m_Select.AddListener(SelectDifficulty); } } }