Initial upload.

Adding base PRC 4.19a files to repository.
This commit is contained in:
Jaysyn904
2022-10-07 13:51:24 -04:00
parent 646eb01834
commit 1662218bb4
22441 changed files with 1274376 additions and 0 deletions

95
trunk/spells/sp_wrack.nss Normal file
View File

@@ -0,0 +1,95 @@
//::///////////////////////////////////////////////
//:: Name Wrack
//:: FileName sp_wrack.nss
//:://////////////////////////////////////////////
/**@file Wrack
Necromancy [Evil]
Level: Clr 3, Mortal Hunter 3, Pain 3, Sor/Wiz 4
Components: V, S
Casting Time: 1 action
Range: Close (25 ft. + 5 ft./2 levels)
Area: One humanoid creature
Duration: 1 round/level
Saving Throw: Fortitude negates
Spell Resistance: Yes
The subject is wracked with such pain that he doubles
over and collapses. His face and hands blister and
drip fluid, and his eyes cloud with blood, rendering
him blind. For the duration of the spell the subject
is considered helpless and cannot take actions. The
subject's sight returns when the spell's duration
expires.
Even after the spell ends, the subject is still
visibly shaken and takes a -2 penalty on attack rolls,
saves, and checks for 3d10 minutes.
Author: Tenjac
Created: 5/10/06
*/
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
#include "prc_inc_spells"
#include "prc_add_spell_dc"
void main()
{
object oPC = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int nCasterLvl = PRCGetCasterLevel(oPC);
int nMetaMagic = PRCGetMetaMagicFeat();
int nDC = PRCGetSaveDC(oTarget, oPC);
float fDur = (6.0f * nCasterLvl);
effect eBlind = EffectBlindness();
int nPenalty = 2;
//Spellhook
if(!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
if(nMetaMagic & METAMAGIC_EXTEND)
{
fDur = (fDur * 2);
}
if(nMetaMagic & METAMAGIC_EMPOWER)
{
nPenalty += (nPenalty/2);
}
//Check Spell Resistance
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()))
{
//Will save
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
{
//Blind
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBlind, oTarget, fDur);
//Clear all actions
AssignCommand(oTarget, ClearAllActions());
//Animation
AssignCommand(oTarget, PlayAnimation(ANIMATION_LOOPING_SPASM, 6.0f));
DelayCommand(6.0f,AssignCommand(oTarget, PlayAnimation(ANIMATION_LOOPING_DEAD_BACK, (fDur - 6.0f))));
//Make them sit and wait.
DelayCommand(6.2,SetCommandable(FALSE, oTarget));
//Restore Control
DelayCommand((fDur - 6.2), SetCommandable(TRUE, oTarget));
//After spell end
effect eLink = EffectAttackDecrease(nPenalty, ATTACK_BONUS_MISC);
eLink = EffectLinkEffects(eLink, EffectSavingThrowDecrease(SAVING_THROW_ALL, nPenalty, SAVING_THROW_TYPE_ALL));
eLink = EffectLinkEffects(eLink, EffectSkillDecrease(SKILL_ALL_SKILLS, nPenalty));
DelayCommand(fDur, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, (d10(3) * 60.0f)));
}
}
//SPEvilShift(oPC);
PRCSetSchool();
}