#include "prc_inc_clsfunc"

void main()
{
object oPC = OBJECT_SELF;

if(GetHasFreeHand(oPC) == FALSE ||
   GetLocalInt(oPC, "DRUNKEN_MASTER_NUMBER_OF_BOTTLES_BEING_USED") >= 2)
    {
    FloatingTextStringOnCreature("You do not have a free hand to use the bottle with", oPC);
    return;
    }

if(UseBottle(oPC) == FALSE)
    {
    FloatingTextStringOnCreature("You do not have an empty bottle in your inventory", oPC);
    return;
    }

effect eSlash = EffectDamageIncrease(DAMAGE_BONUS_1d4, DAMAGE_TYPE_SLASHING);
effect eBludg = EffectDamageIncrease(DAMAGE_BONUS_1d6, DAMAGE_TYPE_BLUDGEONING);

switch(d3())
    {
    case 1:
      {
      // The bottle breaks on the next attack:
      ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSlash, oPC, RoundsToSeconds(2));
      DelayCommand(RoundsToSeconds(2), SetLocalInt(oPC, "DRUNKEN_MASTER_NUMBER_OF_BOTTLES_BEING_USED", GetLocalInt(oPC, "DRUNKEN_MASTER_NUMBER_OF_BOTTLES_BEING_USED") - 1));
      DelayCommand(RoundsToSeconds(2), FloatingTextStringOnCreature("The bottle just shattered", oPC));
      break;}
    case 2:
      {
      // The Bottle hits on the next attack but doesn't break until the 2nd attack:
      ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBludg, oPC, RoundsToSeconds(4));
      DelayCommand(RoundsToSeconds(2), ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSlash, oPC, RoundsToSeconds(2)));
      DelayCommand(RoundsToSeconds(4), SetLocalInt(oPC, "DRUNKEN_MASTER_NUMBER_OF_BOTTLES_BEING_USED", GetLocalInt(oPC, "DRUNKEN_MASTER_NUMBER_OF_BOTTLES_BEING_USED") - 1));
      DelayCommand(RoundsToSeconds(4), FloatingTextStringOnCreature("The bottle just shattered", oPC));
      break;}
    case 3:
      {
      // The Bottle hits on the next 2 attacks but doesn't break until the 3rd attack:
      ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBludg, oPC, RoundsToSeconds(6));
      DelayCommand(RoundsToSeconds(4), ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSlash, oPC, RoundsToSeconds(2)));
      DelayCommand(RoundsToSeconds(6), SetLocalInt(oPC, "DRUNKEN_MASTER_NUMBER_OF_BOTTLES_BEING_USED", GetLocalInt(oPC, "DRUNKEN_MASTER_NUMBER_OF_BOTTLES_BEING_USED") - 1));
      DelayCommand(RoundsToSeconds(6), FloatingTextStringOnCreature("The bottle just shattered", oPC));
      break;}
    }

FloatingTextStringOnCreature("Bottle Equiped", oPC);
SetLocalInt(oPC, "DRUNKEN_MASTER_NUMBER_OF_BOTTLES_BEING_USED", GetLocalInt(oPC, "DRUNKEN_MASTER_NUMBER_OF_BOTTLES_BEING_USED") + 1);
}