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<RuneModel>(); } }
|
RuneTowerModel runeTowerModel { get { return ModelCenter.Instance.GetModel<RuneTowerModel>(); } }
|
|
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 = Config.Instance.Get<RuneTowerFloorConfig>(runeTowerModel.currentFloor);
|
var lastFloor = (int)ModelCenter.Instance.GetModel<RuneModel>().RuneTowerOpenLV;
|
var lastFloorConfig = Config.Instance.Get<RuneTowerFloorConfig>(lastFloor);
|
m_RuneTowerNext.gameObject.SetActive(lastFloorConfig.AutoExit == 0 && 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.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0);
|
dungeonModel.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0);
|
CloseClick();
|
}
|
|
private void DisplayRunesUnLock(int _floor)
|
{
|
var config = Config.Instance.Get<RuneTowerFloorConfig>(_floor);
|
m_UnLockRuneHoleContainer.gameObject.SetActive(false);
|
m_UnLockRuneComposeContainer.gameObject.SetActive(false);
|
m_UnLockRuneType.gameObject.SetActive(false);
|
|
if (config.UnLockRune > 0)
|
{
|
var itemConfig = Config.Instance.Get<ItemConfig>(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 = Config.Instance.Get<ItemConfig>(config.UnLockCompose);
|
m_UnLockRuneCompose.text = Language.Get("RuneTower8", Language.Get(StringUtility.Contact("RuneType_", itemConfig.Effect1)));
|
}
|
|
}
|
|
}
|
}
|