#include "a_const_include"
#include "nw_i0_spells"
void main()
{
object oCaster = GetAreaOfEffectCreator();
object oTarget = GetFirstInPersistentObject();
int nDC = 20;
int nDam = d3();
int nCon = d2();
while (GetIsObjectValid(oTarget))
{
if(GetIsEnemy(oTarget, oCaster) && oTarget != oCaster)
{
SendMessageToPC(GetFirstPC(), "HB Fired " + GetName(oTarget));
if(spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, oCaster))
{
SendMessageToPC(GetFirstPC(), "HB Is Target " + GetName(oTarget));
SignalEvent(oTarget, EventSpellCastAt(oCaster, Spell_Ability_Blood_Drain));
if(!MySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_DISEASE))
{
SendMessageToPC(GetFirstPC(), GetName(oTarget) + " HB Is Dazed");
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectDazed(), oTarget, RoundsToSeconds(d4()));
}
effect eSwarm = EffectDamage(nDam, DAMAGE_TYPE_SLASHING);
effect eCon = EffectAbilityDecrease(ABILITY_CONSTITUTION, nCon);
effect eLink = EffectLinkEffects(eCon, eSwarm);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eSwarm, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eCon, oTarget);
SendMessageToPC(GetFirstPC(), GetName(oTarget) + " HB Was Drained " + IntToString(nCon) + " Con");
}
}
oTarget = GetNextInPersistentObject();
}
}