//--------------------------------------------------------
|
// [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;
|
|
bool satisfyChallengeNext = false;
|
|
TreasureModel model
|
{
|
get { return ModelCenter.Instance.GetModel<TreasureModel>(); }
|
}
|
|
protected override void AddListeners()
|
{
|
base.AddListeners();
|
m_ChallengeNextLevel.onClick.AddListener(ChallengeNext);
|
}
|
|
protected override void Display()
|
{
|
satisfyChallengeNext = SatisfyChallengeNext();
|
|
m_ChallengeNextLevel.gameObject.SetActive(satisfyChallengeNext);
|
|
m_ContainerPoivt.gameObject.SetActive(true);
|
|
base.DrawPassTime();
|
base.RequireDungeonExit();
|
|
DisplayDemonTreasureProperty();
|
}
|
|
protected override void DrawExitTimer(int seconds)
|
{
|
if (satisfyChallengeNext)
|
{
|
m_ChallengeNextTimer.text = Language.Get("RuneDungeonVictory_Btn_Next_1", Mathf.Clamp(seconds, 0, int.MaxValue));
|
m_ExitTimer.text = Language.Get("DemonDungeonExit");
|
}
|
else
|
{
|
m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp(seconds, 0, int.MaxValue));
|
m_ChallengeNextTimer.text = Language.Get("DemonDungeonChallengeNext");
|
}
|
}
|
|
private void DisplayDemonTreasureProperty()
|
{
|
var result = dungeonModel.dungeonResult;
|
TreasureDungeon treasureDungeon;
|
Dictionary<int, int> 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 bool SatisfyChallengeNext()
|
{
|
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)
|
{
|
return true;
|
}
|
if (UIHelper.GetPropertyValue(PropertyType.DEF) >= dungeonInfo.defense)
|
{
|
return true;
|
}
|
}
|
}
|
return 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)))
|
{
|
model.DemonDungeonChallengeNext(result.lineID);
|
}
|
}
|
}
|
|
}
|
|
}
|
|
|
|
|