PRC8/nwn/nwnprc/trunk/spells/sp_calm_emotionA.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

67 lines
2.2 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name Calm Emotions: On Enter
//:: FileName sp_calm_emotionA.nss
//:://////////////////////////////////////////////2
/** @file Calm Emotions
Enchantment (Compulsion) [Mind-Affecting]
Level: Brd 2, Clr 2, Law 2
Components: V, S, DF
Casting Time: 1 standard action
Range: Medium (100 ft. + 10 ft./level)
Area: Creatures in a 20-ft.-radius spread
Duration: 1 round/level
Saving Throw: Will negates
Spell Resistance: Yes
This spell calms agitated creatures. You have no
control over the affected creatures, but calm emotions
can stop raging creatures from fighting or joyous ones
from reveling. Creatures so affected cannot take
violent actions (although they can defend themselves)
or do anything destructive.
**/
//////////////////////////////////////////////////////
// Author: Tenjac
// Date: 8.10.06
//////////////////////////////////////////////////////
#include "prc_sp_func"
#include "prc_add_spell_dc"
int GetIsSupernaturalCurse(effect eEff)
{
object oCreator = GetEffectCreator(eEff);
if(GetTag(oCreator) == "q6e_ShaorisFellTemple")
return TRUE;
return FALSE;
}
void main()
{
object oPC = GetAreaOfEffectCreator();
object oTarget = GetEnteringObject();
int nDC = PRCGetSaveDC(oTarget, oPC);
//SR
if(!PRCDoResistSpell(oPC, oTarget, PRCGetCasterLevel(oPC) + SPGetPenetr()))
{
//Saving Throw and no targeting self
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_SPELL) && oTarget != oPC)
{
effect eVis = EffectVisualEffect(VFX_IMP_DAZED_S);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
PRCRemoveEffectsFromSpell(oTarget, 307); // Barbarian Rage
PRCRemoveEffectsFromSpell(oTarget, SPELL_BARD_SONG); // Bard Song
effect eEffect = GetFirstEffect(oTarget);
while(GetIsEffectValid(eEffect))
{ //Effect removal - see prc_sp_func for list of effects removed
if(CheckRemoveEffects(SPELL_CALM_EMOTIONS, GetEffectType(eEffect)) && !GetIsSupernaturalCurse(eEffect) && (GetEffectSubType(eEffect) != SUBTYPE_EXTRAORDINARY))
RemoveEffect(oTarget, eEffect);
eEffect = GetNextEffect(oTarget);
}
}
}
}