Aschbourne_PRC8/_module/nss/nw_s1_trogstinka.nss
Jaysyn904 5d27edafba Major update
Fixed CCOH, Fixed starting GP, Fixed DMFI languages, Fix cep weapon appearances, Fixed new player start up system.  Added PC deleter.  Added ACP 4.1.  Full compile.  Updated release archive.
2024-09-16 23:40:48 -04:00

67 lines
2.4 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Aura of Troglodyte Stench On Enter
//:: nw_s1_trogstinkA.nss
//:: Copyright (c) 2004 Bioware Corp.
//:://////////////////////////////////////////////
/*
Objects entering the Stench must make a fortitude
saving throw (DC 13) or suffer 1D6 points of
Strength Ability Damage.
*/
//:://////////////////////////////////////////////
//:: Created By: Craig Welburn
//:: Created On: Nov 6, 2004
//:://////////////////////////////////////////////
#include "X0_I0_SPELLS"
//:: Modified to be CON based, like PnP - Jaysyn
void main()
{
//:: Declare major variables
object oTarget = GetEnteringObject();
object oSource = GetAreaOfEffectCreator();
int nHD = GetHitDice(oSource);
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oSource);
int nDC = 10 +nCONMod+ (nHD/2);
//:: Declare all the required effects
effect eVis1;
effect eVis2;
effect eStrenghDrain;
if(!GetHasSpellEffect(SPELLABILITY_TROGLODYTE_STENCH, oTarget))
{
// Is the target a valid creature
if((GetIsEnemy(oTarget, oSource))
&& (GetIsReactionTypeFriendly(oTarget, oSource) != TRUE))
{
// Notify the target that they are being attacked
SignalEvent(oTarget, EventSpellCastAt(oSource, AOE_MOB_TROGLODYTE_STENCH));
// Prepare the visual effect for the casting and saving throw
eVis1 = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
eVis2 = EffectVisualEffect(VFX_IMP_FORTITUDE_SAVING_THROW_USE);
// Create the 1d6 strength reduction effect
// and make it supernatural so it can be dispelled
eStrenghDrain = EffectAbilityDecrease(ABILITY_STRENGTH, d6());
eStrenghDrain = SupernaturalEffect(eStrenghDrain);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget);
// Make a Fortitude saving throw, DC 13 and apply the effect if it fails
if (!MySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_POISON, oSource))
{
if (GetIsImmune(oTarget, IMMUNITY_TYPE_POISON) == FALSE)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis1, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStrenghDrain, oTarget, RoundsToSeconds(10));
}
}
}
}
}