generated from Jaysyn/ModuleTemplate
96 lines
2.6 KiB
Plaintext
96 lines
2.6 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Summon Monster IX
|
|
//:: NW_S0_Summon9
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "wm_include"
|
|
#include "x2_inc_spellhook"
|
|
void main()
|
|
{
|
|
if (WildMagicOverride()) { return; }
|
|
//Declare major variables
|
|
int nMetaMagic = GetMetaMagicFeat();
|
|
object oMod = GetModule();
|
|
int nLevel = GetCasterLevel(OBJECT_SELF);
|
|
int nSummon = GetLocalInt(oMod, "SUMMONTIME");
|
|
int nDuration;
|
|
if (nSummon > 0)
|
|
{ nDuration = ((nLevel * nSummon) + 10); }
|
|
else
|
|
{ nDuration = 24; }
|
|
string sResRef = ""; // ResRef of the creature to summon.
|
|
//Make metamagic check for extend
|
|
if (nMetaMagic == METAMAGIC_EXTEND)
|
|
{
|
|
nDuration = nDuration *2; //Duration is +100%
|
|
}
|
|
// Check for a Book of Summons
|
|
object oBook = GetItemPossessedBy(OBJECT_SELF, "bookofsummons");
|
|
if ( oBook != OBJECT_INVALID )
|
|
{
|
|
sResRef = GetLocalString(oBook, "summons9");
|
|
}
|
|
|
|
if ( sResRef == "" )
|
|
{
|
|
// Either no Book of Summons, or variable not set.
|
|
// Go with the defaults.
|
|
int nRoll = d4();
|
|
if(GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER))
|
|
{
|
|
switch (nRoll)
|
|
{
|
|
case 1:
|
|
sResRef == "wog_s_airelder01";
|
|
break;
|
|
|
|
case 2:
|
|
sResRef == "wog_s_waterpr001";
|
|
break;
|
|
|
|
case 3:
|
|
sResRef == "WoG_S_EARTHPRINCE";
|
|
break;
|
|
|
|
case 4:
|
|
sResRef == "wog_s_fireprn001";
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (nRoll)
|
|
{
|
|
case 1:
|
|
sResRef == "WoG_S_AIRELDER";
|
|
break;
|
|
|
|
case 2:
|
|
sResRef == "WoG_S_WATELDER";
|
|
break;
|
|
|
|
case 3:
|
|
sResRef == "WoG_S_EARTHELD";
|
|
break;
|
|
|
|
case 4:
|
|
sResRef == "WoG_S_FIREELDER";
|
|
break;
|
|
|
|
}
|
|
}
|
|
float fDuration;
|
|
if (nSummon > 0)
|
|
{ fDuration = RoundsToSeconds(nDuration); }
|
|
else
|
|
{ fDuration = HoursToSeconds(nDuration); }
|
|
|
|
effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1);
|
|
effect eSummon = EffectSummonCreature(sResRef);
|
|
//Apply the VFX impact and summon effect
|
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, GetSpellTargetLocation());
|
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), fDuration);
|
|
}
|
|
}
|
|
|