Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
167
Scripts/Spells/Bushido/SamuraiSpell.cs
Normal file
167
Scripts/Spells/Bushido/SamuraiSpell.cs
Normal file
@@ -0,0 +1,167 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Spells.Bushido
|
||||
{
|
||||
public abstract class SamuraiSpell : Spell
|
||||
{
|
||||
public SamuraiSpell(Mobile caster, Item scroll, SpellInfo info)
|
||||
: base(caster, scroll, info)
|
||||
{
|
||||
}
|
||||
|
||||
public abstract double RequiredSkill { get; }
|
||||
public abstract int RequiredMana { get; }
|
||||
public override SkillName CastSkill
|
||||
{
|
||||
get
|
||||
{
|
||||
return SkillName.Bushido;
|
||||
}
|
||||
}
|
||||
public override SkillName DamageSkill
|
||||
{
|
||||
get
|
||||
{
|
||||
return SkillName.Bushido;
|
||||
}
|
||||
}
|
||||
public override bool ClearHandsOnCast
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public override bool BlocksMovement
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public override bool ShowHandMovement
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//public override int CastDelayBase{ get{ return 1; } }
|
||||
public override double CastDelayFastScalar
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
public override int CastRecoveryBase
|
||||
{
|
||||
get
|
||||
{
|
||||
return 7;
|
||||
}
|
||||
}
|
||||
public static bool CheckExpansion(Mobile from)
|
||||
{
|
||||
if (!Core.SE)
|
||||
return false;
|
||||
|
||||
if (!(from is PlayerMobile))
|
||||
return true;
|
||||
|
||||
if (from.NetState == null)
|
||||
return false;
|
||||
|
||||
return from.NetState.SupportsExpansion(Expansion.SE);
|
||||
}
|
||||
|
||||
public static void OnEffectEnd(Mobile caster, Type type)
|
||||
{
|
||||
int spellID = SpellRegistry.GetRegistryNumber(type);
|
||||
|
||||
if (spellID > 0)
|
||||
caster.Send(new ToggleSpecialAbility(spellID + 1, false));
|
||||
}
|
||||
|
||||
public override bool CheckCast()
|
||||
{
|
||||
int mana = this.ScaleMana(this.RequiredMana);
|
||||
|
||||
if (!base.CheckCast())
|
||||
return false;
|
||||
|
||||
if (!CheckExpansion(this.Caster))
|
||||
{
|
||||
this.Caster.SendLocalizedMessage(1063456); // You must upgrade to Samurai Empire in order to use that ability.
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.Caster.Skills[this.CastSkill].Value < this.RequiredSkill)
|
||||
{
|
||||
string args = String.Format("{0}\t{1}\t ", this.RequiredSkill.ToString("F1"), this.CastSkill.ToString());
|
||||
this.Caster.SendLocalizedMessage(1063013, args); // You need at least ~1_SKILL_REQUIREMENT~ ~2_SKILL_NAME~ skill to use that ability.
|
||||
return false;
|
||||
}
|
||||
else if (this.Caster.Mana < mana)
|
||||
{
|
||||
this.Caster.SendLocalizedMessage(1060174, mana.ToString()); // You must have at least ~1_MANA_REQUIREMENT~ Mana to use this ability.
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool CheckFizzle()
|
||||
{
|
||||
int mana = this.ScaleMana(this.RequiredMana);
|
||||
|
||||
if (this.Caster.Skills[this.CastSkill].Value < this.RequiredSkill)
|
||||
{
|
||||
this.Caster.SendLocalizedMessage(1070768, this.RequiredSkill.ToString("F1")); // You need ~1_SKILL_REQUIREMENT~ Bushido skill to perform that attack!
|
||||
return false;
|
||||
}
|
||||
else if (this.Caster.Mana < mana)
|
||||
{
|
||||
this.Caster.SendLocalizedMessage(1060174, mana.ToString()); // You must have at least ~1_MANA_REQUIREMENT~ Mana to use this ability.
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!base.CheckFizzle())
|
||||
return false;
|
||||
|
||||
this.Caster.Mana -= mana;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void GetCastSkills(out double min, out double max)
|
||||
{
|
||||
min = this.RequiredSkill - 12.5; //per 5 on friday, 2/16/07
|
||||
max = this.RequiredSkill + 37.5;
|
||||
}
|
||||
|
||||
public override int GetMana()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public virtual void OnCastSuccessful(Mobile caster)
|
||||
{
|
||||
if (Evasion.IsEvading(caster))
|
||||
Evasion.EndEvasion(caster);
|
||||
|
||||
if (Confidence.IsConfident(caster))
|
||||
Confidence.EndConfidence(caster);
|
||||
|
||||
if (CounterAttack.IsCountering(caster))
|
||||
CounterAttack.StopCountering(caster);
|
||||
|
||||
int spellID = SpellRegistry.GetRegistryNumber(this);
|
||||
|
||||
if (spellID > 0)
|
||||
caster.Send(new ToggleSpecialAbility(spellID + 1, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user