Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
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);
|
|
}
|
|
}
|
|
|