Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,82 +0,0 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name Dark Discorporation
|
||||
//:: FileName inv_darkdiscorp.nss
|
||||
//::///////////////////////////////////////////////
|
||||
/*
|
||||
|
||||
Dark Invocation
|
||||
8th Level Spell
|
||||
|
||||
You can abandon your body and become a swarm of
|
||||
batlike shadows for up to 24 hours. In this form
|
||||
you cannot attack or cast, but you are immune to
|
||||
normal weapon damage and critical hits as a swarm
|
||||
is. Your dexterity increases by 6, and you get a
|
||||
deflection bonus to AC equal to your charisma
|
||||
modifier. You also gain a swarm attack that does
|
||||
4d6 damage to anyone in a square your swarm
|
||||
occupies.
|
||||
|
||||
*/
|
||||
//::///////////////////////////////////////////////
|
||||
|
||||
#include "inv_inc_invfunc"
|
||||
#include "inv_invokehook"
|
||||
|
||||
void main()
|
||||
{
|
||||
object oCaster = OBJECT_SELF;
|
||||
if(GetLocalInt(oCaster, "DarkDiscorporation"))
|
||||
{
|
||||
PRCRemoveSpellEffects(INVOKE_DARK_DISCORPORATION, oCaster, oCaster);
|
||||
DeleteLocalInt(oCaster, "DarkDiscorporation");
|
||||
object oNoAtk = GetItemPossessedBy(oCaster, "prc_eldrtch_glv");
|
||||
DestroyObject(oNoAtk);
|
||||
RemoveEventScript(oCaster, EVENT_ONPLAYERUNEQUIPITEM, "inv_discorpnoatk", TRUE, FALSE);
|
||||
RemoveEventScript(oCaster, EVENT_ONUNAQUIREITEM, "inv_discorpnoatk", TRUE, FALSE);
|
||||
DeleteLocalInt(oCaster, "IgnoreSwarmDmg");
|
||||
DeleteLocalInt(oCaster, "SwarmDmgType");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!PreInvocationCastCode()) return;
|
||||
|
||||
//Declare major variables
|
||||
int CasterLvl = GetInvokerLevel(oCaster, GetInvokingClass());
|
||||
int nChaMod = GetAbilityModifier(ABILITY_CHARISMA, oCaster);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
|
||||
|
||||
effect eDex = EffectAbilityIncrease(ABILITY_DEXTERITY, 6);
|
||||
effect eCritImmune = EffectImmunity(IMMUNITY_TYPE_CRITICAL_HIT);
|
||||
effect eWeaponImm1 = EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, 100);
|
||||
effect eWeaponImm2 = EffectDamageImmunityIncrease(DAMAGE_TYPE_PIERCING, 100);
|
||||
effect eWeaponImm3 = EffectDamageImmunityIncrease(DAMAGE_TYPE_SLASHING, 100);
|
||||
effect eAOE = EffectAreaOfEffect(INVOKE_VFX_DARK_DISCORPORATION);
|
||||
effect eArmor = EffectACIncrease(nChaMod, AC_DEFLECTION_BONUS);
|
||||
effect eLink = EffectLinkEffects(eCritImmune, eDex);
|
||||
eLink = EffectLinkEffects(eLink, eWeaponImm1);
|
||||
eLink = EffectLinkEffects(eLink, eWeaponImm2);
|
||||
eLink = EffectLinkEffects(eLink, eWeaponImm3);
|
||||
eLink = EffectLinkEffects(eLink, eAOE);
|
||||
eLink = EffectLinkEffects(eLink, eArmor);
|
||||
eLink = EffectLinkEffects(eLink, eArmor);
|
||||
eLink = EffectLinkEffects(eLink, EffectAttackDecrease(20));
|
||||
eLink = EffectLinkEffects(eLink, EffectAbilityDecrease(ABILITY_STRENGTH, 20));
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oCaster, EventSpellCastAt(oCaster, INVOKE_DARK_DISCORPORATION, FALSE));
|
||||
|
||||
//Apply the VFX impact and effects
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oCaster);
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oCaster, HoursToSeconds(24), TRUE, -1, CasterLvl);
|
||||
SetLocalInt(oCaster, "DarkDiscorporation", TRUE);
|
||||
|
||||
object oNoAtk = CreateItemOnObject("prc_eldrtch_glv", oCaster);
|
||||
SetDroppableFlag(oNoAtk, FALSE);
|
||||
SetItemCursedFlag(oNoAtk, TRUE);
|
||||
AssignCommand(oCaster, ActionEquipItem(oNoAtk, INVENTORY_SLOT_RIGHTHAND));
|
||||
SetLocalInt(oCaster, "IgnoreSwarmDmg", TRUE);
|
||||
SetLocalInt(oCaster, "SwarmDmgType", INVOKE_DARK_DISCORPORATION);
|
||||
ExecuteScript("inv_discorpnoatk", oCaster);
|
||||
}
|
||||
|
Reference in New Issue
Block a user