52 lines
1.6 KiB
Plaintext
52 lines
1.6 KiB
Plaintext
|
/**
|
||
|
* 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));
|
||
|
}
|