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.
69 lines
2.3 KiB
Plaintext
69 lines
2.3 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Pyrotechnics: Smoke: On Enter
|
|
//:: Spell FileName PHS_S_PyrotechA
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
Uses Darkness invisibility for the ineffective through the cloud part.
|
|
|
|
Defaults to fireworks. No sub-dial.
|
|
|
|
The impact is easy - 1d4 + 1 rounds of blindness, SR + Will negates.
|
|
|
|
The smoke cloud (1 round/level) applies the Darkness, and Darkness
|
|
invisibility.
|
|
|
|
Every HB may apply the -4 penalties to strength and dexterity.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "PHS_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
// Check AOE status
|
|
if(!PHS_CheckAOECreator()) return;
|
|
|
|
// Note: Set plot flag to TRUE
|
|
// * No dispelling
|
|
SetPlotFlag(OBJECT_SELF, TRUE);
|
|
|
|
// Declare major variables
|
|
object oTarget = GetEnteringObject();
|
|
object oCaster = GetAreaOfEffectCreator();
|
|
int nSpellSaveDC = PHS_GetAOESpellSaveDC();
|
|
|
|
// Declare major effects
|
|
effect eBlind = EffectDarkness();
|
|
effect eInvis = EffectInvisibility(INVISIBILITY_TYPE_DARKNESS);
|
|
|
|
// Link effects
|
|
effect eLink = EffectLinkEffects(eInvis, eBlind);
|
|
|
|
// Also declare the -4 strength and dexterity
|
|
effect eStrength = EffectAbilityDecrease(ABILITY_STRENGTH, 4);
|
|
effect eDexterity = EffectAbilityDecrease(ABILITY_DEXTERITY, 4);
|
|
effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
|
|
|
|
effect eAbility = EffectLinkEffects(eStrength, eDexterity);
|
|
eAbility = EffectLinkEffects(eAbility, eVis);
|
|
|
|
// Fire cast spell at event for the target
|
|
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_PYROTECHNICS);
|
|
|
|
// Apply effects
|
|
PHS_AOE_OnEnterEffects(eLink, oTarget, PHS_SPELL_PYROTECHNICS);
|
|
|
|
// Check if they have the ability decreases applied
|
|
if(!PHS_GetHasEffectFromSpell(EFFECT_TYPE_ABILITY_DECREASE, oTarget, PHS_SPELL_PYROTECHNICS, DURATION_TYPE_PERMANENT))
|
|
{
|
|
// We do an Fortitude save
|
|
if(!PHS_SavingThrow(SAVING_THROW_FORT, oTarget, nSpellSaveDC, SAVING_THROW_TYPE_NONE, oCaster))
|
|
{
|
|
// If failed, we apply permanently
|
|
PHS_ApplyPermanent(oTarget, eAbility);
|
|
}
|
|
}
|
|
}
|