Further file organization
Further file organization
This commit is contained in:
39
nwn/nwnprc/trunk/include/spinc_engimm.nss
Normal file
39
nwn/nwnprc/trunk/include/spinc_engimm.nss
Normal file
@@ -0,0 +1,39 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DoEnergyImmunity - Apply a 24 hour immunity to one element to the
|
||||
// target.
|
||||
// nDamageType - the damage type (DAMAGE_TYPE_xxx) to be immune to
|
||||
// nVfx - The visual effect to use at cast time.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "prc_inc_spells"
|
||||
|
||||
void DoEnergyImmunity (int nDamageType, int nVfx)
|
||||
{
|
||||
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
|
||||
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
// Determine the duration
|
||||
float fDuration = PRCGetMetaMagicDuration(HoursToSeconds(24));
|
||||
|
||||
// Build a list of the duration effects which includes the actually immunity
|
||||
// effect and all visual effects.
|
||||
effect eList = EffectDamageResistance(nDamageType, 9999, 0);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_PROTECTION_ELEMENTS);
|
||||
eList = EffectLinkEffects(eList, eDur);
|
||||
eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||||
eList = EffectLinkEffects(eList, eDur);
|
||||
|
||||
// Fire cast spell at event for the specified target
|
||||
PRCSignalSpellEvent(oTarget, FALSE, SPELL_ENERGY_IMMUNITY);
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eList, oTarget, fDuration, TRUE, -1, PRCGetCasterLevel(OBJECT_SELF));
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nVfx), oTarget);
|
||||
|
||||
PRCSetSchool();
|
||||
}
|
||||
|
||||
// Test main
|
||||
//void main(){}
|
Reference in New Issue
Block a user