107 lines
2.1 KiB
C#
107 lines
2.1 KiB
C#
#region References
|
|
using Server.Spells;
|
|
using Server.Spells.Necromancy;
|
|
#endregion
|
|
|
|
namespace Server.Mobiles
|
|
{
|
|
public class NecroAI : MageAI
|
|
{
|
|
public override SkillName CastSkill { get { return SkillName.Necromancy; } }
|
|
public override bool UsesMagery { get { return false; } }
|
|
|
|
public NecroAI(BaseCreature m)
|
|
: base(m)
|
|
{ }
|
|
|
|
public override Spell GetRandomDamageSpell()
|
|
{
|
|
var mana = m_Mobile.Mana;
|
|
var select = 1;
|
|
|
|
if (mana >= 29)
|
|
select = 4;
|
|
else if (mana >= 23)
|
|
select = 3;
|
|
else if (mana >= 17)
|
|
select = 2;
|
|
|
|
switch (Utility.Random(select))
|
|
{
|
|
case 0:
|
|
return new PainSpikeSpell(m_Mobile, null);
|
|
case 1:
|
|
return new PoisonStrikeSpell(m_Mobile, null);
|
|
case 2:
|
|
return new WitherSpell(m_Mobile, null);
|
|
case 3:
|
|
return new StrangleSpell(m_Mobile, null);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public override Spell GetRandomSummonSpell()
|
|
{
|
|
if (!m_Mobile.Controlled && !m_Mobile.Summoned && m_Mobile.Mana >= 23)
|
|
{
|
|
return new AnimateDeadSpell(m_Mobile, null);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public override Spell GetRandomCurseSpell()
|
|
{
|
|
var mana = m_Mobile.Mana;
|
|
var select = 1;
|
|
|
|
if (mana >= 17)
|
|
select = 5;
|
|
else if (mana >= 13)
|
|
select = 4;
|
|
else if (mana >= 11)
|
|
select = 3;
|
|
|
|
switch (Utility.Random(select))
|
|
{
|
|
case 0:
|
|
return new CurseWeaponSpell(m_Mobile, null);
|
|
case 1:
|
|
Spell spell;
|
|
|
|
if (NecroMageAI.CheckCastCorpseSkin(m_Mobile))
|
|
spell = new CorpseSkinSpell(m_Mobile, null);
|
|
else
|
|
spell = new CurseWeaponSpell(m_Mobile, null);
|
|
|
|
return spell;
|
|
case 2:
|
|
return new EvilOmenSpell(m_Mobile, null);
|
|
case 3:
|
|
return new BloodOathSpell(m_Mobile, null);
|
|
case 4:
|
|
return new MindRotSpell(m_Mobile, null);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public override Spell GetCureSpell()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public override Spell GetRandomBuffSpell()
|
|
{
|
|
return new CurseWeaponSpell(m_Mobile, null);
|
|
}
|
|
|
|
public override Spell GetHealSpell()
|
|
{
|
|
m_Mobile.UseSkill(SkillName.SpiritSpeak);
|
|
|
|
return null;
|
|
}
|
|
}
|
|
} |