PRC8/nwn/nwnprc/trunk/newspellbook/tob_ssn_lightwd.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

63 lines
2.1 KiB
Plaintext

/*
----------------
Light Within Darkness
tob_ssn_lightwd.nss
----------------
18 MAR 09 by GC
*/ /** @file
*/
#include "tob_inc_move"
#include "tob_movehook"
////#include "prc_alterations"
void TheLight(object oInitiator)
{
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, FeetToMeters(60.0), GetLocation(oInitiator));
int nDC = 10 + GetHitDice(oInitiator)/2 + GetAbilityModifier(ABILITY_WISDOM);
effect eLink = EffectBlindness();
eLink = SupernaturalEffect(eLink);
effect eVis = EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
while(GetIsObjectValid(oTarget))
{
if(GetIsEnemy(oTarget) && !GetObjectSeen(oInitiator, oTarget))
{// Mustn't see oInitiator at this time
if(DEBUG) DoDebug("Didn't see you: " + ObjectToString(oTarget));
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NONE))
{
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, 6.0); // Fail save? Blinded
SetLocalInt(oInitiator, "SSN_DARKWL_SUCCESS", TRUE); // Set if someone was affected
}
}
else if(DEBUG) DoDebug("Saw you: " + ObjectToString(oTarget));
oTarget = GetNextObjectInShape(SHAPE_SPHERE, FeetToMeters(60.0), GetLocation(oInitiator));
}
if(GetLocalInt(oInitiator, "SSN_DARKWL_SUCCESS"))// Only show if someone was affected. Otherwise will act like normal attack round
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oInitiator);
}
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, TRUE);
effect eNone;
if(move.bCanManeuver)
{
TheLight(oInitiator);
//DelayCommand(0.0, PerformAttackRound(oTarget, oInitiator, eNone, 0.0, 0, 0, 0, FALSE, "", "", FALSE, FALSE, FALSE));
}
}