//-------------------------------------------------------- // [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()); } } 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(); } 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(); } } }