public void UpdateData(IHasCooldown cd)
        {
            if (ReferenceEquals(cd, null))
            {
                ClearCooldownData();

                return;
            }

            var newData = cdSystem.GetCooldown(cd.Id);

            var curDataNotNull = !ReferenceEquals(data, null);
            var sameData       = curDataNotNull && ReferenceEquals(data, newData);

            if (sameData)
            {
                return;
            }

            data?.RemoveListenAction(UpdateDisplay);

            id   = cd.Id;
            data = newData;

            data?.AddListenAction(UpdateDisplay);
        }
        public Cooldown(IHasCooldown cd)
        {
            cdTimer             = new DownTimer(cd.CooldownDuration);
            cdTimer.OnTimerEnd += cdTimer.DisableTimer;

            Id = cd.Id;
        }
Example #3
0
        public bool AddCooldown(IHasCooldown cd)
        {
            var cooldownExists = !ReferenceEquals(cdData.Find(x => x.Id == cd.Id), null);

            if (cooldownExists)
            {
                return(false);
            }

            var data = new Cooldown(cd);

            cdData.Add(data);

            return(true);
        }
Example #4
0
 public CooldownData(IHasCooldown cooldown)
 {
     Id            = cooldown.Id;
     RemainingTime = cooldown.CooldownDuration;
 }
Example #5
0
 public void PutOnCooldown(IHasCooldown cooldown)
 {
     cooldowns.Add(new CooldownData(cooldown));
 }