PRC8_fork/nwn/nwnprc/trunk/smp/phs_s_feeblemind.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

90 lines
3.4 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: 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);
}
}
}
}