/* -*- LPC -*- */ /* * $Locker: $ * $Id: alcohol.c,v 1.1 1998/01/06 04:21:18 ceres Exp $ * $Log: alcohol.c,v $ * Revision 1.1 1998/01/06 04:21:18 ceres * Initial revision * */ /** * This is the effect skelton docs. This effect * has a classification of "poison.addictive". * <p> * Describe the arguments in here. * @classification poison.addictive * @see help::effects */ inherit "/std/effects/basic"; /* It's alcohol. It gets you drunk. */ void create(){ set_boundaries( ({ -7, 2 }), ({ -2, 5 }) ); } int query_pass_through(int *coord){ return 40; } int *query_coordinate(){ return ({ -4, 3 }); } void action_drunk( object ob, int *coord, int quantity ) { int total, effect; string desc; int old_vol; total = distance_within_region(coord) * 100 / 6; effect = (400 + random(300)) * total * quantity / 100 / 100; old_vol = ob->query_volume(0); ob->adjust_volume(0,effect); switch (effect) { case 0..100: desc = "ever so slightly dizzy"; break; case 101..200: desc = "slightly dizzy"; break; case 201..300: desc = "noticeably drunk"; break; case 301..400: desc = "significantly drunk"; break; case 401..600: desc = "very drunk"; break; case 601..800: desc = "a great deal drunk"; break; default: /* this effect is not intended to effect > 800 drunk points */ desc = "so drunk your brain has turned to coffee"; break; } tell_object(ob, "You feel " + desc + ".\n"); } void action_smell( object ob, int *coord, int quantity ) { tell_object(ob, "Your nose tingles pleasantly.\n"); }