forked from Jaysyn/PRC8
46 lines
1.5 KiB
Plaintext
46 lines
1.5 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: Name Caustic Mire - OnExit
|
||
|
//:: FileName inv_causticmireb.nss
|
||
|
//::///////////////////////////////////////////////
|
||
|
|
||
|
#include "inv_inc_invfunc"
|
||
|
#include "inv_invokehook"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
//Get the object that is exiting the AOE
|
||
|
object oTarget = GetExitingObject();
|
||
|
object oCaster = GetAreaOfEffectCreator();
|
||
|
int CasterLvl = GetInvokerLevel(oCaster, CLASS_TYPE_WARLOCK);
|
||
|
int nPenetr = SPGetPenetrAOE(oCaster, CasterLvl);
|
||
|
|
||
|
//Search through the valid effects on the target.
|
||
|
effect eAOE = GetFirstEffect(oTarget);
|
||
|
while (GetIsEffectValid(eAOE))// && bValid == FALSE)
|
||
|
{
|
||
|
//If the effect was created by the Web then remove it
|
||
|
if (GetEffectCreator(eAOE) == oCaster)
|
||
|
{
|
||
|
if(GetEffectSpellId(eAOE) == INVOKE_CAUSTIC_MIRE)
|
||
|
{
|
||
|
RemoveEffect(oTarget, eAOE);
|
||
|
}
|
||
|
}
|
||
|
eAOE = GetNextEffect(oTarget);
|
||
|
}
|
||
|
|
||
|
if(!PRCDoResistSpell(oCaster, oTarget, nPenetr))
|
||
|
{
|
||
|
location lLastLocation = GetLocalLocation(oTarget, "LastMirePos");
|
||
|
float fDistance = GetDistanceBetweenLocations(lLastLocation, GetLocation(oTarget));
|
||
|
|
||
|
int nDam = FloatToInt(fDistance / FeetToMeters(5.0));
|
||
|
effect eDam = EffectDamage(d6(nDam), DAMAGE_TYPE_ACID);
|
||
|
effect eLink = EffectLinkEffects(eDam, EffectVisualEffect(VFX_IMP_ACID_S));
|
||
|
|
||
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eLink, oTarget);
|
||
|
}
|
||
|
DeleteLocalLocation(oTarget, "LastMirePos");
|
||
|
}
|
||
|
|