Ejemplo n.º 1
0
        public void RunCooldown()
        {
            if (Cooldown == 0)
            {
                return;
            }

            CooldownRemaining = Cooldown;
            CooldownStarted?.Invoke(this);
        }
Ejemplo n.º 2
0
        //NOTE: корутина вместо асинка чтобы ждать время игры, а не реалтайм
        private IEnumerator WaitCooldown()
        {
            CooldownStarted?.Invoke();

            tracker.Dispose();
            float currentTime = 0f;

            while (currentTime <= CoolDownTime)
            {
                CooldownUpdated?.Invoke(currentTime);

                currentTime += Time.deltaTime;
                yield return(null);
            }

            tracker.Init();

            CooldownFinished?.Invoke();
        }
Ejemplo n.º 3
0
 /// <summary>
 ///     Starts the cooldown of this item.
 /// </summary>
 private void StartCooldown()
 {
     _isOnCooldown      = true;
     _remainingCooldown = _model.CooldownTime;
     CooldownStarted?.Invoke();
 }
Ejemplo n.º 4
0
 protected void RaiseCooldownStarted()
 {
     CooldownStarted?.SafeInvoke(this, EventArgs.Empty, nameof(CooldownStarted));
 }