PRC8/nwn/nwnprc/trunk/newspellbook/tob_dvsp_revstrk.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

62 lines
1.9 KiB
Plaintext

/*
----------------
Revitalizing Strike
tob_dvsp_revstrk
----------------
15/07/07 by Stratovarius
*/ /** @file
Revitalizing Strike
Devoted Spirit (Strike)
Level: Crusader 3
Prerequisite: One Devoted Spirit maneuver.
Initiation Action: 1 Standard Action
Range: Melee Attack
Target: One Creature
As you rear back to strike your foe, an aura of divine energy surrounds you.
As your attack slams home, this aura dissipates in a flash, knitting your wounds
as it discharges.
You make a single attack against an enemy who's alignment has at least one component
different from yours. If you hit, you or an ally with 10 feet is healed 3d6 + 1 per
initiator level (max of +10).
*/
#include "tob_inc_move"
#include "tob_movehook"
////#include "prc_alterations"
void TOBAttack(object oTarget, object oInitiator, struct maneuver move)
{
effect eNone;
PerformAttack(oTarget, oInitiator, eNone, 0.0, 0, 0, 0, "Revitalizing Strike Hit", "Revitalizing Strike Miss");
if(GetLocalInt(oTarget, "PRCCombat_StruckByAttack"))
{
if(GetAlignmentGoodEvil(oInitiator) != GetAlignmentGoodEvil(oTarget)
|| GetAlignmentLawChaos(oInitiator) != GetAlignmentLawChaos(oTarget))
{
int nHeal = d6(3) + min(move.nInitiatorLevel, 10);
object oHeal = GetCrusaderHealTarget(oInitiator, FeetToMeters(10.0));
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(nHeal), oHeal);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_L_LAW), oHeal);
}
}
}
void main()
{
if(!PreManeuverCastCode()) return;
object oInitiator = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
struct maneuver move = EvaluateManeuver(oInitiator, oTarget);
if(move.bCanManeuver)
{
DelayCommand(0.0, TOBAttack(oTarget, oInitiator, move));
}
}