using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.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; 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 richText = m_ExitTimer as RichText; richText.text = Language.Get("RuneDungeonVictory_Btn_Next_1", Mathf.Clamp(seconds, 0, int.MaxValue)); } protected override void Display() { base.RequireDungeonExit(); m_ContainerPoivt.gameObject.SetActive(true); base.DrawPassTime(); base.DrawGetExp(); base.DrawGetMoney(); base.DrawItemRewards(); if (!runeTowerModel.allTowerCompleted) { var config = ConfigManager.Instance.GetTemplate(runeTowerModel.currentFloor); var lastFloor = (int)ModelCenter.Instance.GetModel().RuneTowerOpenLV; var lastFloorConfig = ConfigManager.Instance.GetTemplate(lastFloor); m_RuneTowerNext.gameObject.SetActive(config.TowerId == lastFloorConfig.TowerId); DisplayRunesUnLock(lastFloor); } else { m_RuneTowerNext.gameObject.SetActive(false); m_UnLockRuneHoleContainer.gameObject.SetActive(false); m_UnLockRuneComposeContainer.gameObject.SetActive(false); m_UnLockRuneType.gameObject.SetActive(false); } } private void ChallengeNextRuneTower() { var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage; runeTowerStage.PerformChallengeNextLevel(); dungeonModel.UpdateDungeonCoolDown(DungeonCoolDownType.LeaveMap, 0); dungeonModel.UpdateDungeonCoolDown(DungeonCoolDownType.TowerTake, 0); CloseClick(); } private void DisplayRunesUnLock(int _floor) { var config = ConfigManager.Instance.GetTemplate(_floor); m_UnLockRuneHoleContainer.gameObject.SetActive(false); m_UnLockRuneComposeContainer.gameObject.SetActive(false); m_UnLockRuneType.gameObject.SetActive(false); if (config.UnLockRune > 0) { var itemConfig = ConfigManager.Instance.GetTemplate(config.UnLockRune); m_UnLockRuneType.gameObject.SetActive(true); m_UnLockRuneType.text = Language.Get("RuneTower3", Language.Get(StringUtility.Contact("RuneType_", itemConfig.Effect1))); } else if (config.UnLockHole > 0) { m_UnLockRuneHoleContainer.gameObject.SetActive(true); var nextHole = runeTowerModel.GetAccumulativeUnLockHoleCount((int)runeModel.RuneTowerOpenLV); var currentHole = nextHole - 1; m_CurrentUnLockRuneHole.text = currentHole.ToString(); m_NextUnLockRuneHole.text = nextHole.ToString(); } else if (config.UnLockCompose > 0) { m_UnLockRuneComposeContainer.gameObject.SetActive(true); var itemConfig = ConfigManager.Instance.GetTemplate(config.UnLockCompose); m_UnLockRuneCompose.text = Language.Get("RuneTower8", Language.Get(StringUtility.Contact("RuneType_", itemConfig.Effect1))); } } } }