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.
65 lines
2.1 KiB
Plaintext
65 lines
2.1 KiB
Plaintext
/*
|
|
----------------
|
|
Leaping Flame
|
|
|
|
tob_dw_lpngflm.nss
|
|
----------------
|
|
|
|
31/08/07 by Stratovarius
|
|
*/ /** @file
|
|
|
|
Leaping Flame
|
|
|
|
Desert Wind (Counter) [Teleport]
|
|
Level: Swordsage 5
|
|
Prerequisite: Two Desert Wind Maneuvers
|
|
Initiation Action: 1 Swift Action
|
|
Range: Personal.
|
|
Target: You
|
|
Duration: Instantaneous
|
|
|
|
As your foe attacks you, you disappear in a burst of flame and smoke,
|
|
only to reappear as if out of thin air next to him.
|
|
|
|
You teleport up to a 100ft to the person who last attacked you.
|
|
This is a supernatural maneuver.
|
|
*/
|
|
|
|
#include "tob_inc_move"
|
|
#include "tob_movehook"
|
|
////#include "prc_alterations"
|
|
#include "prc_inc_teleport"
|
|
|
|
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)
|
|
{
|
|
location lTarget = GetLocation(oTarget);
|
|
// Check if the caster can teleport and inform if they can't
|
|
// There's also a range component here
|
|
if(GetCanTeleport(oInitiator, lTarget, TRUE, TRUE) && FeetToMeters(100.0) >= GetDistanceBetween(oInitiator, oTarget))
|
|
{
|
|
// Assign jump command with delay to prevent the damn infinite action loop
|
|
DelayCommand(1.0f, AssignCommand(oInitiator, JumpToLocation(lTarget)));
|
|
|
|
// Do some VFX
|
|
DelayCommand(0.5f, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY), oInitiator, 0.55));
|
|
DrawLineFromVectorToVector(DURATION_TYPE_INSTANT, VFX_IMP_WIND, GetArea(oInitiator), GetPosition(oInitiator), GetPositionFromLocation(lTarget), 0.0,
|
|
FloatToInt(GetDistanceBetweenLocations(GetLocation(oInitiator), lTarget)), // One VFX every meter
|
|
0.5
|
|
);
|
|
}
|
|
}
|
|
} |