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.
63 lines
2.1 KiB
Plaintext
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));
|
|
}
|
|
}
|