Further file organization
Further file organization
This commit is contained in:
72
nwn/nwnprc/trunk/newspellbook/tob_irnh_stlwnd.nss
Normal file
72
nwn/nwnprc/trunk/newspellbook/tob_irnh_stlwnd.nss
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
----------------
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user