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");
|
||
|
}
|
||
|
|
||
|
|