/**
 * Dirgesinger: Song of Awakening
 * Stratovarius
 */

#include "prc_inc_clsfunc"

void main()
{
    string sSummon;
    object oCreature;
    object oPC = OBJECT_SELF;
    int nHD = GetHitDice(oPC);

    if (!GetHasFeat(FEAT_BARD_SONGS, oPC))
    {
        FloatingTextStrRefOnCreature(85587,oPC); // no more bardsong uses left
        return;
    }
    
    if(GetHasSpellEffect(GetSpellId()))
    {
        FloatingTextStringOnCreature("Only one awakened undead allowed at a time", oPC); 
        return;
    }    

    DecrementRemainingFeatUses(oPC, FEAT_BARD_SONGS);

    if (PRCGetHasEffect(EFFECT_TYPE_SILENCE,oPC))
    {
        FloatingTextStrRefOnCreature(85764,oPC); // not useable when silenced
        return;
    }

    if (nHD >= 34)        sSummon = "prc_sum_dbl";
    else if (nHD >= 31)   sSummon = "prc_sum_dk";
    else if (nHD >= 28)   sSummon = "prc_sum_vamp2";
    else if (nHD >= 25)   sSummon = "prc_sum_bonet";
    else if (nHD >= 22)   sSummon = "prc_sum_wight";
    else if (nHD >= 19)   sSummon = "prc_sum_vamp1";
    else if (nHD >= 16)   sSummon = "prc_sum_grav";
    else if (nHD >= 13)   sSummon = "prc_tn_fthug";
    else if (nHD >= 10)   sSummon = "prc_sum_mohrg";

    effect eSummon = EffectSummonCreature(sSummon, VFX_FNF_SUMMON_UNDEAD);
    //Apply summon effect and VFX impact.
    MultisummonPreSummon();
    //CorpseCrafter(oPC, oCreature);
    ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, PRCGetSpellTargetLocation(), RoundsToSeconds(10));
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE), oPC, RoundsToSeconds(10));
}