/// <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()); } }