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<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 config = RuneTowerFloorConfig.Get(runeTowerModel.currentFloor);
|
var lastFloor = (int)ModelCenter.Instance.GetModel<RuneModel>().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<RuneModel>().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", 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)));
|
}
|
|
}
|
|
}
|
}
|
|