Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
85
Scripts/Spells/Skill Masteries/Tolerance.cs
Normal file
85
Scripts/Spells/Skill Masteries/Tolerance.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Spells;
|
||||
using Server.Network;
|
||||
using Server.Mobiles;
|
||||
|
||||
/*Toggle ability that grants the poisoner a reduction to
|
||||
poison level when poisoned at a stamina cost based on mastery level.*/
|
||||
|
||||
namespace Server.Spells.SkillMasteries
|
||||
{
|
||||
public class ToleranceSpell : SkillMasterySpell
|
||||
{
|
||||
private static SpellInfo m_Info = new SpellInfo(
|
||||
"Tolerence", "",
|
||||
-1,
|
||||
9002
|
||||
);
|
||||
|
||||
public override int RequiredMana{ get { return 20; } }
|
||||
public override SkillName CastSkill { get { return SkillName.Poisoning; } }
|
||||
|
||||
public ToleranceSpell(Mobile caster, Item scroll)
|
||||
: base(caster, scroll, m_Info)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool CheckCast()
|
||||
{
|
||||
ToleranceSpell spell = GetSpell(Caster, typeof(ToleranceSpell)) as ToleranceSpell;
|
||||
|
||||
if (spell != null)
|
||||
{
|
||||
spell.Expire();
|
||||
return false;
|
||||
}
|
||||
|
||||
return base.CheckCast();
|
||||
}
|
||||
|
||||
public override void OnCast()
|
||||
{
|
||||
if(CheckSequence())
|
||||
{
|
||||
Caster.SendSound(0xF6);
|
||||
Effects.SendTargetParticles(Caster, 0x3709, 10, 30, 1166, 0, 9907, EffectLayer.LeftFoot, 0);
|
||||
|
||||
BeginTimer();
|
||||
|
||||
BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.Tolerance, 1155926, 1156063)); // Reduces poison strength when poisoned at the cost of stamina.
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
}
|
||||
|
||||
public override void EndEffects()
|
||||
{
|
||||
BuffInfo.RemoveBuff(Caster, BuffIcon.Tolerance);
|
||||
}
|
||||
|
||||
public static bool OnPoisonApplied(Mobile m)
|
||||
{
|
||||
ToleranceSpell spell = GetSpell(m, typeof(ToleranceSpell)) as ToleranceSpell;
|
||||
|
||||
if(spell != null)
|
||||
{
|
||||
double stamCost = (m.Skills[spell.CastSkill].Base + ((MasteryInfo.GetMasteryLevel(m, SkillName.Poisoning) * 30) + 10)) / 2;
|
||||
|
||||
stamCost /= 4;
|
||||
stamCost = Math.Max(18, (25 - stamCost) + 18);
|
||||
|
||||
if(m.Stam < (int)stamCost)
|
||||
{
|
||||
spell.Caster.SendLocalizedMessage(1156036, ((int)stamCost).ToString()); // You must have at least ~1_STAM_REQUIREMENT~ Stamina to use this ability.
|
||||
return false;
|
||||
}
|
||||
|
||||
spell.Caster.Stam -= (int)stamCost;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user