//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, November 15, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class DemonTreasureDungeonVictoryWin : DungeonVictoryWin { [SerializeField] PropertyBehaviour[] m_Propertys; [SerializeField] Button m_ChallengeNextLevel; [SerializeField] Text m_ChallengeNextTimer; bool satisfyChallengeNext = false; TreasureModel model { get { return ModelCenter.Instance.GetModel(); } } protected override void AddListeners() { base.AddListeners(); m_ChallengeNextLevel.onClick.AddListener(ChallengeNext); } protected override void Display() { satisfyChallengeNext = SatisfyChallengeNext(); m_ChallengeNextLevel.SetActive(satisfyChallengeNext); m_ContainerPoivt.SetActive(true); base.DrawPassTime(); base.RequireDungeonExit(); DisplayDemonTreasureProperty(); } protected override void DrawExitTimer(int seconds) { if (satisfyChallengeNext) { m_ChallengeNextTimer.text = Language.Get("RuneDungeonVictory_Btn_Next_1", Mathf.Clamp(seconds, 0, int.MaxValue)); m_ExitTimer.text = Language.Get("DemonDungeonExit"); } else { m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp(seconds, 0, int.MaxValue)); m_ChallengeNextTimer.text = Language.Get("DemonDungeonChallengeNext"); } } private void DisplayDemonTreasureProperty() { var result = dungeonModel.dungeonResult; TreasureDungeon treasureDungeon; Dictionary propertyDict = null; if (model.TryGetTreasureDungeon(41110, result.lineID, out treasureDungeon)) { propertyDict = treasureDungeon.GetUpperProperty(result.wheel); } var index = 0; if (propertyDict != null) { foreach (var key in propertyDict.Keys) { if (index < m_Propertys.Length) { m_Propertys[index].SetActive(true); m_Propertys[index].Display(key, propertyDict[key]); index++; } } } for (int i = index; i < m_Propertys.Length; i++) { m_Propertys[i].SetActive(false); } } private bool SatisfyChallengeNext() { TreasureDungeon treasureDungeon; var result = dungeonModel.dungeonResult; if (model.TryGetTreasureDungeon(41110, result.lineID, out treasureDungeon)) { var dungeonInfo = treasureDungeon.Get(result.wheel + 1); if (!dungeonInfo.Equals(default(TreasureDungeonInfo))) { if ((int)UIHelper.GetPropertyValue(PropertyType.DEF) >= dungeonInfo.defense) { return true; } } } return false; } private void ChallengeNext() { TreasureDungeon treasureDungeon; var result = dungeonModel.dungeonResult; if (model.TryGetTreasureDungeon(41110, result.lineID, out treasureDungeon)) { var dungeonInfo = treasureDungeon.Get(result.wheel + 1); if (!dungeonInfo.Equals(default(TreasureDungeonInfo))) { model.DemonDungeonChallengeNext(result.lineID); } } } } }