public override void AddCooldown(Spell spell, Item casterItem) { bool flag = casterItem != null && casterItem.Template.UseSpell != null; int millis = 0; if (flag) { millis = casterItem.Template.UseSpell.Cooldown; } if (millis == 0) { millis = spell.GetCooldown(this.Owner); } if (millis <= 0) { return; } SpellIdCooldown spellIdCooldown = new SpellIdCooldown() { SpellId = spell.Id, Until = DateTime.Now + TimeSpan.FromMilliseconds((double)millis) }; if (flag) { spellIdCooldown.ItemId = casterItem.Template.Id; } this.m_idCooldowns.Add((ISpellIdCooldown)spellIdCooldown); this.OwnerChar.Map.CallDelayed(500, (Action)(() => Asda2SpellHandler.SendSetSkillCooldownResponse(this.OwnerChar, spell))); this.OwnerChar.Map.CallDelayed(millis, (Action)(() => Asda2SpellHandler.SendClearCoolDown(this.OwnerChar, spell.RealId))); }
public override void AddCooldown(Spell spell, Item casterItem) { var itemSpell = casterItem != null && casterItem.Template.UseSpell != null; var cd = 0; if (itemSpell) { cd = casterItem.Template.UseSpell.Cooldown; } if (cd == 0) { cd = spell.GetCooldown(Owner); } if (cd > 0) { var idCooldown = new SpellIdCooldown { SpellId = spell.Id, Until = (DateTime.Now + TimeSpan.FromMilliseconds(cd)) }; if (itemSpell) { idCooldown.ItemId = casterItem.Template.Id; } m_idCooldowns.Add(idCooldown); OwnerChar.Map.CallDelayed(500, () => Asda2SpellHandler.SendSetSkillCooldownResponse(OwnerChar, spell)); OwnerChar.Map.CallDelayed(cd, () => Asda2SpellHandler.SendClearCoolDown(OwnerChar, spell.RealId)); } }
public override void AddCooldown(Spell spell, Item casterItem) { var itemSpell = casterItem != null && casterItem.Template.UseSpell != null; var cd = 0; if (itemSpell) { cd = casterItem.Template.UseSpell.Cooldown; } if (cd == 0) { cd = spell.GetCooldown(Owner); } int catCd; if (itemSpell) { catCd = casterItem.Template.UseSpell.CategoryCooldown; } else { catCd = spell.GetModifiedCooldown(Owner, spell.CategoryCooldownTime); } if (cd > 0) { var idCooldown = new SpellIdCooldown { SpellId = spell.Id, Until = (DateTime.Now + TimeSpan.FromMilliseconds(cd)) }; if (itemSpell) { idCooldown.ItemId = casterItem.Template.Id; } m_idCooldowns.Add(idCooldown); } if (spell.CategoryCooldownTime > 0) { var catCooldown = new SpellCategoryCooldown { SpellId = spell.Id, Until = DateTime.Now.AddMilliseconds(catCd) }; if (itemSpell) { catCooldown.CategoryId = casterItem.Template.UseSpell.CategoryId; catCooldown.ItemId = casterItem.Template.Id; } else { catCooldown.CategoryId = spell.Category; } m_categoryCooldowns.Add(catCooldown); } }