#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);
}