24 lines
839 B
C#
24 lines
839 B
C#
namespace Server.Mobiles;
|
|
|
|
public abstract class MonsterAbilitySingleTarget : MonsterAbility
|
|
{
|
|
public override void Trigger(MonsterAbilityTrigger trigger, BaseCreature source, Mobile target)
|
|
{
|
|
if (CanEffectTarget(trigger, source, target))
|
|
{
|
|
OnBeforeTarget(trigger, source, target);
|
|
OnTarget(trigger, source, target);
|
|
}
|
|
|
|
base.Trigger(trigger, source, target);
|
|
}
|
|
|
|
protected virtual void OnBeforeTarget(MonsterAbilityTrigger trigger, BaseCreature source, Mobile defender)
|
|
{
|
|
}
|
|
|
|
protected abstract void OnTarget(MonsterAbilityTrigger trigger, BaseCreature source, Mobile defender);
|
|
|
|
protected virtual bool CanEffectTarget(MonsterAbilityTrigger trigger, BaseCreature source, Mobile defender) =>
|
|
defender.Alive && source.CanBeHarmful(defender);
|
|
}
|