Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }