//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, November 15, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { [XLua.Hotfix] public class DemonTreasureDungeonVictoryWin : DungeonVictoryWin { [SerializeField] PropertyBehaviour[] m_Propertys; [SerializeField] Button m_ChallengeNextLevel; [SerializeField] Text m_ChallengeNextTimer; TreasureModel model { get { return ModelCenter.Instance.GetModel(); } } protected override void AddListeners() { base.AddListeners(); m_ChallengeNextLevel.onClick.AddListener(ChallengeNext); } protected override void Display() { m_ContainerPoivt.gameObject.SetActive(true); base.DrawPassTime(); base.RequireDungeonExit(); DisplayDemonTreasureProperty(); } protected override void DrawExitTimer(int seconds) { m_ExitTimer.text = Language.Get("DemonDungeonExit"); m_ChallengeNextTimer.text = Language.Get("RuneDungeonVictory_Btn_Next_1", Mathf.Clamp(seconds, 0, int.MaxValue)); } 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].gameObject.SetActive(true); m_Propertys[index].Display(key, propertyDict[key]); index++; } } } for (int i = index; i < m_Propertys.Length; i++) { m_Propertys[i].gameObject.SetActive(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))) { if (PlayerDatas.Instance.baseData.FightPoint >= dungeonInfo.fightPower) { model.DemonDungeonChallengeNext(result.lineID); } else { ConfirmCancel.ShowRuneTowerPopConfirm( Language.Get("DemonLackPowerTitle"), Language.Get("DemonLackFightPower", dungeonInfo.fightPower), (bool ok) => { if (ok) { model.DemonDungeonChallengeNext(result.lineID); } else { dungeonModel.ExitCurrentDungeon(); } } ); } } } } } }