Further file organization
Further file organization
This commit is contained in:
89
nwn/nwnprc/trunk/smp/phs_s_feeblemind.nss
Normal file
89
nwn/nwnprc/trunk/smp/phs_s_feeblemind.nss
Normal file
@@ -0,0 +1,89 @@
|
||||
/*:://////////////////////////////////////////////
|
||||
//:: Spell Name Feeblemind
|
||||
//:: Spell FileName PHS_S_Feeblemind
|
||||
//:://////////////////////////////////////////////
|
||||
//:: In Game Spell desctiption
|
||||
//:://////////////////////////////////////////////
|
||||
20M Range, 1 creature target, will negates, SR applies. Mind affecting.
|
||||
|
||||
If the target creature fails a Will saving throw, its Intelligence and
|
||||
Charisma scores each drop to 3 (By taking a -40 penalty in each ability).
|
||||
The affected creature is unable to cast spells, understand language,
|
||||
or communicate coherently. Still, it knows who its friends are and can
|
||||
follow them and even protect them. The subject remains in this state until
|
||||
a heal, limited wish, miracle, or wish spell is used to cancel the effect
|
||||
of the feeblemind. If the target creature can cast sorceror or wizard spells,
|
||||
it takes a -4 penalty on its saving throw.
|
||||
|
||||
Material Component: A handful of clay, crystal, glass, or mineral spheres.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Spell Effects Applied / Notes
|
||||
//:://////////////////////////////////////////////
|
||||
A will mind save, to negate a -40 ability score for the 2 casting abilities.
|
||||
|
||||
The -4 penalty to saving throw is a +4DC to the save needed.
|
||||
|
||||
Heal, limited wish, miracle, or wish removes it. It is a PERMAMENT effect.
|
||||
Cannot be dispeled - it is supernatural.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Jasperre
|
||||
//::////////////////////////////////////////////*/
|
||||
|
||||
#include "PHS_INC_SPELLS"
|
||||
|
||||
void main()
|
||||
{
|
||||
// Spell Hook Check.
|
||||
if(!PHS_SpellHookCheck(PHS_SPELL_FEEBLEMIND)) return;
|
||||
|
||||
// Declare Major Variables
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = GetSpellTargetObject();
|
||||
int nSpellSaveDC = PHS_GetSpellSaveDC();
|
||||
|
||||
// Add 4 to DC if they are a caster
|
||||
if(GetLevelByClass(CLASS_TYPE_WIZARD, oTarget) ||
|
||||
GetLevelByClass(CLASS_TYPE_SORCERER, oTarget))
|
||||
{
|
||||
nSpellSaveDC += 4;
|
||||
}
|
||||
|
||||
// Make sure they are not immune to spells
|
||||
if(PHS_TotalSpellImmunity(oTarget)) return;
|
||||
|
||||
// Declare effects
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
|
||||
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eChaPenalty = EffectAbilityDecrease(ABILITY_CHARISMA, 40);
|
||||
effect eIntPenalty = EffectAbilityDecrease(ABILITY_INTELLIGENCE, 40);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||
// Link effects
|
||||
effect eLink = EffectLinkEffects(eCessate, eChaPenalty);
|
||||
eLink = EffectLinkEffects(eIntPenalty, eLink);
|
||||
eLink = EffectLinkEffects(eDur, eLink);
|
||||
|
||||
// Make it supernatural to resist all Dispel and Resting
|
||||
eLink = SupernaturalEffect(eLink);
|
||||
|
||||
// PvP check
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
// Signal spell cast at
|
||||
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_FEEBLEMIND);
|
||||
|
||||
// Spell resistance check
|
||||
if(!PHS_SpellResistanceCheck(oCaster, oTarget) &&
|
||||
!PHS_ImmunityCheck(oTarget, IMMUNITY_TYPE_MIND_SPELLS))
|
||||
{
|
||||
// Will save negates
|
||||
if(!PHS_SavingThrow(SAVING_THROW_WILL, oTarget, nSpellSaveDC, SAVING_THROW_TYPE_MIND_SPELLS))
|
||||
{
|
||||
// Remove previous effects
|
||||
PHS_RemoveSpellEffectsFromTarget(PHS_SPELL_FEEBLEMIND, oTarget);
|
||||
|
||||
// Apply effects
|
||||
PHS_ApplyPermanentAndVFX(oTarget, eVis, eLink);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user