//::///////////////////////////////////////////////
//:: Dispater Summon
//:: prc_disp_summ
//:://////////////////////////////////////////////
/*
    Summons an Eryines
    At level 9, Summons 1d4
*/
//:://////////////////////////////////////////////

#include "prc_inc_spells"

void main()
{
    //Declare major variables
    int nRoll = d4();
    object oStone;
    int nDuration = 15;
    float fDelay = 3.0;
    effect eSummon = EffectSummonCreature("erinyes",VFX_FNF_SUMMON_GATE, fDelay);
    effect eSummon2 = EffectSummonCreature("erinyes", VFX_NONE, fDelay, 0);
    if (GetLevelByClass(CLASS_TYPE_DISPATER, OBJECT_SELF) < 9) nRoll = 1;

    if(nRoll == 4)
    {
        MultisummonPreSummon(OBJECT_SELF, TRUE);
        oStone = CreateObject(OBJECT_TYPE_ITEM, "summoningstone", GetSpellTargetLocation());
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), TurnsToSeconds(nDuration));
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon2, GetSpellTargetLocation(), TurnsToSeconds(nDuration));
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon2, GetSpellTargetLocation(), TurnsToSeconds(nDuration));
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon2, GetSpellTargetLocation(), TurnsToSeconds(nDuration));
        DestroyObject(oStone);
    }
    else if(nRoll == 3)
    {
        MultisummonPreSummon(OBJECT_SELF, TRUE);
        oStone = CreateObject(OBJECT_TYPE_ITEM, "summoningstone", GetSpellTargetLocation());
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), TurnsToSeconds(nDuration));
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon2, GetSpellTargetLocation(), TurnsToSeconds(nDuration));
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon2, GetSpellTargetLocation(), TurnsToSeconds(nDuration));
        DestroyObject(oStone);
    }
    else if(nRoll == 2)
    {
        MultisummonPreSummon(OBJECT_SELF, TRUE);
        oStone = CreateObject(OBJECT_TYPE_ITEM, "summoningstone", GetSpellTargetLocation());
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), TurnsToSeconds(nDuration));
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon2, GetSpellTargetLocation(), TurnsToSeconds(nDuration));
        DestroyObject(oStone);
    }    
    else if(nRoll == 1)
    {
        MultisummonPreSummon(OBJECT_SELF);
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), TurnsToSeconds(nDuration));
    }
}