forked from Jaysyn/PRC8
78 lines
3.1 KiB
Plaintext
78 lines
3.1 KiB
Plaintext
|
//////////////////////////////////////////////////
|
||
|
// Earthstrike Quake
|
||
|
// tob_stdr_erthstq.nss
|
||
|
// Tenjac 9/11/07
|
||
|
//////////////////////////////////////////////////
|
||
|
/** @file Earthstrike Quake
|
||
|
Stone Dragon (Strike)
|
||
|
Level: Crusader 8, swordsage 8, warblade 8
|
||
|
Prerequisite: Two Stone Dragon maneuvers
|
||
|
Initiation Action: 1 standard action
|
||
|
Range: 20ft
|
||
|
Area: 20 ft radius burst, centered on you
|
||
|
Duration: Instantaneous
|
||
|
Saving Throw: Reflex negates
|
||
|
|
||
|
You swind your weapon in a wild arc, slamming it into the ground at your feet. Energy
|
||
|
surges out from you, causing the ground to shudder with a sharp tremor.
|
||
|
|
||
|
You channel ki into the earth with your mighty strike, causing the ground to rumble
|
||
|
and shake briefly. Anyone standing on the ground in this maneuver's area must make
|
||
|
a successful Reflex save (DC 18 + your Str modifier) or be knocked prone. Any creature
|
||
|
in this area that is currently casting a spell must succeed on a Concentration check
|
||
|
(DC 20 + spell level) or lose the spell.
|
||
|
|
||
|
You are immune to the effect of the earthstrike quake maneuver. Your allies must still
|
||
|
save as normal against its effect.
|
||
|
|
||
|
Walls and similar barriers don't block the line of effect of an earth-strike quake.
|
||
|
|
||
|
*/
|
||
|
|
||
|
#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)
|
||
|
{
|
||
|
//Animation
|
||
|
PlayAnimation(ANIMATION_FIREFORGET_VICTORY1);
|
||
|
|
||
|
location lLoc = GetLocation(oInitiator);
|
||
|
int nDC = 18 + (GetAbilityModifier(ABILITY_STRENGTH, oInitiator));
|
||
|
|
||
|
//Shaking
|
||
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), lLoc);
|
||
|
|
||
|
object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, FeetToMeters(20.0), lLoc, FALSE, OBJECT_TYPE_CREATURE);
|
||
|
|
||
|
while(GetIsObjectValid(oTarget))
|
||
|
{
|
||
|
if(oTarget != oInitiator)
|
||
|
{
|
||
|
if(!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_NONE, oInitiator, 1.0))
|
||
|
{
|
||
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectKnockdown(), oTarget, RoundsToSeconds(1));
|
||
|
}
|
||
|
}
|
||
|
oTarget = MyNextObjectInShape(SHAPE_SPHERE, FeetToMeters(20.0), lLoc, FALSE, OBJECT_TYPE_CREATURE);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|