Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

54 lines
1.9 KiB
Plaintext

/*
Tenebrous Apostate - Blast of the Void
When you attain 5th level, you can use a turn or rebuke attempt to deal 1d8 points of damage per effective
turning level to every living creature within a 30-foot cone. This ability is usable once per day.
Strat 05/03/21
*/
#include "bnd_inc_bndfunc"
#include "prc_inc_turning"
void BlastVoid(object oBinder)
{
int nTurnLevel = GetTurningClassLevel(oBinder, SPELL_TURN_UNDEAD);
location lTarget = PRCGetSpellTargetLocation();
float fRange = FeetToMeters(30.0);
vector vOrigin = GetPosition(oBinder);
vector vTarget = GetPositionFromLocation(lTarget);
float fAngle = acos((vTarget.x - vOrigin.x) / GetDistanceBetweenLocations(GetLocation(oBinder), lTarget));
DrawLinesInACone(nTurnLevel, fRange, GetLocation(oBinder), fAngle, DURATION_TYPE_INSTANT, VFX_IMP_NEGBLAST_ENERGY, 0.0f, 20, 1.5f);
object oTarget = MyFirstObjectInShape(SHAPE_SPELLCONE, fRange, lTarget, FALSE, OBJECT_TYPE_CREATURE);
while(GetIsObjectValid(oTarget))
{
if(oTarget != oBinder && PRCGetIsAliveCreature(oTarget))
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_NEGBLAST_ENERGY), oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(d8(nTurnLevel), DAMAGE_TYPE_DIVINE), oTarget);
}
oTarget = MyNextObjectInShape(SHAPE_SPELLCONE, fRange, lTarget, FALSE, OBJECT_TYPE_CREATURE);
}
}
void main()
{
object oBinder = OBJECT_SELF;
if(BindAbilCooldown(oBinder, VESTIGE_TENEBROUS_TURN, VESTIGE_TENEBROUS))
BlastVoid(oBinder);
else if(GetHasFeat(FEAT_TURN_UNDEAD, oBinder))
{
DecrementRemainingFeatUses(oBinder, FEAT_TURN_UNDEAD);
BlastVoid(oBinder);
}
else
{
SpeakStringByStrRef(40550);
IncrementRemainingFeatUses(oBinder, FEAT_TENEBROUS_BLAST_VOID);
}
}