PRC8/nwn/nwnprc/trunk/smp/phs_s_protfromgo.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

84 lines
3.1 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Protection from Good
//:: Spell FileName PHS_S_ProtFromGo
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Abjuration [Evil]
Level: Clr 1, Evil 1, Sor/Wiz 1
Components: V, S, M/DF
Casting Time: 1 standard action
Range: Touch
Target: Creature touched
Duration: 1 min./level (D)
Saving Throw: Will negates (harmless)
Spell Resistance: No; see text
This spell wards a creature from attacks by good creatures and from mental
control. It creates a magical barrier around the subject. The barrier moves
with the subject and has two major effects.
First, the subject gains a +2 deflection bonus to AC and a +2 resistance
bonus on saves. Both these bonuses apply against attacks made or effects
created by good creatures.
Second, the barrier blocks any attempt to possess the warded creature (by a
magic jar attack, for example) or to exercise mental control over the
creature, making them immune to Charm and Domination caused by good
creatures, that grant the caster ongoing control over the subject.
Arcane Material Component: A little powdered silver with which you trace a
circle on the floor (or ground) around the creature to be warded.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
As the spell says.
I removed the summoned part - it is much too hard to do realistically, and
would be hard to add.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell Hook Check.
if(!PHS_SpellHookCheck(PHS_SPELL_PROTECTION_FROM_GOOD)) return;
// Declare Major Variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
int nMetaMagic = PHS_GetMetaMagicFeat();
int nCasterLevel = PHS_GetCasterLevel();
// Duration - 1 Minute/level
float fDuration = PHS_GetDuration(PHS_MINUTES, nCasterLevel, nMetaMagic);
// Delcare effects
effect eDur = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MINOR);
effect eAC = EffectACIncrease(2, AC_DEFLECTION_BONUS);
effect eSaves = EffectSavingThrowIncrease(2, SAVING_THROW_ALL);
effect eMental = PHS_CreateCompulsionImmunityLink();
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
// Link effects
effect eLink = EffectLinkEffects(eDur, eAC);
eLink = EffectLinkEffects(eLink, eSaves);
eLink = EffectLinkEffects(eLink, eMental);
eLink = EffectLinkEffects(eLink, eCessate);
// Make it against good people
eLink = VersusAlignmentEffect(eLink, ALIGNMENT_ALL, ALIGNMENT_GOOD);
// Remove previous castings
if(PHS_RemoveProtectionFromAlignment(oTarget, ALIGNMENT_GOOD, 1)) return;
// Signal spell cast at
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_PROTECTION_FROM_GOOD, FALSE);
// Apply effects
PHS_ApplyDuration(oTarget, eLink, fDuration);
}