| | |
| | | [SerializeField] Text m_ReBornTimer; |
| | | [SerializeField] Button m_Reborn; |
| | | |
| | | PlayerDeadModel _deadModel; |
| | | PlayerDeadModel DeadModel |
| | | { |
| | | get { return _deadModel ?? (_deadModel = ModelCenter.Instance.GetModel<PlayerDeadModel>()); } |
| | | } |
| | | PlayerDeadModel DeadModel { get { return ModelCenter.Instance.GetModel<PlayerDeadModel>(); } } |
| | | |
| | | float rebornTime = 0f; |
| | | float secondTimer = 0f; |
| | | bool sendReborn = false; |
| | | #region Built-in |
| | | protected override void BindController() |
| | | { |
| | |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | TimeDownMgr.CoolTimeData coolDown; |
| | | if (TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.DuplicatesReborn, out coolDown)) |
| | | { |
| | | RefreshTime(Mathf.RoundToInt(coolDown.duration - coolDown.time)); |
| | | } |
| | | secondTimer = 0f; |
| | | sendReborn = false; |
| | | |
| | | DeadModel.RefreshDuplicatesRebornCDEvent = RefreshTime; |
| | | try |
| | | { |
| | | rebornTime = Time.time + GeneralConfig.Instance.dungeonRebornClientTimes[ElderGodAreaModel.ELDERGODAREA_MAPID]; |
| | | if (rebornTime <= Time.time) |
| | | { |
| | | Reborn(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Debug.Log(ex); |
| | | rebornTime = Time.time + 10f; |
| | | } |
| | | } |
| | | |
| | | protected override void OnAfterOpen() |
| | |
| | | |
| | | protected override void OnPreClose() |
| | | { |
| | | if (!sendReborn) |
| | | { |
| | | Reborn(); |
| | | } |
| | | } |
| | | |
| | | protected override void OnAfterClose() |
| | |
| | | } |
| | | #endregion |
| | | |
| | | private void RefreshTime(int _time) |
| | | |
| | | protected override void LateUpdate() |
| | | { |
| | | if (_time > 0) |
| | | base.LateUpdate(); |
| | | |
| | | if (Time.time >= rebornTime) |
| | | { |
| | | m_ReBornTimer.text = StringUtility.Contact("(", _time, ")"); |
| | | if (!sendReborn) |
| | | { |
| | | Reborn(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Reborn(); |
| | | secondTimer -= Time.deltaTime; |
| | | if (secondTimer < 0f) |
| | | { |
| | | secondTimer = 1f; |
| | | var surplusSecond = Mathf.RoundToInt(rebornTime - Time.time); |
| | | m_ReBornTimer.text = StringUtility.Contact("(", surplusSecond, ")"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void Reborn() |
| | | { |
| | | sendReborn = true; |
| | | DeadModel.SendRebornQuest(0); |
| | | WindowCenter.Instance.Close<ElderGodAreaRebornWin>(); |
| | | } |