//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, October 24, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; namespace Snxxz.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()); } } 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 != 1) { 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() { } protected override void OnAfterClose() { } #endregion private void OnShowBtnlist() { _btnlist.SetActive(true); _rebornWorldText.text = Language.Get("PlayerReborn103"); _timeDownText.gameObject.SetActive(false); } private void OnHideBtnlist() { _btnlist.SetActive(false); _rebornWorldText.text = Language.Get("PlayerReborn104"); _timeDownText.gameObject.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) { WindowCenter.Instance.Open(); } else { DeadModel.SendRebornQuest(0); } } else { 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(); } } }