PRC8/nwn/nwnprc/trunk/smp/phs_s_irresdance.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.0 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Irresistible Dance
//:: Spell FileName PHS_S_IrresDance
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Enchantment (Compulsion) [Mind-Affecting]
Level: Brd 6, Sor/Wiz 8
Components: V
Casting Time: 1 standard action
Range: Touch
Target: Living creature touched
Duration: 1d4+1 rounds
Saving Throw: None
Spell Resistance: Yes
The subject feels an undeniable urge to dance and begins doing so, complete
with foot shuffling and tapping. The spell effect makes it impossible for the
subject to do anything other than caper and prance in place. The effect
imposes a -4 penalty to Armor Class and a -10 penalty on Reflex saves. The
target also unequips anything it is holding to dance. The dancing subject
may even provoke attacks of opportunity each round if it starts to do dives
or ballet
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Applies a confusion effect, really...
It links the penalties in.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell Hook Check.
if(!PHS_SpellHookCheck(PHS_SPELL_IRRESISTIBLE_DANCE)) return;
//Declare major variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
int nCasterLevel = PHS_GetCasterLevel();
int nMetaMagic = PHS_GetMetaMagicFeat();
// Duration in rounds, 1d4 + 1.
float fDuration = PHS_GetRandomDuration(PHS_ROUNDS, 4, 1, nMetaMagic, 1);
// Make sure they are not immune to spells
if(PHS_TotalSpellImmunity(oTarget)) return;
//Declare effects
effect eAC = EffectACDecrease(4, AC_DODGE_BONUS, AC_VS_DAMAGE_TYPE_ALL);
effect eReflex = EffectSavingThrowDecrease(SAVING_THROW_REFLEX, 10, SAVING_THROW_TYPE_ALL);
effect eDance = EffectConfused();
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
effect eVis = EffectVisualEffect(PHS_VFX_IMP_IRRESISTIBLE_DANCE);
// Link effects
effect eLink = EffectLinkEffects(eAC, eReflex);
eLink = EffectLinkEffects(eLink, eDance);
eLink = EffectLinkEffects(eLink, eCessate);
// Signal Spell cast at
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_IRRESISTIBLE_DANCE);
// Melee Touch attack
if(PHS_SpellTouchAttack(PHS_TOUCH_MELEE, oTarget, TRUE))
{
// Only living creatures, and PvP check.
if(!GetIsReactionTypeFriendly(oTarget) &&
PHS_GetIsAliveCreature(oTarget, "You must target a living creature to dance"))
{
// Spell resistance check
if(!PHS_SpellResistanceCheck(oCaster, oTarget))
{
// Do dancing, baby, yeah!
PHS_ApplyDurationAndVFX(oTarget, eVis, eLink, fDuration);
}
}
}
}