Further file organization

Further file organization
This commit is contained in:
Jaysyn904
2023-08-23 22:11:00 -04:00
parent 3062876237
commit d87fe14826
22364 changed files with 0 additions and 3253 deletions

View File

@@ -0,0 +1,58 @@
//::///////////////////////////////////////////////
//:: Name Cold Comfort
//:: FileName inv_coldcomfort.nss
//::///////////////////////////////////////////////
/*
Lesser Invocation
2nd Level Spell
You radiate an unnatural aura that protects you and
those around you to some small extent from the
ravages of the elements. This invocation acts like
the Endure Elements spell, and lasts for 24 hours
or until the caster takes more than 20 points of
elemental damage.
*/
//::///////////////////////////////////////////////
#include "inv_inc_invfunc"
#include "inv_invokehook"
void main()
{
if(!PreInvocationCastCode()) return;
//Declare major variables
object oCaster = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int CasterLvl = GetInvokerLevel(oCaster, GetInvokingClass());
effect eAOE = EffectAreaOfEffect(INVOKE_AOE_COLD_COMFORT);
int nAmount = 20;
int nResistance = 10;
effect eCold = EffectDamageResistance(DAMAGE_TYPE_COLD, nResistance, nAmount);
effect eFire = EffectDamageResistance(DAMAGE_TYPE_FIRE, nResistance, nAmount);
effect eAcid = EffectDamageResistance(DAMAGE_TYPE_ACID, nResistance, nAmount);
effect eSonic = EffectDamageResistance(DAMAGE_TYPE_SONIC, nResistance, nAmount);
effect eElec = EffectDamageResistance(DAMAGE_TYPE_ELECTRICAL, nResistance, nAmount);
effect eDur = EffectVisualEffect(VFX_DUR_PROTECTION_ELEMENTS);
effect eVis = EffectVisualEffect(VFX_IMP_ELEMENTAL_PROTECTION);
effect eDur2 = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oCaster, INVOKE_COLD_COMFORT, FALSE));
//Link Effects
effect eLink = EffectLinkEffects(eCold, eFire);
eLink = EffectLinkEffects(eLink, eAcid);
eLink = EffectLinkEffects(eLink, eSonic);
eLink = EffectLinkEffects(eLink, eElec);
eLink = EffectLinkEffects(eLink, eDur);
eLink = EffectLinkEffects(eLink, eDur2);
eLink = EffectLinkEffects(eLink, eAOE);
//Apply VFX impact and effects
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(24),TRUE,-1,CasterLvl);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}