PRC8/nwn/nwnprc/trunk/newspellbook/tob_irnh_finshm.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

74 lines
2.5 KiB
Plaintext

//////////////////////////////////////////////////
// Finishing Move
// tob_finshm.nss
// Tenjac 9/21/07
//////////////////////////////////////////////////
/** @file Finishing Move
Iron Heart(Strike)
Level: Warblade 7
Prerequisite: Three Iron Heart maneuvers
Initiation Action: 1 standard action
Range: Melee attack
Target: One creature
You deliver a devastating strike against a wounded foe, aiming to finish him off once
and for all.
Iron Heart teaches that it is best to finish off a foe with as little effort as
possible; the better to save your strength for your remaining enemies. When you use
this maneuver, you throw yourself on the offensive with little thought to your
defenses. If this attack strikes home, it might end a fight several crucial seconds
early.
As part of this maneuver, you make a melee attack against a creature. This attack
deals an extra 4d6 points of damage. If the target's current hit points are less than
its full normal hit points, the attack instead deals an extra 6d6 points of damage.
If its hit points are equal to or less than one-half its full normal hit points, the
attack instead deals an extra 14d6 points of damage.
*/
#include "tob_inc_move"
#include "tob_movehook"
////#include "prc_alterations"
void main()
{
if (!PreManeuverCastCode())
{
// If code within the PreManeuverCastCode (i.e. UMD) reports FALSE, do not run this spell
return;
}
// End of Spell Cast Hook
object oInitiator = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
struct maneuver move = EvaluateManeuver(oInitiator, oTarget);
if(move.bCanManeuver)
{
int nHP = GetCurrentHitPoints(oTarget);
int nMaxHP = GetMaxHitPoints(oTarget);
int nHalf = nMaxHP/2;
int nBonus;
object oWeap = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oInitiator);
if(nHP = nMaxHP)
{
nBonus = 4;
}
if(nHP < nMaxHP)
{
nBonus = 6;
}
if(nHP <= nHalf)
{
nBonus = 14;
}
effect eNone;
DelayCommand(0.0, PerformAttack(oTarget, oInitiator, eNone, 0.0, 0, d6(nBonus), GetWeaponDamageType(oWeap), "Finishing Move Hit", "Finishing Move Miss"));
}
}