inherit "/std/effects/basic"; /* Hit point reducing poison */ void create() { set_boundaries( ({ 0, -60 }), ({ 30, -20 }) ); } int backdrop() { return 1; } query_attrs( coord ) { int total, intens; total = distance_within_region( coord ); intens = total * 2; if( intens > 100 ) intens = 100; return({ 5, 95, ({ }), ({ ({ "sparkling purple", intens }) }), ({ ({ "wax", intens / 2 }) }), ({ ({ "sugar", intens }), ({ "wax", intens / 2 }) }) }); } action_drunk( ob, coord, quantity ) { int total, dam; string obmess, roommess; total = distance_within_region( coord ); dam = total * quantity; switch( dam ) { case 0..200: obmess = "You feel a bit sick.\n"; roommess = ob->query_cap_name() + " looks a little ill.\n"; break; case 201..300: obmess = "You feel a sharp pain, and clench your teeth.\n"; roommess = ob->query_cap_name() + "clenches " + ob->query_possessive() + " teeth in agony.\n"; "teeth in agony.\n"; break; case 301..400: obmess = "You feel like someone has punched you visciously in the stomach.\n"; roommess = ob->query_cap_name() + " nearly collapses.\n"; break; case 401..1000: obmess = "You collapse and go very pale.\n"; roommess = ob->query_cap_name() + " collapses and goes very pale.\n"; break; default: obmess = "You reel and collapse with all your health fleeing your body.\n"; roommess = ob->query_cap_name() + " collapses with a face palid as the " + "face death would have if death had a face.\n"; break; } tell_object( ob, obmess ); tell_room( environment( ob ), roommess, ob ); ob->adjust_hp( -dam ); ob->reset_all(); return; } action_taste( ob, coord, quantity ) { if( quantity >= 1 ) tell_object( ob, "Your tongue feels numb.\n" ); }