PRC8/nwn/nwnprc/trunk/epicspellscripts/ss_ep_twnfiend.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
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.
2024-02-11 14:01:05 -05:00

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