PRC8/nwn/nwnprc/trunk/newspellbook/tob_etbl_etrmove.nss
Jaysyn904 2a7cb1002e Fixed all content filenames over 16 characters
Fixed all content filenames over 16 characters
2024-08-30 19:49:40 -04:00

79 lines
2.5 KiB
Plaintext

/*
----------------
Eternal Training maneuver dummy
tob_etbl_ettrmove.nss
----------------
10 MAR 09 by GC
*/ /** @file
This is a dummy maneuver for Eternal Training.
The eternal blade maneuver conv selects the maneuver which
will be readied and this dummy casts it. This was done to
prevent the player from having to search for the maneuver each
time they ready it and to prevent problems that could arise from
adding and removing the maneuver normally.
*/
#include "tob_inc_move"
#include "tob_movehook"
////#include "prc_alterations"
void main()
{
object oInitiator = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int nManeuver = GetLocalInt(oInitiator, "ETBL_MANEUVER_CURRENT");
int nClass = GetPrimaryBladeMagicClass(oInitiator);
if (!PreManeuverCastCode())
{
IncrementRemainingFeatUses(oInitiator, FEAT_ETBL_ETERNAL_TRAINING);
// If code within the PreManeuverCastCode (i.e. UMD) reports FALSE, do not run this spell
return;
}
// End of Spell Cast Hook
// Blade guide check
if(GetLocalInt(oInitiator, "ETBL_BladeGuideDead"))
{
IncrementRemainingFeatUses(oInitiator, FEAT_ETBL_ETERNAL_TRAINING);
FloatingTextStringOnCreature("*Cannot use ability without blade guide*", oInitiator, FALSE);
return;
}
// Used in encounter already?
if(GetLocalInt(oInitiator, "ETBL_Eternal_Training_Expended"))
{
IncrementRemainingFeatUses(oInitiator, FEAT_ETBL_ETERNAL_TRAINING);
FloatingTextStringOnCreature("*Eternal Training expended already*", oInitiator, FALSE);
return;
}
if(nManeuver == -1 || nClass == -1)
{
IncrementRemainingFeatUses(oInitiator, FEAT_ETBL_ETERNAL_TRAINING);
FloatingTextStringOnCreature("*Select a maneuver using the conversation before using ability*", oInitiator, FALSE);
return;
}
if(!TakeSwiftAction(oInitiator))
{
IncrementRemainingFeatUses(oInitiator, FEAT_ETBL_ETERNAL_TRAINING);
return;
}
struct maneuver move = EvaluateManeuver(oInitiator, oTarget, TRUE);
if(move.bCanManeuver)
{
// Let them know what's being cast
SignalEvent(oTarget, EventSpellCastAt(oInitiator, nManeuver));
UseManeuver(nManeuver, nClass);
// Expend ability
SetLocalInt(oInitiator, "ETBL_Eternal_Training_Expended", TRUE);
}
else
IncrementRemainingFeatUses(oInitiator, FEAT_ETBL_ETERNAL_TRAINING);
}