Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,93 +0,0 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name Earthen Grasp
|
||||
//:: Stony Grasp
|
||||
//:: FileName inv_earthengrasp.nss
|
||||
//::///////////////////////////////////////////////
|
||||
/*
|
||||
|
||||
Least Invocation
|
||||
2nd Level Spell
|
||||
|
||||
You can summon up an immobile hand of dirt and
|
||||
grass which grapples any creature nearby. The hand
|
||||
lasts for 2 rounds per level, has an AC of 15,
|
||||
hardness of 4, and has 3 HP per level.
|
||||
|
||||
Lesser Invocation
|
||||
3rd Level Spell
|
||||
|
||||
You can summon up an immobile hand of rock and
|
||||
stone which grapples any creature nearby. The hand
|
||||
lasts for 1 round per level, has an AC of 18,
|
||||
hardness of 8, and has 4 HP per level.
|
||||
|
||||
*/
|
||||
//::///////////////////////////////////////////////
|
||||
|
||||
#include "inv_inc_invfunc"
|
||||
#include "inv_invokehook"
|
||||
|
||||
void BuffSummon(int nDuration, object oCaster, int nSpellID)
|
||||
{
|
||||
int i = 1;
|
||||
object oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oCaster, i);
|
||||
if(DEBUG) DoDebug("inv_tenacplague: First Summon is " + DebugObject2Str(oSummon));
|
||||
while(GetIsObjectValid(oSummon))
|
||||
{
|
||||
i++;
|
||||
oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oCaster, i);
|
||||
if(DEBUG) DoDebug("inv_tenacplague: Next Summon is " + DebugObject2Str(oSummon));
|
||||
}
|
||||
oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oCaster, i - 1);
|
||||
if(DEBUG) DoDebug("inv_tenacplague: Final Summon is " + DebugObject2Str(oSummon));
|
||||
|
||||
effect eDR = EffectDamageReduction(4, DAMAGE_POWER_ENERGY);
|
||||
effect eHP = EffectTemporaryHitpoints(nDuration * 3 - 3);
|
||||
effect eHand = EffectVisualEffect(VFX_DUR_BIGBYS_GRASPING_HAND);
|
||||
if(nSpellID == INVOKE_STONY_GRASP)
|
||||
{
|
||||
eDR = EffectDamageReduction(8, DAMAGE_POWER_ENERGY);
|
||||
eHP = EffectTemporaryHitpoints(nDuration * 4 - 4);
|
||||
}
|
||||
effect eAOE = EffectAreaOfEffect(INVOKE_AOE_EARTHEN_GRASP_GRAPPLE);
|
||||
SetLocalInt(oSummon, "SourceOfGrapple", TRUE);
|
||||
eAOE = EffectLinkEffects(eAOE, EffectCutsceneParalyze());
|
||||
effect eLink = EffectLinkEffects(eDR, eHP);
|
||||
eLink = EffectLinkEffects(eLink, eHand);
|
||||
eLink = EffectLinkEffects(eLink, eAOE);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oSummon);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
if(!PreInvocationCastCode()) return;
|
||||
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oArea = GetArea(OBJECT_SELF);
|
||||
int nSpellID = GetSpellId();
|
||||
if(nSpellID == INVOKE_EARTHEN_GRASP &&
|
||||
GetIsAreaNatural(oArea) != AREA_NATURAL &&
|
||||
GetIsAreaAboveGround(oArea) != AREA_ABOVEGROUND)
|
||||
{
|
||||
FloatingTextStringOnCreature("You can only use this invocation in natural, above-ground areas.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
//Declare major variables
|
||||
location lTarget = PRCGetSpellTargetLocation();
|
||||
int nDuration = GetInvokerLevel(oCaster, GetInvokingClass());
|
||||
effect eSummon = EffectSummonCreature("inv_earthenhand");
|
||||
float fDuration = RoundsToSeconds(nDuration * 2);
|
||||
if(nSpellID == INVOKE_STONY_GRASP)
|
||||
{
|
||||
eSummon = EffectSummonCreature("inv_stonyhand");
|
||||
fDuration = RoundsToSeconds(nDuration);
|
||||
}
|
||||
effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1);
|
||||
|
||||
//Apply the VFX impact and summon effect
|
||||
MultisummonPreSummon();
|
||||
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, lTarget);
|
||||
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lTarget, fDuration);
|
||||
DelayCommand(0.1, BuffSummon(nDuration, oCaster, nSpellID));
|
||||
}
|
Reference in New Issue
Block a user