PRC8_fork/trunk/newspellbook/tob_irnh_stlwnd.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04:00

72 lines
2.2 KiB
Plaintext

/*
----------------
Steel Wind
tob_irnh_stlwnd
----------------
29/03/07 by Stratovarius
*/ /** @file
Steel Wind
Iron Heart (Strike)
Level: Warblade 1
Initiation Action: 1 Standard Action
Range: Melee Attack
Target: Two Creatures
You swing your weapon in broad, deadly arc, striking two foes with a single, mighty blow.
Make two melee attacks, each against a different foe within melee range.
*/
#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)
{
effect eNone;
int nAB = 0;
// If holding Kamate and not initiating the stance from the free uses
if(GetItemPossessedBy(oInitiator, "WOL_Kamate") == GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oInitiator) && GetHasManeuver(MOVE_IH_STEEL_WIND, CLASS_TYPE_WARBLADE, oInitiator)) nAB += 1;
DelayCommand(0.0, PerformAttack(oTarget, oInitiator, eNone, 0.0, nAB, 0, 0, "Steel Wind Hit", "Steel Wind Miss"));
location lTarget = GetLocation(oTarget);
// Use the function to get the closest creature as a target
object oAreaTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, lTarget, TRUE, OBJECT_TYPE_CREATURE);
while(GetIsObjectValid(oAreaTarget))
{
// Don't hit yourself
// Make sure the target is within melee range of the initiator
// Don't hit the one already struck
if(oAreaTarget != oInitiator &&
GetIsInMeleeRange(oAreaTarget, oInitiator) &&
GetIsEnemy(oTarget) &&
oAreaTarget != oTarget)
{
// Perform the Attack
DelayCommand(0.0, PerformAttack(oAreaTarget, oInitiator, eNone, 0.0, nAB, 0, 0, "Steel Wind Hit", "Steel Wind Miss"));
// Break when target is found
break;
}
//Select the next target within the spell shape.
oAreaTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, lTarget, TRUE, OBJECT_TYPE_CREATURE);
}
}
}