//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 20, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace vnxbqy.UI { public class TrialDungeonSelectBehaviour : ScrollItem { [SerializeField] Button m_SelectButton; [SerializeField] Image m_BackGround; [SerializeField] Image m_SceneBG; [SerializeField] Image m_TitleIcon; [SerializeField] Image m_BossIcon; [SerializeField] Image m_BossFrame; [SerializeField] Text m_DungeonName; [SerializeField] Text m_PlayerLevel; [SerializeField] Text m_PetHorseLevel; [SerializeField] Text m_ChallengeRemind; [SerializeField] SmoothMask m_SmoothMask; Dungeon dungeon; TrialDungeonSelectWin m_TrailDungeonSelectWin; DungeonModel model { get { return ModelCenter.Instance.GetModel(); } } TrialDungeonModel trialDungeonModel { get { return ModelCenter.Instance.GetModel(); } } public override void Display(object _data) { base.Display(_data); dungeon = (Dungeon)_data; var config = DungeonConfig.Get(model.GetDungeonId(dungeon)); if (config == null) { return; } if (m_TrailDungeonSelectWin != null) { m_TrailDungeonSelectWin.dungeonSelectEvent -= OnSelected; } m_TrailDungeonSelectWin = WindowCenter.Instance.Get(); m_TrailDungeonSelectWin.dungeonSelectEvent += OnSelected; m_SelectButton.RemoveAllListeners(); m_SelectButton.AddListener(Select); DrawDungeonInfo(dungeon); } public override void Dispose() { base.Dispose(); } private void DrawDungeonInfo(Dungeon _dungeon) { var dungeonId = model.GetDungeonId(_dungeon); var config = DungeonConfig.Get(dungeonId); m_DungeonName.text = config.FBName; var _npcId = config.BossActorID[0]; var bossConfig = NPCConfig.Get(_npcId); m_PlayerLevel.text = Language.Get("Z1024", config.LVLimitMin); m_PlayerLevel.color = PlayerDatas.Instance.baseData.LV >= config.LVLimitMin ? UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true); var requirePetHorseLevel = trialDungeonModel.GetDungeonRequirePetHorseLevel(_dungeon.lineId); var petHorseLevel = trialDungeonModel.GetPetHorseLevel(); m_PetHorseLevel.text = requirePetHorseLevel.ToString(); m_PetHorseLevel.color = petHorseLevel >= requirePetHorseLevel ? UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true); DungeonRecord dungeonRecord; model.TryGetRecord(_dungeon.mapId, out dungeonRecord); bool prefloorPass = _dungeon.lineId == 0; if (_dungeon.lineId > 0 && dungeonRecord != null) { var grade = 0; dungeonRecord.lineGrades.TryGetValue(config.LineID - 1, out grade); prefloorPass = grade > 0; } if (PlayerDatas.Instance.baseData.LV < config.LVLimitMin || petHorseLevel < requirePetHorseLevel || !prefloorPass) { m_ChallengeRemind.text = Language.Get("TrialDungeonLock"); m_ChallengeRemind.color = UIHelper.GetUIColor(TextColType.Red, true); SetImageGray(true); } else { m_ChallengeRemind.text = Language.Get("TrialDungeonUnLock"); m_ChallengeRemind.color = UIHelper.GetUIColor(TextColType.NavyBrown, true); SetImageGray(false); } if (GeneralDefine.trailBossHeadIcons.ContainsKey(_npcId)) { m_BossIcon.SetSprite(GeneralDefine.trailBossHeadIcons[_npcId]); } var selected = m_TrailDungeonSelectWin.currentSelectDungeon == _dungeon; } private void Select() { m_TrailDungeonSelectWin.currentSelectDungeon = dungeon; model.selectedTrialDungeon = dungeon; WindowCenter.Instance.Open(); } private void OnSelected(Dungeon _dungeon) { //m_Selected.SetActive(dungeon == _dungeon); } private void SetImageGray(bool _gray) { m_SceneBG.material = _gray ? m_SmoothMask.imageMaterials[1] : m_SmoothMask.imageMaterials[0]; m_BossIcon.material = _gray ? m_SmoothMask.imageMaterials[1] : m_SmoothMask.imageMaterials[0]; m_TitleIcon.material = _gray ? m_SmoothMask.imageMaterials[1] : m_SmoothMask.imageMaterials[0]; } } }