//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, September 12, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
namespace vnxbqy.UI
|
{
|
|
public class DungeonDefeatedWin : Window
|
{
|
[SerializeField] Transform m_ContainerPoivt;
|
[SerializeField] Text m_ExitTimer;
|
[SerializeField] ButtonEx m_Exit;
|
[SerializeField] Button realmBtn;
|
[SerializeField] UIEffect realmEffect;
|
[SerializeField] Button equipFuncBtn;
|
[SerializeField] UIEffect equipFuncEffect;
|
[SerializeField] TextEx equipFuncText;
|
[SerializeField] Button petMountBtn;
|
[SerializeField] UIEffect petMountEffect;
|
|
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
|
float timer = 0f;
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Exit.AddListener(ExitDungeon);
|
realmBtn.AddListener(() => {
|
ExitDungeon();
|
PopupWindowsProcessor.Instance.Add("RealmWin"); });
|
equipFuncBtn.AddListener(() =>
|
{
|
int order = 0;
|
if (RedpointCenter.Instance.GetRedpointState(10601) != RedPointState.None)
|
order = 0;
|
else if (RedpointCenter.Instance.GetRedpointState(1720000) != RedPointState.None)
|
order = 1;
|
else if (RedpointCenter.Instance.GetRedpointState(10602) != RedPointState.None)
|
order = 3;
|
|
ExitDungeon();
|
PopupWindowsProcessor.Instance.Add("EquipFrameWin", order);
|
|
});
|
|
petMountBtn.AddListener(() =>
|
{
|
int order = 0;
|
if (RedpointCenter.Instance.GetRedpointState(10501) != RedPointState.None)
|
order = 0;
|
else if (RedpointCenter.Instance.GetRedpointState(10502) != RedPointState.None)
|
order = 1;
|
ExitDungeon();
|
PopupWindowsProcessor.Instance.Add("PetWin", order);
|
});
|
}
|
|
protected override void OnPreOpen()
|
{
|
timer = 0f;
|
m_ContainerPoivt.SetActive(false);
|
}
|
|
protected override void OnAfterOpen()
|
{
|
if (PlayerDatas.Instance.baseData.MapID == IceCrystalVeinModel.ICECRYSTALVEIN_MAPID)
|
{
|
var iceCrystalVeinModel = ModelCenter.Instance.GetModel<IceCrystalVeinModel>();
|
iceCrystalVeinModel.IsIceCrystalVein_Copy = true;
|
}
|
|
if (realmBtn == null)
|
return;
|
|
realmBtn.SetActive(FuncOpen.Instance.IsFuncOpen(12));
|
petMountBtn.SetActive(FuncOpen.Instance.IsFuncOpen(6));
|
equipFuncBtn.SetActive(FuncOpen.Instance.IsFuncOpen(1));
|
|
bool playEquipFuncEffect = false;
|
if (RedpointCenter.Instance.GetRedpointState(10601) != RedPointState.None)
|
{
|
equipFuncText.text = Language.Get("EquipReinforceWin_btnText_1");
|
playEquipFuncEffect = true;
|
}
|
else if (RedpointCenter.Instance.GetRedpointState(1720000) != RedPointState.None)
|
{
|
equipFuncText.text = Language.Get("EquipReinforceWin_btnText_6");
|
playEquipFuncEffect = true;
|
}
|
else if (RedpointCenter.Instance.GetRedpointState(10602) != RedPointState.None)
|
{
|
equipFuncText.text = Language.Get("EquipReinforceWin_btnText_2");
|
playEquipFuncEffect = true;
|
}
|
else
|
{
|
equipFuncText.text = Language.Get("EquipReinforceWin_btnText_1");
|
}
|
|
if (playEquipFuncEffect)
|
{
|
equipFuncEffect.Play();
|
}
|
else
|
{
|
equipFuncEffect.Stop();
|
}
|
|
if (RedpointCenter.Instance.GetRedpointState(10502) != RedPointState.None ||
|
RedpointCenter.Instance.GetRedpointState(10501) != RedPointState.None)
|
{
|
petMountEffect.Play();
|
}
|
else
|
{
|
petMountEffect.Stop();
|
}
|
|
if (RedpointCenter.Instance.GetRedpointState(114) != RedPointState.None)
|
{
|
realmEffect.Play();
|
}
|
else
|
{
|
realmEffect.Stop();
|
}
|
}
|
|
protected override void OnPreClose()
|
{
|
|
}
|
|
protected override void OnAfterClose()
|
{
|
var iceCrystalVeinModel = ModelCenter.Instance.GetModel<IceCrystalVeinModel>();
|
if (iceCrystalVeinModel.IsIceCrystalVein_Copy)
|
{
|
iceCrystalVeinModel.IsIceCrystalVein_Copy = false;
|
PopupWindowsProcessor.Instance.Add("IceCrystalVeinWin");
|
}
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
|
var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
var config = DungeonOpenTimeConfig.Get(dataMapId);
|
|
StartCoroutine(Co_DelayDisplay(config.DelayTime * 0.001f));
|
}
|
#endregion
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
|
timer -= Time.deltaTime;
|
if (timer < 0f)
|
{
|
timer = 1f;
|
var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
var seconds = (endTime - TimeUtility.ServerNow).TotalSeconds;
|
m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
|
}
|
}
|
|
private void ExitDungeon()
|
{
|
model.ExitCurrentDungeon();
|
CloseClick();
|
}
|
|
IEnumerator Co_DelayDisplay(float _delay)
|
{
|
yield return new WaitForSeconds(_delay);
|
|
var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
var seconds = (endTime - TimeUtility.ServerNow).TotalSeconds;
|
timer = 0f;
|
m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
|
m_ExitTimer.SetActive(true);
|
m_ContainerPoivt.SetActive(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
|