mirror of
https://github.com/ServUO/ServUO
synced 2026-08-11 20:23:04 -04:00
Added removed mobiles to Spawner Persistence to remove them from spawners. Re-Added harful effects for aura effect, reduced range to 3. Various code cleanup. Co-authored-by: TrueUO <knight.daniel.r@gmail.com>
66 lines
2.1 KiB
C#
66 lines
2.1 KiB
C#
using Server.SkillHandlers;
|
|
using System;
|
|
|
|
namespace Server.Spells.Ninjitsu
|
|
{
|
|
public class Backstab : NinjaMove
|
|
{
|
|
public override int BaseMana => 30;
|
|
public override double RequiredSkill => 40.0;
|
|
public override TextDefinition AbilityMessage => new TextDefinition(1063089);// You prepare to Backstab your opponent.
|
|
public override bool ValidatesDuringHit => false;
|
|
public override double GetDamageScalar(Mobile attacker, Mobile defender)
|
|
{
|
|
double ninjitsu = attacker.Skills[SkillName.Ninjitsu].Value;
|
|
|
|
return 1.0 + (ninjitsu / 360) + Tracking.GetStalkingBonus(attacker, defender) / 100;
|
|
}
|
|
|
|
public override bool Validate(Mobile from)
|
|
{
|
|
if (!from.Hidden || from.AllowedStealthSteps <= 0)
|
|
{
|
|
from.SendLocalizedMessage(1063087); // You must be in stealth mode to use this ability.
|
|
return false;
|
|
}
|
|
|
|
return base.Validate(from);
|
|
}
|
|
|
|
public override bool OnBeforeSwing(Mobile attacker, Mobile defender)
|
|
{
|
|
bool valid = Validate(attacker) && CheckMana(attacker, true);
|
|
|
|
if (valid)
|
|
{
|
|
attacker.BeginAction(typeof(Stealth));
|
|
Timer.DelayCall(TimeSpan.FromSeconds(5.0), delegate { attacker.EndAction(typeof(Stealth)); });
|
|
}
|
|
|
|
return valid;
|
|
}
|
|
|
|
public override void OnHit(Mobile attacker, Mobile defender, int damage)
|
|
{
|
|
//Validates before swing
|
|
ClearCurrentMove(attacker);
|
|
|
|
attacker.SendLocalizedMessage(1063090); // You quickly stab your opponent as you come out of hiding!
|
|
|
|
defender.FixedParticles(0x37B9, 1, 5, 0x251D, 0x651, 0, EffectLayer.Waist);
|
|
|
|
attacker.RevealingAction();
|
|
|
|
CheckGain(attacker);
|
|
}
|
|
|
|
public override void OnMiss(Mobile attacker, Mobile defender)
|
|
{
|
|
ClearCurrentMove(attacker);
|
|
|
|
attacker.SendLocalizedMessage(1063161); // You failed to properly use the element of surprise.
|
|
|
|
attacker.RevealingAction();
|
|
}
|
|
}
|
|
}
|