forked from Jaysyn/PRC8
Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
68 lines
2.1 KiB
Plaintext
68 lines
2.1 KiB
Plaintext
//Spell script for reserve feat ranged touch attacks
|
|
//prc_reservrng
|
|
//by ebonfowl
|
|
//Dedicated to Edgar, the real Ebonfowl
|
|
|
|
#include "prc_inc_sp_tch"
|
|
#include "prc_add_spell_dc"
|
|
#include "prc_inc_spells"
|
|
|
|
void DoRanged(effect eVis, int nSaveType, int nDamage, int nDamageType, int nSpellID = -1)
|
|
{
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
int nAtk = PRCDoRangedTouchAttack(oTarget, TRUE, OBJECT_SELF);
|
|
|
|
if(nAtk)
|
|
{
|
|
effect eMissile = EffectVisualEffect(VFX_IMP_MIRV);
|
|
|
|
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF))
|
|
{
|
|
//Fire cast spell at event for the specified target
|
|
PRCSignalSpellEvent(oTarget, TRUE, nSpellID);
|
|
|
|
// Apply the damage and the damage visible effect to the target.
|
|
ApplyTouchAttackDamage(OBJECT_SELF, oTarget, nAtk, nDamage, nDamageType);
|
|
PRCBonusDamage(oTarget);
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
|
|
|
/*if(PRCGetIsAliveCreature(oTarget))
|
|
{
|
|
// If the target failed it's save then apply the failed save effect as well for 1 round.
|
|
if (!PRCMySavingThrow(nSaveType, oTarget, PRCGetSaveDC(oTarget, OBJECT_SELF)))
|
|
{
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eFailSave, oTarget, RoundsToSeconds(1),TRUE,-1,nCasterLvl);
|
|
}
|
|
}*/
|
|
}
|
|
}
|
|
PRCSetSchool();
|
|
}
|
|
|
|
void main()
|
|
{
|
|
int nSpellID = PRCGetSpellId();
|
|
int nDice, nDamage;
|
|
|
|
effect eVis, eVisFail;
|
|
|
|
if (!GetLocalInt(OBJECT_SELF, "AcidicSplatterBonus"))
|
|
{
|
|
FloatingTextStringOnCreature("You do not have a spell available of adequate level or type", OBJECT_SELF, FALSE);
|
|
return;
|
|
}
|
|
|
|
switch (nSpellID)
|
|
{
|
|
case SPELL_ACIDIC_SPLATTER:
|
|
{
|
|
nDamage = d6(GetLocalInt(OBJECT_SELF, "AcidicSplatterBonus"));
|
|
|
|
eVis = EffectVisualEffect(VFX_IMP_ACID_S);
|
|
eVisFail = EffectVisualEffect(VFX_IMP_STUN);
|
|
|
|
DoRanged(eVis, SAVING_THROW_TYPE_ACID, nDamage, DAMAGE_TYPE_ACID);
|
|
}
|
|
}
|
|
}
|