Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,126 +0,0 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name Death by Thorns
|
||||
//:: FileName sp_dth_thorns.nss
|
||||
//:://////////////////////////////////////////////
|
||||
/**@file Death by Thorns
|
||||
Conjuration (Creation) [Evil, Death]
|
||||
Level: Corrupt 7
|
||||
Components: V, S, Corrupt
|
||||
Casting Time: 1 action
|
||||
Range: Touch
|
||||
Targets: Up to three creatures, no two of which can
|
||||
be more than 15 ft. apart
|
||||
Duration: Instantaneous
|
||||
Saving Throw: Fortitude partial
|
||||
Spell Resistance: Yes
|
||||
|
||||
The caster causes thorns to sprout from the insides
|
||||
of the subject creatures, which writhe in agony for
|
||||
1d4 rounds, incapacitated, before dying. A wish or
|
||||
miracle spell cast on a subject during this time can
|
||||
eliminate the thorns and save that creature.
|
||||
Creatures that succeed at their Fortitude saving
|
||||
throws are still incapacitated for 1d4 rounds in
|
||||
horrible agony, taking 1d6 points of damage per round.
|
||||
At the end of the agony, however, the thorns disappear.
|
||||
|
||||
Corruption Cost: 1d3 points of Wisdom drain.
|
||||
|
||||
Author: Tenjac
|
||||
Created:
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "prc_inc_spells"
|
||||
#include "prc_add_spell_dc"
|
||||
|
||||
void DamageLoop(object oTarget, int nCount, object oPC)
|
||||
{
|
||||
int nDam = SpellDamagePerDice(oPC, 1) + d6(1);
|
||||
effect eDam = PRCEffectDamage(oTarget, nDam, DAMAGE_TYPE_MAGICAL);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
||||
nCount--;
|
||||
|
||||
if(nCount > 0)
|
||||
{
|
||||
DelayCommand(6.0f, DamageLoop(oTarget, nCount, oPC));
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
PRCSetSchool(SPELL_SCHOOL_CONJURATION);
|
||||
|
||||
// Run the spellhook.
|
||||
if (!X2PreSpellCastCode()) return;
|
||||
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nTargetCount;
|
||||
location lTarget = GetLocation(oTarget);
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nDC = PRCGetSaveDC(oTarget, oPC);
|
||||
int nDelay;
|
||||
float fDuration;
|
||||
effect ePar = EffectCutsceneImmobilize();
|
||||
effect eDeath = EffectDeath();
|
||||
|
||||
PRCSignalSpellEvent(oTarget, TRUE, SPELL_DEATH_BY_THORNS, oPC);
|
||||
|
||||
//Check Spell Resistance
|
||||
if (!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()))
|
||||
{
|
||||
//loop the thorn giving max 3 targets
|
||||
while(GetIsObjectValid(oTarget) && nTargetCount < 3)
|
||||
{
|
||||
|
||||
//if target isn't a friend
|
||||
if(!GetIsFriend(oTarget, oPC))
|
||||
{
|
||||
nDelay = d4(1);
|
||||
fDuration = RoundsToSeconds(nDelay);
|
||||
|
||||
//Immobilize target
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePar, oTarget, fDuration);
|
||||
|
||||
//Loop torture animation
|
||||
ActionPlayAnimation(ANIMATION_LOOPING_SPASM, 1.0, fDuration);
|
||||
|
||||
//Give thorns if spell if failed save
|
||||
if (!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_DEATH))
|
||||
{
|
||||
DeathlessFrenzyCheck(oTarget);
|
||||
DelayCommand(fDuration, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget));
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if(!GetHasMettle(oTarget, SAVING_THROW_FORT))
|
||||
{
|
||||
int nCount = nDelay;
|
||||
DamageLoop(oTarget, nCount, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
//Increment targets
|
||||
nTargetCount++;
|
||||
}
|
||||
|
||||
//Get next creature within 15 ft
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, 7.5f, lTarget, FALSE, OBJECT_TYPE_CREATURE);
|
||||
}
|
||||
}
|
||||
|
||||
//Corruption cost
|
||||
|
||||
DoCorruptionCost(oPC, ABILITY_WISDOM, d3(1), 1);
|
||||
|
||||
//Alignment Shift
|
||||
//SPEvilShift(oPC);
|
||||
|
||||
//Corrupt spells get mandatory 10 pt evil adjustment, regardless of switch
|
||||
AdjustAlignment(oPC, ALIGNMENT_EVIL, 10, FALSE);
|
||||
|
||||
PRCSetSchool();
|
||||
}
|
Reference in New Issue
Block a user