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; }
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); }
public CooldownData(IHasCooldown cooldown) { Id = cooldown.Id; RemainingTime = cooldown.CooldownDuration; }
public void PutOnCooldown(IHasCooldown cooldown) { cooldowns.Add(new CooldownData(cooldown)); }