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.
40 lines
1.7 KiB
Plaintext
40 lines
1.7 KiB
Plaintext
// Outdoor heatstroke
|
|
void Heat();
|
|
|
|
#include "prc_inc_spells"
|
|
|
|
void Heat()
|
|
{
|
|
effect eImpact = EffectVisualEffect(/*VFX_IMP_DUST_EXPLOSION*/VFX_IMP_SUNSTRIKE);
|
|
object oTarget = GetFirstObjectInArea(GetObjectByTag("bdd_basinrim"));
|
|
while (GetIsObjectValid(oTarget))
|
|
{
|
|
if (PRCGetIsAliveCreature(oTarget) && !GetHasFeat(FEAT_HEAT_ENDURANCE, oTarget) && GetIsPC(oTarget))
|
|
{
|
|
int nDC = 15 + GetLocalInt(oTarget, "HeatstrokeCount");
|
|
if (GetBaseAC(GetItemInSlot(INVENTORY_SLOT_CHEST, oTarget)) > 0) nDC += 4;
|
|
|
|
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NONE))
|
|
{
|
|
effect eHeat = EffectFatigue();
|
|
if (GetLocalInt(oTarget, "Fatigued")) eHeat = EffectExhausted();
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(d4()), oTarget);
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHeat, oTarget, HoursToSeconds(12));
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oTarget);
|
|
SetLocalInt(oTarget, "Fatigued", TRUE);
|
|
AssignCommand(oTarget, SpeakString("The blazing sun saps energy from your limbs. Best to find shelter, and quickly."));
|
|
}
|
|
SetLocalInt(oTarget, "HeatstrokeCount", GetLocalInt(oTarget, "HeatstrokeCount")+1);
|
|
}
|
|
//Select the next target within the spell shape.
|
|
oTarget = GetNextObjectInArea(GetObjectByTag("bdd_basinrim"));
|
|
}
|
|
|
|
DelayCommand(90.0, Heat());
|
|
}
|
|
|
|
void main()
|
|
{
|
|
if (!GetLocalInt(GetModule(), "BDDHeat")) Heat();
|
|
SetLocalInt(GetModule(), "BDDHeat", TRUE);
|
|
} |