Further file organization
Further file organization
This commit is contained in:
67
nwn/nwnprc/trunk/scripts/prc_reservrng.nss
Normal file
67
nwn/nwnprc/trunk/scripts/prc_reservrng.nss
Normal file
@@ -0,0 +1,67 @@
|
||||
//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);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user