//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, October 24, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Text;
|
using UnityEngine;
|
using UnityEngine.Events;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI {
|
|
public class RebornWin : Window
|
{
|
[SerializeField]
|
private Button _bagWinBtn;
|
[SerializeField]
|
private Button _roleWinBtn;
|
[SerializeField]
|
private Button _horseWinBtn;
|
[SerializeField]
|
private Button _strengthWinBtn;
|
[SerializeField]
|
private Button _petWinBtn;
|
|
[SerializeField]
|
private Button _safeRebornBtn;
|
[SerializeField]
|
private Button _inplaceRebornBtn;
|
|
[SerializeField]
|
private Text _rebornPriceText;
|
|
[SerializeField]
|
private Text _rebornWorldText;
|
|
[SerializeField]
|
private GameObject _btnlist;
|
|
[SerializeField]
|
private Text _timeDownText;
|
|
PlayerDeadModel _deadModel;
|
PlayerDeadModel DeadModel
|
{
|
get { return _deadModel ?? (_deadModel = ModelCenter.Instance.GetModel<PlayerDeadModel>()); }
|
}
|
|
int questTimes = 0;
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
_bagWinBtn.onClick.RemoveAllListeners();
|
_bagWinBtn.onClick.AddListener(OnClickBagWinBtn);
|
_roleWinBtn.onClick.RemoveAllListeners();
|
_roleWinBtn.onClick.AddListener(OnClickRoleWinBtn);
|
_horseWinBtn.onClick.RemoveAllListeners();
|
_horseWinBtn.onClick.AddListener(OnClickHorseWinBtn);
|
_strengthWinBtn.onClick.RemoveAllListeners();
|
_strengthWinBtn.onClick.AddListener(OnClickStrengthWinBtn);
|
_petWinBtn.onClick.RemoveAllListeners();
|
_petWinBtn.onClick.AddListener(OnClickPetWinBtn);
|
_safeRebornBtn.onClick.RemoveAllListeners();
|
_safeRebornBtn.onClick.AddListener(OnClickSafeRebornBtn);
|
_inplaceRebornBtn.onClick.RemoveAllListeners();
|
_inplaceRebornBtn.onClick.AddListener(OnClickInplaceRebornBtn);
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
questTimes = 0;
|
_rebornPriceText.text = 1.ToString();
|
if(DeadModel.isKillByPlayer || !DeadModel.localBossState)
|
{
|
OnShowBtnlist();
|
}
|
else
|
{
|
OnHideBtnlist();
|
if (DeadModel.deadCD == 0)
|
{
|
RefreshAutoRebornTime(DeadModel.autoRebornTime);
|
TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.BossAutoReborn, DeadModel.autoRebornTime, RefreshAutoRebornTime);
|
}
|
else
|
{
|
RefreshAutoRebornTime(Mathf.RoundToInt(DeadModel.deadCD));
|
TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.BossAutoReborn, DeadModel.deadCD, RefreshAutoRebornTime);
|
}
|
}
|
}
|
|
protected override void OnAfterOpen()
|
{
|
this.transform.SetAsLastSibling();
|
}
|
|
protected override void OnPreClose()
|
{
|
StopAllCoroutines();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
private void OnShowBtnlist()
|
{
|
_btnlist.SetActive(true);
|
_rebornWorldText.text = Language.Get("PlayerReborn103");
|
_timeDownText.SetActive(false);
|
}
|
|
private void OnHideBtnlist()
|
{
|
_btnlist.SetActive(false);
|
StringBuilder builder;
|
if(DeadModel.CheckIsRealmSuppress(out builder))
|
{
|
_rebornWorldText.text = Language.Get("PlayerReborn106",builder.ToString());
|
}
|
else
|
{
|
_rebornWorldText.text = Language.Get("PlayerReborn104");
|
}
|
_timeDownText.SetActive(true);
|
}
|
private void RefreshAutoRebornTime(float obj)
|
{
|
_timeDownText.text = Mathf.RoundToInt(obj).ToString();
|
if(obj <=0 && DeadModel.playerIsDie)
|
{
|
DeadModel.SendRebornQuest(0);
|
StartCoroutine(CheckPlayerIsReborn());
|
}
|
}
|
|
IEnumerator CheckPlayerIsReborn()
|
{
|
questTimes = 0;
|
while (questTimes < 5)
|
{
|
yield return new WaitForSeconds(1);
|
questTimes += 1;
|
if (DeadModel.playerIsDie)
|
{
|
DeadModel.SendRebornQuest(0);
|
}
|
else
|
{
|
questTimes = 5;
|
}
|
}
|
}
|
|
private void OnClickBagWinBtn()
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.RebornOpenBag);
|
}
|
|
private void OnClickRoleWinBtn()
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.RoleFunc1);
|
}
|
|
private void OnClickInplaceRebornBtn()
|
{
|
DeadModel.InpacleReborn();
|
}
|
|
private void OnClickSafeRebornBtn()
|
{
|
if(DeadModel.isKillByPlayer)
|
{
|
if (DeadModel.deadCD != 0)
|
{
|
Debug.Log("是玩家杀死处于死亡疲劳");
|
WindowCenter.Instance.Open<RebornTiredWin>();
|
}
|
else
|
{
|
Debug.Log("是玩家杀死非死亡疲劳");
|
DeadModel.SendRebornQuest(0);
|
}
|
}
|
else
|
{
|
Debug.Log("不是玩家杀死");
|
DeadModel.SendRebornQuest(0);
|
}
|
}
|
|
private void OnClickPetWinBtn()
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.RebornOpenPet);
|
}
|
|
private void OnClickStrengthWinBtn()
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.RebornOpenStrength);
|
}
|
|
private void OnClickHorseWinBtn()
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.RebornOpenHourse);
|
}
|
|
private void CloseWin()
|
{
|
Close();
|
}
|
|
|
}
|
|
}
|
|
|
|
|