Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
124
Scripts/Spells/Skill Masteries/HeightenSenses.cs
Normal file
124
Scripts/Spells/Skill Masteries/HeightenSenses.cs
Normal file
@@ -0,0 +1,124 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Spells;
|
||||
using Server.Network;
|
||||
using Server.Mobiles;
|
||||
using Server.Items;
|
||||
|
||||
/*Toggle ability that provides the Parrying Master with increased chance to parry based on parry skill,
|
||||
best weapon skill and mastery level that consumes mana while active.*/
|
||||
|
||||
namespace Server.Spells.SkillMasteries
|
||||
{
|
||||
public class HeightenedSensesSpell : SkillMasterySpell
|
||||
{
|
||||
private static SpellInfo m_Info = new SpellInfo(
|
||||
"Heightened Senses", "",
|
||||
-1,
|
||||
9002
|
||||
);
|
||||
|
||||
public override double UpKeep { get { return 10; } }
|
||||
public override int RequiredMana{ get { return 10; } }
|
||||
public override double TickTime { get { return 3; } }
|
||||
public override bool BlocksMovement{ get{ return false; } }
|
||||
public override TimeSpan CastDelayBase { get { return TimeSpan.FromSeconds(1.0); } }
|
||||
|
||||
public override SkillName CastSkill { get { return SkillName.Parry; } }
|
||||
|
||||
public HeightenedSensesSpell(Mobile caster, Item scroll)
|
||||
: base(caster, scroll, m_Info)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool CheckCast()
|
||||
{
|
||||
HeightenedSensesSpell spell = GetSpell(Caster, this.GetType()) as HeightenedSensesSpell;
|
||||
|
||||
if(spell != null)
|
||||
{
|
||||
spell.Expire();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!HasShieldOrWeapon())
|
||||
return false;
|
||||
|
||||
return base.CheckCast();
|
||||
}
|
||||
|
||||
public override void OnCast()
|
||||
{
|
||||
if(CheckSequence())
|
||||
{
|
||||
Caster.FixedParticles( 0x376A, 9, 32, 5030, 1168, 0, EffectLayer.Waist, 0);
|
||||
Caster.PlaySound(0x5BC);
|
||||
|
||||
Caster.SendLocalizedMessage(1156023); // Your senses heighten!
|
||||
|
||||
BeginTimer();
|
||||
|
||||
BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.HeightenedSenses, 1155925, 1156062, String.Format("{0}\t{1}", PropertyBonus().ToString(), ScaleUpkeep().ToString()))); // +~1_ARG~% Parry Bonus.<br>Mana Upkeep Cost: ~2_VAL~.
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
}
|
||||
|
||||
public override bool OnTick()
|
||||
{
|
||||
if (!HasShieldOrWeapon())
|
||||
{
|
||||
Expire();
|
||||
return false;
|
||||
}
|
||||
|
||||
return base.OnTick();
|
||||
}
|
||||
|
||||
public bool HasShieldOrWeapon()
|
||||
{
|
||||
if (!Caster.Player)
|
||||
return true;
|
||||
|
||||
BaseShield shield = Caster.FindItemOnLayer(Layer.TwoHanded) as BaseShield;
|
||||
|
||||
if (shield == null)
|
||||
{
|
||||
BaseWeapon weapon = Caster.Weapon as BaseWeapon;
|
||||
|
||||
if (weapon == null || weapon is Fists)
|
||||
{
|
||||
Caster.SendLocalizedMessage(1156096); // You must be wielding a shield to use this ability!
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override void DoEffects()
|
||||
{
|
||||
Caster.FixedParticles(0x376A, 9, 32, 5005, 1167, 0, EffectLayer.Waist, 0);
|
||||
}
|
||||
|
||||
public override void EndEffects()
|
||||
{
|
||||
BuffInfo.RemoveBuff(Caster, BuffIcon.HeightenedSenses);
|
||||
}
|
||||
|
||||
public override int PropertyBonus()
|
||||
{
|
||||
return (int)((Caster.Skills[CastSkill].Value + GetWeaponSkill() + (GetMasteryLevel() * 40)) / 3) / 10;
|
||||
}
|
||||
|
||||
public static double GetParryBonus(Mobile m)
|
||||
{
|
||||
HeightenedSensesSpell spell = GetSpell(m, typeof(HeightenedSensesSpell)) as HeightenedSensesSpell;
|
||||
|
||||
if(spell != null)
|
||||
return (double)spell.PropertyBonus() / 100.0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user