Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
61 lines
2.4 KiB
Plaintext
61 lines
2.4 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Epic Spell: Twinfiend
|
|
//:: Author: Boneshank (Don Armstrong)
|
|
|
|
//#include "x2_inc_toollib"
|
|
#include "prc_alterations"
|
|
#include "inc_epicspells"
|
|
//#include "x2_inc_spellhook"
|
|
#include "nw_i0_generic"
|
|
|
|
void main()
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
|
|
|
|
if (!X2PreSpellCastCode())
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
return;
|
|
}
|
|
if (GetCanCastSpell(OBJECT_SELF, SPELL_EPIC_TWINF))
|
|
{
|
|
//Declare major variables
|
|
float fDuration = RoundsToSeconds(20);
|
|
object oFiend, oFiend2;
|
|
// effect eSummon;
|
|
effect eVis = EffectVisualEffect(460);
|
|
effect eVis2 = EffectVisualEffect(VFX_IMP_UNSUMMON);
|
|
if(GetPRCSwitch(PRC_MULTISUMMON))
|
|
{
|
|
string sSummon = "twinfiend_demon";
|
|
effect eSummon = EffectSummonCreature(sSummon, 460);
|
|
MultisummonPreSummon();
|
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon,
|
|
PRCGetSpellTargetLocation(), fDuration);
|
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon,
|
|
PRCGetSpellTargetLocation(), fDuration);
|
|
DelayCommand(0.5, AugmentSummonedCreature(sSummon));
|
|
}
|
|
else
|
|
{
|
|
DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, PRCGetSpellTargetLocation()));
|
|
oFiend = CreateObject(OBJECT_TYPE_CREATURE, "twinfiend_demon", PRCGetSpellTargetLocation());
|
|
oFiend2 = CreateObject(OBJECT_TYPE_CREATURE, "twinfiend_demon", PRCGetSpellTargetLocation());
|
|
SetMaxHenchmen(GetMaxHenchmen() + 2);
|
|
AddHenchman(OBJECT_SELF, oFiend);
|
|
AddHenchman(OBJECT_SELF, oFiend2);
|
|
SetMaxHenchmen(GetMaxHenchmen() - 2);
|
|
AssignCommand(oFiend, DetermineCombatRound());
|
|
AssignCommand(oFiend2, DetermineCombatRound());
|
|
DestroyObject(oFiend, fDuration);
|
|
DelayCommand(fDuration, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis2, GetLocation(oFiend)));
|
|
DestroyObject(oFiend2, fDuration);
|
|
DelayCommand(fDuration, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis2, GetLocation(oFiend2)));
|
|
}
|
|
}
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
}
|
|
|
|
|