forked from Jaysyn/PRC8
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.
54 lines
1.9 KiB
Plaintext
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);
|
|
}
|
|
}
|
|
|