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.
50 lines
1.9 KiB
Plaintext
50 lines
1.9 KiB
Plaintext
/*
|
|
11/4/20 by Stratovarius
|
|
|
|
Frost Folk Ice Blast
|
|
|
|
Frost folk can produce a 20-foot cone of icy
|
|
mist from their left eye. This deals 2d6 points of cold damage
|
|
to all creatures within the area (Reflex save
|
|
DC 13 half). The save DC is Constitution-based. Once a frost folk uses his ice blast,
|
|
he must wait 1d4 rounds before he can
|
|
use this ability again
|
|
*/
|
|
|
|
#include "prc_inc_function"
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
|
|
if (!GetLocalInt(oPC, "FrostFolkDelay"))
|
|
{
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
int nDC = 10 + GetHitDice(oPC)/2 + GetAbilityModifier(ABILITY_CONSTITUTION, oPC);
|
|
effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
|
|
//Get the first target in the radius around the caster
|
|
oTarget = MyFirstObjectInShape(SHAPE_SPELLCONE, FeetToMeters(20.0), PRCGetSpellTargetLocation(), TRUE, OBJECT_TYPE_CREATURE);
|
|
while(GetIsObjectValid(oTarget))
|
|
{
|
|
if(oTarget != oPC)
|
|
{
|
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId()));
|
|
int nDamage = d6(2);
|
|
//Run the damage through the various reflex save and evasion feats
|
|
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_COLD);
|
|
if(nDamage > 0)
|
|
{
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDamage, DAMAGE_TYPE_COLD), oTarget);
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
|
}
|
|
}
|
|
//Get the next target in the specified area around the caster
|
|
oTarget = MyNextObjectInShape(SHAPE_SPELLCONE, FeetToMeters(20.0), PRCGetSpellTargetLocation(), TRUE, OBJECT_TYPE_CREATURE);
|
|
}
|
|
|
|
SetLocalInt(oPC, "FrostFolkDelay", TRUE);
|
|
float fDelay = RoundsToSeconds(d4());
|
|
DelayCommand(fDelay, DeleteLocalInt(oPC, "FrostFolkDelay"));
|
|
DelayCommand(fDelay, FloatingTextStringOnCreature("You may use your Ice Blast again", oPC));
|
|
}
|
|
} |