/* Do not remove the headers from this file! see /USAGE for more info. */ inherit "transient_effect"; int alcohol_strength = 1; //:FUNCTION set_alcohol_strength //Sets the strength of the alcohol, determines how much healing //and loss of stamina it provides. void set_alcohol_strength(int i) { alcohol_strength = i; } int query_alcohol_strength() { return alcohol_strength; } void add_alcohol_strength(int i) { if ((alcohol_strength+i)<=0) alcohol_strength = 0; alcohol_strength+=i; } void setup() { set_effect_duration(10); set_effect_type("drunk"); set_effect_name("alcohol"); } void do_effect(object ob) { int action = random(20); ob->stun_us(random(alcohol_strength)); ob->heal_us(random(alcohol_strength)); if (!random(2)) { switch (action) { case 0: ob->force_game_command("trip", 1); break; case 1: ob->force_game_command("stumble", 1); break; case 2: ob->simple_action("$N $vdrool."); break; case 3: ob->force_game_command("appear dizzy", 1); break; case 4: ob->force_game_command("burp", 1); break; case 5: ob->force_game_command("hiccup", 1); break; case 6: ob->force_game_command("puke", 1); break; default: break; } } } void another_effect_exists(object existing_effect) { // Add alcohol strength to existing alcohol effect, then... existing_drunkeness->add_alcohol_strength(alcohol_strength); // Remove us, as the existing effect will now carry on with our // strength added to it (duration is added by the transient_effect.c // inheritable). this_object()->remove(); }