ModernUO/Scripts/Spells/Necromancy/NecromancerSpell.cs
daedalus 8af17e640b - Added Necromancy potions, in normal and greater versions: Conflagration, Confusion Blast. (Era: SE+)
(http://www.uodemise.com/forum/showthread.php?p=741663)

- Arcane Circle spell now checks spellweavers are Playermobiles
(http://www.uodemise.com/forum/showthread.php?t=142096)

- Casting from necromancy scrolls will never result in a fail, if the caster has the minimum skill required. Otherwise it always result in a fail.
(http://www.uodemise.com/forum/showthread.php?t=140663)

- Creatures in Fan Dancers Dojo and Yomotsu Mines now are taken in consideration for ToT points
(http://www.uodemise.com/forum/showthread.php?t=141670)
2010-05-22 13:23:23 +00:00

56 lines
No EOL
1.5 KiB
C#

using System;
using Server;
using Server.Items;
namespace Server.Spells.Necromancy
{
public abstract class NecromancerSpell : Spell
{
public abstract double RequiredSkill{ get; }
public abstract int RequiredMana{ get; }
public override SkillName CastSkill{ get{ return SkillName.Necromancy; } }
public override SkillName DamageSkill{ get{ return SkillName.SpiritSpeak; } }
//public override int CastDelayBase{ get{ return base.CastDelayBase; } } // Reference, 3
public override bool ClearHandsOnCast{ get{ return false; } }
public override double CastDelayFastScalar{ get{ return (Core.SE? base.CastDelayFastScalar : 0); } } // Necromancer spells are not affected by fast cast items, though they are by fast cast recovery
public NecromancerSpell( Mobile caster, Item scroll, SpellInfo info ) : base( caster, scroll, info )
{
}
public override int ComputeKarmaAward()
{
//TODO: Verify this formula being that Necro spells don't HAVE a circle.
//return -(70 + (10 * (int)Circle));
return -(40 + (int)(10 * (CastDelayBase.TotalSeconds / CastDelaySecondsPerTick)));
}
public override void GetCastSkills( out double min, out double max )
{
min = RequiredSkill;
max = Scroll != null ? min : RequiredSkill + 40.0;
}
public override bool ConsumeReagents()
{
if( base.ConsumeReagents() )
return true;
if( ArcaneGem.ConsumeCharges( Caster, 1 ) )
return true;
return false;
}
public override int GetMana()
{
return RequiredMana;
}
}
}