PRC8/nwn/nwnprc/trunk/scripts/prc_dm_drnkdemon.nss

44 lines
1.8 KiB
Plaintext
Raw Normal View History

#include "prc_alterations"
void main()
{
object oPC = OBJECT_SELF;
float fSec = HoursToSeconds(1);
// A Drunken Master has had a drink. Add effects:
effect eStr = EffectAbilityIncrease(ABILITY_STRENGTH, 1);
effect eCns = EffectAbilityIncrease(ABILITY_CONSTITUTION, 1);
effect eVFX2 = EffectVisualEffect(VFX_DUR_BLUR);
//save info prior to lowering effects:
int nReflexSave = GetReflexSavingThrow(oPC);
int nTumble = GetSkillRank(SKILL_TUMBLE);
int nDexMod = GetAbilityModifier(ABILITY_DEXTERITY);
int nRSAfter, nTumbleAfter, nDexModAfter;
//Apply the major bonuses:
ApplyAbilityDamage(oPC, ABILITY_WISDOM, 1, DURATION_TYPE_TEMPORARY, TRUE, fSec);
ApplyAbilityDamage(oPC, ABILITY_INTELLIGENCE, 1, DURATION_TYPE_TEMPORARY, TRUE, fSec);
ApplyAbilityDamage(oPC, ABILITY_DEXTERITY, 1, DURATION_TYPE_TEMPORARY, TRUE, fSec);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStr, oPC, fSec);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCns, oPC, fSec);
//Apply VFX's
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVFX2, oPC, fSec);
//run checks to see if Reflex Saving Throw, Tumble and Dex Modifier have been changed:
nRSAfter = GetReflexSavingThrow(oPC);
nTumbleAfter = GetSkillRank(SKILL_TUMBLE);
nDexModAfter = GetAbilityModifier(ABILITY_DEXTERITY);
if(nDexModAfter < nDexMod)
{ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACIncrease(nDexMod - nDexModAfter), oPC, fSec);}
if(nRSAfter < nReflexSave)
{ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectSavingThrowIncrease(SAVING_THROW_REFLEX, nReflexSave - nRSAfter), oPC, fSec);}
if(nTumbleAfter < nTumble)
{ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectSkillIncrease(SKILL_TUMBLE, nTumble - nTumbleAfter), oPC, fSec);}
FloatingTextStringOnCreature("You are Drunk Like a Demon", oPC);
}