using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class DungeonRuneTowerVictoryWin : DungeonVictoryWin { [SerializeField] RectTransform m_UnLockRuneHoleContainer; [SerializeField] Text m_CurrentUnLockRuneHole; [SerializeField] Text m_NextUnLockRuneHole; [SerializeField] RectTransform m_UnLockRuneComposeContainer; [SerializeField] Text m_UnLockRuneCompose; [SerializeField] Text m_UnLockRuneType; [SerializeField] Button m_RuneTowerNext; [SerializeField] RichText m_NextTimer; RuneModel runeModel { get { return ModelCenter.Instance.GetModel(); } } RuneTowerModel runeTowerModel { get { return ModelCenter.Instance.GetModel(); } } protected override void AddListeners() { base.AddListeners(); m_RuneTowerNext.AddListener(ChallengeNextRuneTower); } protected override void DrawExitTimer(int seconds) { var config = RuneTowerFloorConfig.Get(runeTowerModel.currentFloor); var lastFloor = (int)ModelCenter.Instance.GetModel().passRuneTowerFloor; var lastFloorConfig = RuneTowerFloorConfig.Get(lastFloor); var challengeNextable = !runeTowerModel.allTowerCompleted && lastFloorConfig.AutoExit == 0 && config.TowerId == lastFloorConfig.TowerId; if (challengeNextable) { m_ExitTimer.text = Language.Get("DemonDungeonExit"); m_NextTimer.text = Language.Get("RuneDungeonVictory_Btn_Next_1", Mathf.Clamp(seconds, 0, int.MaxValue)); } else { m_NextTimer.text = Language.Get("DemonDungeonChallengeNext"); m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp(seconds, 0, int.MaxValue)); } } protected override void Display() { base.RequireDungeonExit(); m_ContainerPoivt.SetActive(true); base.DrawPassTime(); base.DrawGetExp(); base.DrawGetMoney(); base.DrawItemRewards(); if (!runeTowerModel.allTowerCompleted) { var config = RuneTowerFloorConfig.Get(runeTowerModel.currentFloor); var lastFloor = (int)ModelCenter.Instance.GetModel().passRuneTowerFloor; var lastFloorConfig = RuneTowerFloorConfig.Get(lastFloor); m_RuneTowerNext.SetActive(lastFloorConfig.AutoExit == 0 && config.TowerId == lastFloorConfig.TowerId); DisplayRunesUnLock(lastFloor); } else { m_RuneTowerNext.SetActive(false); m_UnLockRuneHoleContainer.SetActive(false); m_UnLockRuneComposeContainer.SetActive(false); m_UnLockRuneType.SetActive(false); } } private void ChallengeNextRuneTower() { var config = RuneTowerFloorConfig.Get(runeTowerModel.currentFloor); if (PlayerDatas.Instance.baseData.FightPoint >= (ulong)NPCExConfig.Get(config.BossId).SuppressFightPower) { var runeTowerStage = StageLoad.Instance.currentStage as RuneTowerDungeonStage; runeTowerStage.PerformChallengeNextLevel(); dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0); dungeonModel.UpdateCoolDown(DungeonCoolDownType.FightStart, 0); CloseClick(); } else { ConfirmCancel.ShowRuneTowerPopConfirm( Language.Get("Mail101"), Language.Get("RuneTower25", UIHelper.ReplaceLargeNum(NPCExConfig.Get(config.BossId).SuppressFightPower)), (bool ok) => { if (ok) { var runeTowerStage = StageLoad.Instance.currentStage as RuneTowerDungeonStage; runeTowerStage.PerformChallengeNextLevel(); dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0); dungeonModel.UpdateCoolDown(DungeonCoolDownType.FightStart, 0); CloseClick(); } else { dungeonModel.ExitCurrentDungeon(); } } ); } } private void DisplayRunesUnLock(int _floor) { var config = RuneTowerFloorConfig.Get(_floor); m_UnLockRuneHoleContainer.SetActive(false); m_UnLockRuneComposeContainer.SetActive(false); m_UnLockRuneType.SetActive(false); if (config.UnLockRune > 0) { var itemConfig = ItemConfig.Get(config.UnLockRune); m_UnLockRuneType.SetActive(true); m_UnLockRuneType.text = Language.Get("RuneTower3", Language.Get(StringUtility.Contact("RuneType_", itemConfig.Effect1))); } else if (config.UnLockHole > 0) { m_UnLockRuneHoleContainer.SetActive(true); var nextHole = runeTowerModel.GetAccumulativeUnLockHoleCount((int)runeModel.passRuneTowerFloor); var currentHole = nextHole - 1; m_CurrentUnLockRuneHole.text = currentHole.ToString(); m_NextUnLockRuneHole.text = nextHole.ToString(); } else if (config.UnLockCompose > 0) { m_UnLockRuneComposeContainer.SetActive(true); var itemConfig = ItemConfig.Get(config.UnLockCompose); m_UnLockRuneCompose.text = Language.Get("RuneTower8", Language.Get(StringUtility.Contact("RuneType_", itemConfig.Effect1))); } } } }