ModernUO/Projects/UOContent/Mobiles/Abilities/GraspingClaw.cs

69 lines
2.2 KiB
C#

using System;
namespace Server.Mobiles;
public class GraspingClaw : MonsterAbilitySingleTargetDoT
{
public override MonsterAbilityType AbilityType => MonsterAbilityType.GraspingClaw;
public override MonsterAbilityTrigger AbilityTrigger => MonsterAbilityTrigger.GiveMeleeDamage;
public override double ChanceToTrigger => 0.10;
private const string Name = "GraspingClaw";
protected override void OnBeforeTarget(MonsterAbilityTrigger trigger, BaseCreature source, Mobile defender)
{
if (RemoveEffect(source, defender))
{
defender.SendLocalizedMessage(1070837); // The creature lands another blow in your weakened state.
}
else
{
// The blow from the creature's claws has made you more susceptible to physical attacks.
defender.SendLocalizedMessage(1070836);
}
}
protected override void OnTarget(MonsterAbilityTrigger trigger, BaseCreature source, Mobile defender)
{
base.OnTarget(trigger, source, defender);
/**
* Grasping Claw
* Start cliloc: 1070836
* Effect: Physical resistance -15% for 5 seconds
* Refresh Cliloc: 1070837
* End cliloc: 1070838
* Graphic:
* - Type: "3"
* - From: Player
* - To: 0x0
* - ItemId: "0x37B9"
* - ItemIdName: "glow"
* - FromLocation: "(1149 808, 32)"
* - ToLocation: "(1149 808, 32)"
* - Speed: "10" - Duration: "5"
* - FixedDirection: "True"
* - Explode: "False"
*/
source.DoHarmful(defender);
var mod = new ResistanceMod(ResistanceType.Physical, Name, -(defender.PhysicalResistance * 15 / 100));
defender.AddResistanceMod(mod);
defender.FixedEffect(0x37B9, 10, 5);
}
protected override void EffectTick(BaseCreature source, Mobile defender, ref TimeSpan nextDelay)
{
}
protected override void EndEffect(BaseCreature source, Mobile defender)
{
defender.RemoveResistanceMod(Name);
}
protected override void OnEffectExpired(BaseCreature source, Mobile defender)
{
defender.SendLocalizedMessage(1070838); // Your resistance to physical attacks has returned.
}
}