PoA_PRC8/_module/_removed files/x2_s3_demitouch.nss
Jaysyn904 151d074880 Added "Removed Files" folder
Added "Removed Files" folder in case we needed to review any of them.
2022-10-10 10:39:34 -04:00

97 lines
2.8 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Demilich paralzying touch
//:: x2_s3_demitouch
//:: Copyright (c) 2003 Bioware Corp.
//:://////////////////////////////////////////////
/*
On touch a demilich can paralyze an opponent.
Fort vs DC 38
Duration varies by game difficulty between
1 and 5 rounds
(Sorry, no permanent paralyze, its just not fun)
*/
//:://////////////////////////////////////////////
//:: Created By: Georg Zoeller
//:: Created On: 2003-08-27
//:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
void main()
{
object oItem; // The item casting triggering this spellscript
object oSpellTarget; // On a weapon: The one being hit. On an armor: The one hitting the armor
object oSpellOrigin; // On a weapon: The one wielding the weapon. On an armor: The one wearing an armor
// fill the variables
oSpellOrigin = OBJECT_SELF;
oSpellTarget = GetSpellTargetObject();
oItem = GetSpellCastItem();
object oCaster = OBJECT_SELF;
if(GetLocalInt(GetArea(OBJECT_SELF), "NOCAST")==2 && !GetIsDM(oCaster))
{
//Make them stop what they are doing instantly!
AssignCommand(oCaster, ClearAllActions());
//Though the player may show animation, nothing happens! :)
//SetModuleOverrideSpellScriptFinished();
FloatingTextStringOnCreature("All spells fizzle in town.", oCaster);
return;
}
///////////////////////////////////////////////////////////////////////////////
//Handle Jail...
//NO ITEMS WORK IN JAIL!!!
if(GetLocalInt(GetArea(oCaster), "JAIL")==1)
{
AssignCommand(oCaster, ClearAllActions());
//Though the player may show animation, nothing happens! :)
//SetModuleOverrideSpellScriptFinished();
return;
}
///////////////////////////////////////////////////////////////////////////////
int nDuration = 3;
int nDiff = GetGameDifficulty();
if (nDiff == GAME_DIFFICULTY_CORE_RULES)
{
nDuration = 4;
}
else if (nDiff == GAME_DIFFICULTY_DIFFICULT)
{
nDuration = 6;
}
else if (nDiff == GAME_DIFFICULTY_VERY_EASY)
{
nDuration =2;
}
if (GetIsObjectValid(oItem))
{
SignalEvent(oSpellTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId()));
if(!GetHasSpellEffect(GetSpellId(),oSpellTarget))
{
if(!MySavingThrow(SAVING_THROW_FORT, oSpellTarget,36 , SAVING_THROW_TYPE_ALL))
{
effect eVis = EffectVisualEffect(VFX_IMP_STUN);
effect eDur = EffectVisualEffect(VFX_DUR_PARALYZED);
effect ePara = EffectParalyze();
ePara = SupernaturalEffect(ePara);
ePara = EffectLinkEffects(eDur,ePara);
ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oSpellTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePara,oSpellTarget,RoundsToSeconds(nDuration));
}
}
}
}