Exemplo n.º 1
0
        /// <summary>
        /// Heroes the died handler. Starts a hero resurrection timer.
        /// </summary>
        /// <param name="diedHero">The died hero.</param>
        /// <exception cref="ArgumentNullException">diedHero</exception>
        private void HeroDiedHandler(IDying diedHero)
        {
            if (diedHero.IsNullOrMissing())
            {
                throw new ArgumentNullException(nameof(diedHero));
            }

            if (!(diedHero is Hero hero))
            {
                return;
            }

            var timer = new TimerCountdown(hero, $"{hero.UnitName} will reborn after", hero.RebornDelay);

            reviveTimers.Add(timer);
            timer.OnFinish += ReviveHero;
            OnHeroReviveTimerStart?.Invoke(timer);
        }