PRC8/trunk/users/Tenjac/spells/sp_lauracold.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04:00

67 lines
2.0 KiB
Plaintext

//:://////////////////////////////////////////////
//:: Name Lesser Aura of Cold
//:: FileName sp_lauracold.nss
//:://////////////////////////////////////////////
/** @file Transmutation [Cold]
Level: Cleric 3, Druid 3, Disciple of Thrym 3, Paladin 4, Ranger 4,
Components: V, S, DF,
Casting Time: 1 standard action
Range: 5 ft.
Area: 5-ft.-radius spherical emanation, centered on you
Duration: 1 round/level (D)
Saving Throw: None
Spell Resistance: Yes
You are covered in a thin layer of white frost and frigid cold emanates from your
body, dealing 1d6 points of cold damage at the start of your round to each creature
within 5 feet.
*/
//:://////////////////////////////////////////////
//:: Created By: Tenjac
//:: Created On: 6/8/2022
//:://////////////////////////////////////////////
#include "prc_sp_func"
#include "prc_add_spell_dc"
void DoCold(object oPC, int nRounds)
{
if(nRounds > 0)
{
location lLoc=GetLocation(oPC);
//Do the AoE
object oTarget = MyFirstObjectInShape(SHAPE_SPHERE,FeetToMeters(5.0), lLoc);
{
while(GetIsObjectValid(oTarget))
{
if(oTarget != oPC)
{
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(d6(1), DAMAGE_TYPE_COLD), oTarget);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_FROST_S), oTarget);
}
oTarget = MyNextObjectInShape(SHAPE_SPHERE, FeetToMeters(5.0), lLoc);
}
}
nRounds--;
DelayCommand(6.0f, DoCold(oPC, nRounds));
}
}
void main()
{
if(!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
object oPC = OBJECT_SELF;
int nCasterLvl = PRCGetCasterLevel(oPC);
float fDur = RoundsToSeconds(nCasterLvl);
int nMetaMagic = PRCGetMetaMagicFeat();
if(nMetaMagic & METAMAGIC_EXTEND) fDur += fDur;
int nRounds = nCasterLvl;
if(nMetaMagic & METAMAGIC_EXTEND) nRounds += nRounds;
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_AURA_PULSE_BLUE_WHITE), oPC, fDur);
DoCold(oPC, nRounds);
PRCSetSchool();
}