Example #1
0
        /// <summary>
        ///     Called when [use].
        /// </summary>
        /// <param name="sprite">The sprite.</param>
        /// <param name="target">The target.</param>
        public override void OnUse(Sprite sprite, Sprite target)
        {
            var healValue = (int)(200 + Spell.Level * sprite.Wis * 0.05);

            sprite.Aisling(sprite)
            ?.HasManaFor(Spell)
            ?.Cast(Spell, target)
            ?.GiveHealth(target, healValue)
            ?.UpdateStats(Spell)
            ?.TrainSpell(Spell);
        }
        public override void OnUse(Sprite sprite, Sprite target)
        {
            if (target is Aisling aobj)
            {
                if (aobj.HasBuff("deireas faileas"))
                {
                    aobj.Client.SendMessage(0x02, "Spells are already being reflected.");
                    return;
                }

                Sprite.Aisling(sprite)
                ?.HasManaFor(Spell)
                ?.Cast(Spell, target)
                ?.ApplyBuff("buff_spell_reflect").Cast <Aisling>()?.UpdateStats(Spell)?.TrainSpell(Spell);
            }
        }
        public override void OnUse(Sprite sprite, Sprite target)
        {
            var spellArgs = Arguments ?? throw new ArgumentNullException(nameof(Arguments));

            spellArgs = spellArgs.Trim();

            if (string.IsNullOrEmpty(spellArgs))
            {
                return;
            }

            var unavailableAreas = ServerContext.GlobalMonsterTemplateCache.Select(i => ServerContext.GlobalMapCache[i.AreaID].Name).Distinct();
            var availableAreas   = ServerContext.GlobalMapCache.Select(i => i.Value.Name).Except(unavailableAreas);
            var summoningTarget  = GetObject <Aisling>(null, i => i.Username.ToLower().Equals(spellArgs.ToLower()));

            if (summoningTarget != null)
            {
                Sprite.Aisling(sprite)?.Client.SummonGroup(summoningTarget, availableAreas.ToArray());
            }
        }