Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
76 lines
2.3 KiB
Plaintext
76 lines
2.3 KiB
Plaintext
/*
|
|
----------------
|
|
Tactical Strike
|
|
|
|
tob_wtrn_tacstrk.nss
|
|
----------------
|
|
|
|
08/06/07 by Stratovarius
|
|
*/ /** @file
|
|
|
|
Tactical Strike
|
|
|
|
White Raven (Strike)
|
|
Level: Crusader 2, Warblade 2
|
|
Initiation Action: 1 Standard Action
|
|
Range: Melee Attack
|
|
Target: One Creature
|
|
|
|
A faint numbus of sickly grey shadow surrounds your weapon.
|
|
When you attack, this shadowy aura flows into the wound you
|
|
inflict, sapping your opponent's strength, vitality, and energy.
|
|
|
|
Make a single melee attack. If you succesfully hit the creature, all allies gain
|
|
a 5' boost to movement speed for one round.
|
|
*/
|
|
|
|
#include "tob_inc_move"
|
|
#include "tob_movehook"
|
|
//#include "prc_alterations"
|
|
|
|
void TOBAttack(object oTarget, object oInitiator)
|
|
{
|
|
effect eNone;
|
|
object oWeap = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oInitiator);
|
|
PerformAttack(oTarget, oInitiator, eNone, 0.0, 0, d6(2), GetWeaponDamageType(oWeap), "Tactical Strike Hit", "Tactical Strike Miss");
|
|
|
|
if (GetLocalInt(oTarget, "PRCCombat_StruckByAttack"))
|
|
{
|
|
location lTarget = PRCGetSpellTargetLocation();
|
|
|
|
//Cycle through the targets within the spell shape until you run out of targets.
|
|
object oAreaTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
|
while(GetIsObjectValid(oAreaTarget))
|
|
{
|
|
if (GetIsFriend(oAreaTarget, oInitiator))
|
|
{
|
|
// 1/6th increase: 16.6 = 17.
|
|
// Not really a 5' step, I know,but oh well.
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, ExtraordinaryEffect(EffectMovementSpeedIncrease(17)), oAreaTarget, 6.0);
|
|
}
|
|
|
|
//Select the next target within the spell shape.
|
|
oAreaTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
|
}// end while - Target loop
|
|
}
|
|
}
|
|
|
|
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)
|
|
{
|
|
DelayCommand(0.0, TOBAttack(oTarget, oInitiator));
|
|
}
|
|
} |