Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,105 +0,0 @@
|
||||
//Spell script for reserve feat touch attacks
|
||||
//prc_reservtch
|
||||
//by ebonfowl
|
||||
//Dedicated to Edgar, the real Ebonfowl
|
||||
|
||||
#include "prc_sp_func"
|
||||
#include "prc_inc_sp_tch"
|
||||
#include "prc_add_spell_dc"
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nSpellID = PRCGetSpellId();
|
||||
|
||||
effect eEffect, eLink, eVis, eVisFail;
|
||||
|
||||
int nDamageType, iAttackRoll, nDuration, nPartial, nDC;
|
||||
int nDamage = 0;
|
||||
|
||||
//Define individual spell parameters
|
||||
switch (nSpellID)
|
||||
{
|
||||
case SPELL_CLAP_OF_THUNDER:
|
||||
{
|
||||
nDamage = d6(GetLocalInt(oPC, "ClapOfThunderBonus"));
|
||||
nDamageType = DAMAGE_TYPE_SONIC;
|
||||
nDuration = 1;
|
||||
nPartial = 0;
|
||||
nDC = 10 + GetLocalInt(oPC, "ClapOfThunderBonus") + GetDCAbilityModForClass(GetPrimarySpellcastingClass(oPC), oPC);
|
||||
|
||||
eEffect = EffectDeaf();
|
||||
eEffect = SupernaturalEffect(eEffect);
|
||||
eVis = EffectVisualEffect(VFX_IMP_ACID_S);
|
||||
eVisFail = EffectVisualEffect(VFX_IMP_STUN);
|
||||
|
||||
if (!GetLocalInt(oPC, "ClapOfThunderBonus"))
|
||||
{
|
||||
FloatingTextStringOnCreature("You do not have a spell available of adequate level or type", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case SPELL_SICKENING_GRASP:
|
||||
{
|
||||
nDuration = GetLocalInt(oPC, "SickeningGraspBonus");
|
||||
nPartial = 1;
|
||||
nDC = 10 + GetLocalInt(oPC, "SickeningGraspBonus") + GetDCAbilityModForClass(GetPrimarySpellcastingClass(oPC), oPC);
|
||||
|
||||
eEffect = EffectAttackDecrease(2);
|
||||
eEffect = EffectLinkEffects(EffectDamageDecrease(2, DAMAGE_TYPE_SLASHING), eEffect);
|
||||
eEffect = EffectLinkEffects(EffectSavingThrowDecrease(SAVING_THROW_ALL, 2), eEffect);
|
||||
eEffect = EffectLinkEffects(EffectSkillDecrease(SKILL_ALL_SKILLS, 2), eEffect);
|
||||
eEffect = SupernaturalEffect(eEffect);
|
||||
eVis = EffectVisualEffect(VFX_IMP_ACID_S);
|
||||
eVisFail = EffectVisualEffect(VFX_IMP_STUN);
|
||||
|
||||
//Sanity checks
|
||||
if (!GetLocalInt(oPC, "SickeningGraspBonus"))
|
||||
{
|
||||
FloatingTextStringOnCreature("You do not have a spell available of adequate level or type", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (GetLocalInt(oTarget, "HasSickeningGrasp") == TRUE)
|
||||
{
|
||||
FloatingTextStringOnCreature("Target is already sickened", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (GetObjectType(oTarget) == OBJECT_TYPE_CREATURE)
|
||||
{
|
||||
SignalEvent(oTarget, EventSpellCastAt(oPC, nSpellID, TRUE));
|
||||
|
||||
iAttackRoll = PRCDoMeleeTouchAttack(oTarget);
|
||||
|
||||
if (iAttackRoll > 0)
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||
if (nDamage > 0) ApplyTouchAttackDamage(oPC, oTarget, iAttackRoll, nDamage, nDamageType);
|
||||
if (!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NONE))
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, RoundsToSeconds(nDuration));
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisFail, oTarget);
|
||||
if (nPartial == 1)
|
||||
{
|
||||
SetLocalInt(oTarget, "HasSickeningGrasp", TRUE);
|
||||
DelayCommand(RoundsToSeconds(nDuration), DeleteLocalInt(oTarget, "HasSickeningGrasp"));
|
||||
}
|
||||
}
|
||||
else if (nPartial == 1)
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, RoundsToSeconds(1));
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisFail, oTarget);
|
||||
SetLocalInt(oTarget, "HasSickeningGrasp", TRUE);
|
||||
DelayCommand(6.0, DeleteLocalInt(oTarget, "HasSickeningGrasp"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user