skylib_fluffos_v3/
skylib_fluffos_v3/bin/
skylib_fluffos_v3/bin/db/
skylib_fluffos_v3/fluffos-2.9-ds2.04/
skylib_fluffos_v3/fluffos-2.9-ds2.04/ChangeLog.old/
skylib_fluffos_v3/fluffos-2.9-ds2.04/Win32/
skylib_fluffos_v3/fluffos-2.9-ds2.04/compat/
skylib_fluffos_v3/fluffos-2.9-ds2.04/compat/simuls/
skylib_fluffos_v3/fluffos-2.9-ds2.04/include/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/clone/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/command/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/data/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/etc/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/include/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/inherit/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/inherit/master/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/log/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/single/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/single/tests/compiler/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/single/tests/efuns/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/single/tests/operators/
skylib_fluffos_v3/fluffos-2.9-ds2.04/testsuite/u/
skylib_fluffos_v3/fluffos-2.9-ds2.04/tmp/
skylib_fluffos_v3/fluffos-2.9-ds2.04/windows/
skylib_fluffos_v3/mudlib/
skylib_fluffos_v3/mudlib/cmds/
skylib_fluffos_v3/mudlib/cmds/admin/
skylib_fluffos_v3/mudlib/cmds/guild-race/
skylib_fluffos_v3/mudlib/cmds/living/broken/
skylib_fluffos_v3/mudlib/cmds/player/group_cmds/
skylib_fluffos_v3/mudlib/cmds/playtester/
skylib_fluffos_v3/mudlib/d/admin/
skylib_fluffos_v3/mudlib/d/admin/room/
skylib_fluffos_v3/mudlib/d/admin/room/we_care/
skylib_fluffos_v3/mudlib/d/admin/save/
skylib_fluffos_v3/mudlib/d/admin/text/
skylib_fluffos_v3/mudlib/d/learning/TinyTown/buildings/
skylib_fluffos_v3/mudlib/d/learning/TinyTown/map/
skylib_fluffos_v3/mudlib/d/learning/TinyTown/roads/
skylib_fluffos_v3/mudlib/d/learning/chars/
skylib_fluffos_v3/mudlib/d/learning/functions/
skylib_fluffos_v3/mudlib/d/learning/handlers/
skylib_fluffos_v3/mudlib/d/learning/help_topics/
skylib_fluffos_v3/mudlib/d/learning/help_topics/npcs/
skylib_fluffos_v3/mudlib/d/learning/help_topics/objects/
skylib_fluffos_v3/mudlib/d/learning/help_topics/rcs_demo/
skylib_fluffos_v3/mudlib/d/learning/help_topics/rcs_demo/RCS/
skylib_fluffos_v3/mudlib/d/learning/help_topics/rooms/
skylib_fluffos_v3/mudlib/d/learning/help_topics/rooms/crowd/
skylib_fluffos_v3/mudlib/d/learning/help_topics/rooms/situations/
skylib_fluffos_v3/mudlib/d/learning/save/
skylib_fluffos_v3/mudlib/d/learning/school/
skylib_fluffos_v3/mudlib/d/learning/school/add_sc/
skylib_fluffos_v3/mudlib/d/learning/school/characters/
skylib_fluffos_v3/mudlib/d/learning/school/general/
skylib_fluffos_v3/mudlib/d/learning/school/getting-started/
skylib_fluffos_v3/mudlib/d/learning/school/getting-started/basic_commands/
skylib_fluffos_v3/mudlib/d/learning/school/getting-started/edtutor/
skylib_fluffos_v3/mudlib/d/learning/school/getting-started/unix_tutor/
skylib_fluffos_v3/mudlib/d/learning/school/items/
skylib_fluffos_v3/mudlib/d/learning/school/npc_school/
skylib_fluffos_v3/mudlib/d/learning/school/room_school/
skylib_fluffos_v3/mudlib/d/learning/school/room_school/room_basic/
skylib_fluffos_v3/mudlib/d/learning/school/room_school/situations/
skylib_fluffos_v3/mudlib/d/learning/school/room_school/terrain_tutor/
skylib_fluffos_v3/mudlib/d/learning/text/
skylib_fluffos_v3/mudlib/d/liaison/
skylib_fluffos_v3/mudlib/d/mudlib/
skylib_fluffos_v3/mudlib/d/mudlib/changes/
skylib_fluffos_v3/mudlib/d/playtesters/
skylib_fluffos_v3/mudlib/d/playtesters/effects/
skylib_fluffos_v3/mudlib/d/playtesters/handlers/
skylib_fluffos_v3/mudlib/d/playtesters/items/
skylib_fluffos_v3/mudlib/d/sage/
skylib_fluffos_v3/mudlib/doc/
skylib_fluffos_v3/mudlib/doc/creator/
skylib_fluffos_v3/mudlib/doc/driver/
skylib_fluffos_v3/mudlib/doc/driver/efuns/arrays/
skylib_fluffos_v3/mudlib/doc/driver/efuns/buffers/
skylib_fluffos_v3/mudlib/doc/driver/efuns/calls/
skylib_fluffos_v3/mudlib/doc/driver/efuns/compile/
skylib_fluffos_v3/mudlib/doc/driver/efuns/filesystem/
skylib_fluffos_v3/mudlib/doc/driver/efuns/floats/
skylib_fluffos_v3/mudlib/doc/driver/efuns/functions/
skylib_fluffos_v3/mudlib/doc/driver/efuns/general/
skylib_fluffos_v3/mudlib/doc/driver/efuns/mappings/
skylib_fluffos_v3/mudlib/doc/driver/efuns/mixed/
skylib_fluffos_v3/mudlib/doc/driver/efuns/mudlib/
skylib_fluffos_v3/mudlib/doc/driver/efuns/numbers/
skylib_fluffos_v3/mudlib/doc/driver/efuns/parsing/
skylib_fluffos_v3/mudlib/doc/login/
skylib_fluffos_v3/mudlib/doc/lpc/basic_manual/
skylib_fluffos_v3/mudlib/doc/lpc/intermediate/
skylib_fluffos_v3/mudlib/doc/new/add_command/
skylib_fluffos_v3/mudlib/doc/new/events/
skylib_fluffos_v3/mudlib/doc/new/handlers/
skylib_fluffos_v3/mudlib/doc/new/living/race/
skylib_fluffos_v3/mudlib/doc/new/living/spells/
skylib_fluffos_v3/mudlib/doc/new/object/
skylib_fluffos_v3/mudlib/doc/new/player/
skylib_fluffos_v3/mudlib/doc/new/room/guild/
skylib_fluffos_v3/mudlib/doc/new/room/outside/
skylib_fluffos_v3/mudlib/doc/new/room/storeroom/
skylib_fluffos_v3/mudlib/doc/object/
skylib_fluffos_v3/mudlib/doc/playtesters/
skylib_fluffos_v3/mudlib/doc/policy/
skylib_fluffos_v3/mudlib/doc/weapons/
skylib_fluffos_v3/mudlib/global/
skylib_fluffos_v3/mudlib/global/creator/
skylib_fluffos_v3/mudlib/handlers/
skylib_fluffos_v3/mudlib/include/casino/
skylib_fluffos_v3/mudlib/include/cmds/
skylib_fluffos_v3/mudlib/include/effects/
skylib_fluffos_v3/mudlib/include/npc/
skylib_fluffos_v3/mudlib/include/room/
skylib_fluffos_v3/mudlib/include/shops/
skylib_fluffos_v3/mudlib/net/daemon/
skylib_fluffos_v3/mudlib/net/daemon/chars/
skylib_fluffos_v3/mudlib/net/inherit/
skylib_fluffos_v3/mudlib/net/obj/
skylib_fluffos_v3/mudlib/net/obj/BACKUPS/
skylib_fluffos_v3/mudlib/obj/amulets/
skylib_fluffos_v3/mudlib/obj/armours/plate/
skylib_fluffos_v3/mudlib/obj/b_day/
skylib_fluffos_v3/mudlib/obj/clothes/transport/horse/
skylib_fluffos_v3/mudlib/obj/faith/symbols/
skylib_fluffos_v3/mudlib/obj/fungi/
skylib_fluffos_v3/mudlib/obj/gatherables/
skylib_fluffos_v3/mudlib/obj/instruments/
skylib_fluffos_v3/mudlib/obj/media/
skylib_fluffos_v3/mudlib/obj/misc/player_shop/
skylib_fluffos_v3/mudlib/obj/monster/godmother/
skylib_fluffos_v3/mudlib/obj/monster/transport/
skylib_fluffos_v3/mudlib/obj/rings/
skylib_fluffos_v3/mudlib/obj/scabbards/
skylib_fluffos_v3/mudlib/obj/spells/
skylib_fluffos_v3/mudlib/obj/stationery/
skylib_fluffos_v3/mudlib/obj/stationery/envelopes/
skylib_fluffos_v3/mudlib/obj/toys/
skylib_fluffos_v3/mudlib/obj/vessels/
skylib_fluffos_v3/mudlib/obj/weapons/axes/
skylib_fluffos_v3/mudlib/obj/weapons/chains/
skylib_fluffos_v3/mudlib/obj/weapons/maces/BACKUPS/
skylib_fluffos_v3/mudlib/save/autodoc/
skylib_fluffos_v3/mudlib/save/book_handler/
skylib_fluffos_v3/mudlib/save/books/history/calarien/
skylib_fluffos_v3/mudlib/save/mail/
skylib_fluffos_v3/mudlib/save/new_soul/data/
skylib_fluffos_v3/mudlib/save/parcels/
skylib_fluffos_v3/mudlib/save/playerinfo/
skylib_fluffos_v3/mudlib/save/players/d/
skylib_fluffos_v3/mudlib/save/players/s/
skylib_fluffos_v3/mudlib/save/random_names/
skylib_fluffos_v3/mudlib/save/random_names/data/
skylib_fluffos_v3/mudlib/save/terrains/
skylib_fluffos_v3/mudlib/save/terrains/tutorial_desert/
skylib_fluffos_v3/mudlib/save/terrains/tutorial_grassy_field/
skylib_fluffos_v3/mudlib/save/terrains/tutorial_mountain/
skylib_fluffos_v3/mudlib/save/todo_lists/
skylib_fluffos_v3/mudlib/secure/
skylib_fluffos_v3/mudlib/secure/cmds/admin/
skylib_fluffos_v3/mudlib/secure/cmds/lord/
skylib_fluffos_v3/mudlib/secure/config/
skylib_fluffos_v3/mudlib/secure/handlers/autodoc/
skylib_fluffos_v3/mudlib/secure/handlers/intermud/
skylib_fluffos_v3/mudlib/secure/include/global/
skylib_fluffos_v3/mudlib/secure/save/
skylib_fluffos_v3/mudlib/secure/save/handlers/
skylib_fluffos_v3/mudlib/secure/std/
skylib_fluffos_v3/mudlib/secure/std/classes/
skylib_fluffos_v3/mudlib/secure/std/modules/
skylib_fluffos_v3/mudlib/std/creator/
skylib_fluffos_v3/mudlib/std/dom/
skylib_fluffos_v3/mudlib/std/effects/
skylib_fluffos_v3/mudlib/std/effects/external/
skylib_fluffos_v3/mudlib/std/effects/fighting/
skylib_fluffos_v3/mudlib/std/effects/magic/
skylib_fluffos_v3/mudlib/std/effects/magic/BACKUPS/
skylib_fluffos_v3/mudlib/std/effects/other/BACKUPS/
skylib_fluffos_v3/mudlib/std/effects/priest/
skylib_fluffos_v3/mudlib/std/effects/room/
skylib_fluffos_v3/mudlib/std/environ/
skylib_fluffos_v3/mudlib/std/guilds/
skylib_fluffos_v3/mudlib/std/guilds/old/
skylib_fluffos_v3/mudlib/std/languages/
skylib_fluffos_v3/mudlib/std/liquids/
skylib_fluffos_v3/mudlib/std/npc/
skylib_fluffos_v3/mudlib/std/npc/goals/
skylib_fluffos_v3/mudlib/std/npc/goals/basic/
skylib_fluffos_v3/mudlib/std/npc/goals/misc/
skylib_fluffos_v3/mudlib/std/npc/plans/
skylib_fluffos_v3/mudlib/std/npc/plans/basic/
skylib_fluffos_v3/mudlib/std/npc/types/
skylib_fluffos_v3/mudlib/std/npc/types/helper/
skylib_fluffos_v3/mudlib/std/npcs/
skylib_fluffos_v3/mudlib/std/outsides/
skylib_fluffos_v3/mudlib/std/races/shadows/
skylib_fluffos_v3/mudlib/std/room/basic/BACKUPS/
skylib_fluffos_v3/mudlib/std/room/basic/topography/
skylib_fluffos_v3/mudlib/std/room/controller/
skylib_fluffos_v3/mudlib/std/room/inherit/topography/
skylib_fluffos_v3/mudlib/std/room/topography/area/
skylib_fluffos_v3/mudlib/std/room/topography/iroom/
skylib_fluffos_v3/mudlib/std/room/topography/milestone/
skylib_fluffos_v3/mudlib/std/shadows/curses/
skylib_fluffos_v3/mudlib/std/shadows/disease/
skylib_fluffos_v3/mudlib/std/shadows/fighting/
skylib_fluffos_v3/mudlib/std/shadows/healing/
skylib_fluffos_v3/mudlib/std/shadows/magic/
skylib_fluffos_v3/mudlib/std/shadows/poison/
skylib_fluffos_v3/mudlib/std/shadows/room/
skylib_fluffos_v3/mudlib/std/shops/controllers/
skylib_fluffos_v3/mudlib/std/shops/objs/
skylib_fluffos_v3/mudlib/std/shops/player_shop/
skylib_fluffos_v3/mudlib/std/socket/
skylib_fluffos_v3/mudlib/std/soul/d/
skylib_fluffos_v3/mudlib/std/soul/e/
skylib_fluffos_v3/mudlib/std/soul/i/
skylib_fluffos_v3/mudlib/std/soul/j/
skylib_fluffos_v3/mudlib/std/soul/k/
skylib_fluffos_v3/mudlib/std/soul/l/
skylib_fluffos_v3/mudlib/std/soul/n/
skylib_fluffos_v3/mudlib/std/soul/o/
skylib_fluffos_v3/mudlib/std/soul/q/
skylib_fluffos_v3/mudlib/std/soul/r/
skylib_fluffos_v3/mudlib/std/soul/u/
skylib_fluffos_v3/mudlib/std/soul/v/
skylib_fluffos_v3/mudlib/std/soul/y/
skylib_fluffos_v3/mudlib/std/soul/z/
skylib_fluffos_v3/mudlib/std/stationery/
skylib_fluffos_v3/mudlib/w/
skylib_fluffos_v3/mudlib/w/default/
skylib_fluffos_v3/mudlib/w/default/armour/
skylib_fluffos_v3/mudlib/w/default/clothes/
skylib_fluffos_v3/mudlib/w/default/item/
skylib_fluffos_v3/mudlib/w/default/npc/
skylib_fluffos_v3/mudlib/w/default/room/
skylib_fluffos_v3/mudlib/w/default/weapon/
skylib_fluffos_v3/mudlib/www/
skylib_fluffos_v3/mudlib/www/java/
skylib_fluffos_v3/mudlib/www/secure/
skylib_fluffos_v3/mudlib/www/secure/lpc/advanced/
skylib_fluffos_v3/mudlib/www/secure/lpc/intermediate/
skylib_fluffos_v3/win32/
#include <reaction.h>
void dest_me() { destruct( this_object() ); }
mixed data_return() {
  class reaction item;
  mapping data = ([ ]);

  if (!mappingp(data["GroundDeadlyNightshade"])) data["GroundDeadlyNightshade"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/600, 1.0/1000 });
  item->result = "/obj/reagents/transient_liquid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("coffee") :),
        (: $3->set_short("coffee") :),
        (: $3->set_long("This is some freshly made coffee, $amount_size$.\n")
            :),
        (: $3->set_progress_msg( ({
            ({0, 0}),
            ({0, 0}),
            ({"The liquid in the @@short:#env#@@ darkens slightly.\n", ({
                "set_medium_alias:#obj#|TransientCoffee"})}),
            ({0, 0}),
            ({0, 0})
            }) ) :),
        (: $3->set_medium_alias("PreTransientCoffee") :),
        (: $3->add_eat_effect("/std/effects/ingested/poison.c", 10) :),
        (: $3->set_duration(30) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/poison_coffee.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PoisonCoffee") :),
        (: $3->set_continuous() :),
        (: $3->set_liquid() :),
        (: $3->start_reaction() :)
    });
  data["GroundDeadlyNightshade"]["LiquidCoffee"] = item;
  if (!mappingp(data["TransientCoffee"])) data["TransientCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 0, 2500 });
  item->result = "/obj/reagents/shimmer.ob";
  item->result_amt = 1.0;
  item->message = "Something begins to happen in the @@short:#env#@@...\n";
  item->func = ({
        (: $3->set_short("dimly glowing liquid") :),
        (: $3->set_duration(20) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/panic.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PanicPotion") :),
        (: $3->start_reaction() :)
    });
  data["TransientCoffee"]["TransientPanic"] = item;
  if (!mappingp(data["TransientCoffee"])) data["TransientCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 0, 2500 });
  item->result = "/obj/reagents/shimmer.ob";
  item->result_amt = 1.0;
  item->message = "Something begins to happen in the @@short:#env#@@...\n";
  item->func = ({
        (: $3->set_short("dimly glowing liquid") :),
        (: $3->set_duration(20) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/perception.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PerceptionPotion") :),
        (: $3->start_reaction() :)
    });
  data["TransientCoffee"]["TransientPerception"] = item;
  if (!mappingp(data["GroundCoffee"])) data["GroundCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/60, 1.0/40 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("coffee") :),
        (: $3->set_short("coffee") :),
        (: $3->set_long("This is some freshly made coffee, $amount_size$.\n")
            :),
        (: $3->add_plural("coffee") :),
        (: $3->set_medium_alias("LiquidCoffee") :),
        (: tell_room($5, "The " + $2->short() + " in " + $4->the_short() +
            " turns brown.\n") :),
        (: $3->set_medium_alias("LiquidCoffee") :)
    });
  data["GroundCoffee"]["Water"] = item;
  if (!mappingp(data["GroundComfreyLeaf"])) data["GroundComfreyLeaf"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundComfreyLeaf"]["Water"] = item;
  if (!mappingp(data["ComfreyTea"])) data["ComfreyTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyYarrowTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * 2 * $2->query_amount())
        :)
    });
  data["ComfreyTea"]["GroundYarrowLeaf"] = item;
  if (!mappingp(data["GroundWildGarlic"])) data["GroundWildGarlic"] = ([]);
  item = new( class reaction );
  item->ratio = 200/2800.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
     (: $3->set_name( "cure" ) :),
     (: $3->set_short( "cold cure" ) :),
     (: $3->set_long( "This is a cold curing syrup.") :),
     (: $3->set_medium_alias( "ColdCureSyrup" ) :),
     (: $3->add_eat_effect("/std/effects/healing/cold_remedy",
          this_player()->query_skill_bonus(
            "magic.methods.physical.healing")*10) :),
     (: $3->add_eat_effect("/std/effects/ingested/garlic_breath",
          this_player()->query_skill_bonus(
            "magic.methods.physical.healing")) :)
   });
  data["GroundWildGarlic"]["Honey"] = item;
  if (!mappingp(data["GroundCabbage"])) data["GroundCabbage"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "vegetable" ) :),
        (: $3->set_short( "shredded vegetables" ) :),
        (: $3->add_adjective(({"shredded"})) :),
        (: $3->add_alias("vegetables") :),
        (: $3->set_long("This is some shredded vegetables.  Needs something more...\n") :),
        (: $3->set_medium_alias("ShreddedVegetables") :),
    });
  data["GroundCabbage"]["GroundCarrot"] = item;
  if (!mappingp(data["RanchSaladDressing"])) data["RanchSaladDressing"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.5});
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "coleslaw" ) :),
        (: $3->set_short( "coleslaw" ) :),
        (: $3->set_long("This is some delicious coleslaw.  Yum!!!\n") :),
        (: $3->set_medium_alias("Coleslaw") :),
    });
  data["RanchSaladDressing"]["ShreddedVegetables"] = item;
  if (!mappingp(data["GroundMolassesCookie"])) data["GroundMolassesCookie"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.7, 3.0});
  item->result = "/obj/reactions/generic_dough.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "dough" ) :),
        (: $3->set_short( "medicinal dough" ) :),
        (: $3->add_adjective(({"medicinal"})) :),
        (: $3->set_long("This is a medicinal dough.  It smells of molasses.\n") :),
        (: $3->set_medium_alias("MedicinalDough") :),
    });
  data["GroundMolassesCookie"]["LispMedicine"] = item;
  if (!mappingp(data["GroundRadish"])) data["GroundRadish"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "pale pink tea" ) :),
        (: $3->add_adjective(({"pale", "pink"})) :),
        (: $3->set_long("This is a pale pink tea.\n") :),
        (: $3->set_medium_alias("RadishTea") :),
    });
  data["GroundRadish"]["Water"] = item;
  if (!mappingp(data["GroundParsnip"])) data["GroundParsnip"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky white tea" ) :),
        (: $3->add_adjective(({"milky", "white"})) :),
        (: $3->set_long("This is a milky white tea.\n") :),
        (: $3->set_medium_alias("ParsnipTea") :),
    });
  data["GroundParsnip"]["Water"] = item;
  if (!mappingp(data["GroundRadish"])) data["GroundRadish"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.2,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["GroundRadish"]["ParsnipTea"] = item;
  if (!mappingp(data["GroundParsnip"])) data["GroundParsnip"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.2,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["GroundParsnip"]["RadishTea"] = item;
  if (!mappingp(data["ParsnipTea"])) data["ParsnipTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["ParsnipTea"]["RadishTea"] = item;
  if (!mappingp(data["GroundOregano"])) data["GroundOregano"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1, 0.9});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "olive-green tea" ) :),
        (: $3->add_adjective(({"olive-green"})) :),
        (: $3->set_long("This is an olive-green tea.\n") :),
        (: $3->set_medium_alias("LispMedicine") :),
    });
  data["GroundOregano"]["ParsnipRadishTea"] = item;
  if (!mappingp(data["FungoidJuice"])) data["FungoidJuice"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.8/1, 2.2/1 });
  item->result = "/obj/reagents/generic_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("paste") :),
        (: $3->set_short("sticky grey paste") :),
        (: $3->set_long("This is $pile_size$ of sticky grey paste, " +
                        "$amount_size$.\n") :),
        (: $3->set_medium_alias("PastyFungoidJuice") :),
        (: $3->add_adjective("sticky") :),
        (: $3->add_adjective("grey") :),
        (: $3->add_apply_effect("/std/effects/external/fungus_cure",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["FungoidJuice"]["Water"] = item;
  if (!mappingp(data["GroundComfrey"])) data["GroundComfrey"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundComfrey"]["Water"] = item;
  if (!mappingp(data["ComfreyTea"])) data["ComfreyTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyYarrowTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["ComfreyTea"]["GroundYarrow"] = item;
  if (!mappingp(data["AurumPotable"])) data["AurumPotable"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "dull slightly metallic liquid" ) :),
        (: $3->set_long("This is a dull, slightly metallic liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("MercuricWater") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AurumPotable"]["Cinoper"] = item;
  if (!mappingp(data["HeatTransient"])) data["HeatTransient"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_kibrit";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["HeatTransient"]["Kibrit"] = item;
  if (!mappingp(data["HeatedKibrit"])) data["HeatedKibrit"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3,0.7});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "yellow gelatinous liquid" ) :),
        (: $3->set_long("This is a yellow gelatinous liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("YellowGelatinousLiquid") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["HeatedKibrit"]["MercuricWater"] = item;
  if (!mappingp(data["Realgar"])) data["Realgar"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = "/d/sur/Haunted_House/transients/vitriol&goldensolid";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["Realgar"]["YellowGelatinousLiquid"] = item;
  if (!mappingp(data["AquaFortis"])) data["AquaFortis"] = ([]);
  item = new( class reaction );
  item->ratio = 0.0001;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "lump" ) :),
        (: $3->set_short( "green lump" ) :),
        (: $3->set_long("This is a green lump, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective("green") :),
        (: $3->set_medium_alias("GreenLump") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AquaFortis"]["GoldenYellowSolid"] = item;
  if (!mappingp(data["AquaFortis"])) data["AquaFortis"] = ([]);
  item = new( class reaction );
  item->ratio = 400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "aqua vitae" ) :),
        (: $3->set_long("This is some aqua vitae, "
              " about $pile_size$.  Very concentrated stuff.\n") :),
        (: $3->add_alias("aqua vitae") :),
        (: $3->set_medium_alias("AquaVitae") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AquaFortis"]["GreenLump"] = item;
  if (!mappingp(data["GreenLump"])) data["GreenLump"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_green_lump";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["GreenLump"]["HeatTransient"] = item;
  if (!mappingp(data["HeatedGreenLump"])) data["HeatedGreenLump"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "milky liquid" ) :),
        (: $3->set_long("This is a milky liquid, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective("milky") :),
        (: $3->set_medium_alias("UndistilledSheepPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slimesheep", 20) :)
    });
  data["HeatedGreenLump"]["Saffron"] = item;
  if (!mappingp(data["Ectoplasm"])) data["Ectoplasm"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "gel" ) :),
        (: $3->set_short( "sickly green gel" ) :),
        (: $3->set_long("This is a sickly green gel, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("GreenGel") :),
        (: $3->add_adjective(({"sickly", "green"})) :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["Ectoplasm"]["SheepUrine"] = item;
  if (!mappingp(data["GreenGel"])) data["GreenGel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8, 1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "fluid" ) :),
        (: $3->set_short( "light green viscous fluid" ) :),
        (: $3->set_long("This is a light green viscous fluid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("SpideryGel") :),
        (: $3->add_adjective(({"sickly", "green"})) :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["GreenGel"]["SpiderWeb"] = item;
  if (!mappingp(data["HeatTransient"])) data["HeatTransient"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_tallow";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["HeatTransient"]["Tallow"] = item;
  if (!mappingp(data["HeatedTallow"])) data["HeatedTallow"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3, 0.7});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "goo" ) :),
        (: $3->set_short( "green-tinted goo" ) :),
        (: $3->set_long("This is a green-tinted goo, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("GreenTintedGoo") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["HeatedTallow"]["SpideryGel"] = item;
  if (!mappingp(data["GreenTintedGoo"])) data["GreenTintedGoo"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.8,2.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "brown liquid" ) :),
        (: $3->set_long("This is a brown liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("BrownLiquid") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["GreenTintedGoo"]["PumpkinJuice"] = item;
  if (!mappingp(data["BrownLiquid"])) data["BrownLiquid"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.0, 40.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "fluid" ) :),
        (: $3->set_short( "yellow flourescent fluid" ) :),
        (: $3->set_long("This is a yellow flourescent fluid, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective(({"yellow", "flourescent"})) :),
        (: $3->set_medium_alias("UndistilledBabyPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/babyslime", 20) :)
    });
  data["BrownLiquid"]["OctironFilings"] = item;
  if (!mappingp(data["Kibrit"])) data["Kibrit"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "powder" ) :),
        (: $3->set_short( "light yellow powder" ) :),
        (: $3->add_adjective(({"light", "yellow"})) :),
        (: $3->set_long("This is some light yellow powder, $amount_size$.\n") :),
        (: $3->set_medium_alias("KibritTalcum") :),
    });
  data["Kibrit"]["TalcumPowder"] = item;
  if (!mappingp(data["AurumPotable"])) data["AurumPotable"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "solution" ) :),
        (: $3->set_short( "smelly milky-golden solution" ) :),
        (: $3->add_adjective(({"smelly", "milky-golden"})) :),
        (: $3->set_long("This is a smelly, milky-golden solution, "
             "$amount_size$.\n") :),
        (: $3->add_eat_effect("/std/effects/ingested/frog_repellent",
              100) :),
        (: $3->set_medium_alias("FrogRepellent") :),
    });
  data["AurumPotable"]["KibritTalcum"] = item;
  if (!mappingp(data["GroundVenom"])) data["GroundVenom"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("poison") :),
        (: $3->set_short("deadly poison") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("VenomPoison") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundVenom"]["Water"] = item;
  if (!mappingp(data["VenomPoison"])) data["VenomPoison"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("poison") :),
        (: $3->set_short("deadly poison") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("VenomCatalystPoison") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["VenomPoison"]["GroundCatalyst"] = item;
  if (!mappingp(data["GroundKlatchianFleabane"])) data["GroundKlatchianFleabane"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/50, 5.0/50 });
  item->result = "/obj/reagents/generic_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("paste") :),
        (: $3->set_short("lavender paste") :),
        (: $3->set_long("This is $pile_size$ of lavender paste, " +
                        "$amount_size$.\n") :),
        (: $3->set_medium_alias("PastyKlatchianFleabane") :),
        (: $3->add_adjective("lavender") :)
    });
  data["GroundKlatchianFleabane"]["Water"] = item;
  if (!mappingp(data["GroundStinkingMayweed"])) data["GroundStinkingMayweed"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/50, 5.0/50 });
  item->result = "/obj/reagents/flea_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_medium_alias("FleaSalve") :),
        (: $3->add_apply_effect("/std/effects/external/flea_cure",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.healing")/20)
        :)
    });
  data["GroundStinkingMayweed"]["PastyKlatchianFleabane"] = item;
  if (!mappingp(data["GroundParsley"])) data["GroundParsley"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "dark green tea" ) :),
        (: $3->add_adjective(({"dark", "green"})) :),
        (: $3->set_long("This is a dark green, fresh-smelling tea.\n") :),
        (: $3->set_medium_alias("ParsleyTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/breath_fresh") :),
    });
  data["GroundParsley"]["Water"] = item;
  if (!mappingp(data["GroundSage"])) data["GroundSage"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "grey-green tea" ) :),
        (: $3->add_adjective(({"grey-green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a grey-green tea.\n") :),
        (: $3->set_medium_alias("SageTea") :),
    });
  data["GroundSage"]["Water"] = item;
  if (!mappingp(data["FeatherStir"])) data["FeatherStir"] = ([]);
  item = new( class reaction );
  item->ratio = 0.25;
  item->result = LIQUID_OBJ;
  item->result_amt = 0.8;
  item->func = ({
        (: $3->set_name( "potion" ) :),
        (: $3->set_short( "teal green potion" ) :),
        (: $3->add_adjective(({"teal","green"})) :),
        (: $3->set_long("This is a teal green potion.\n") :),
        (: $3->set_medium_alias("SageIntPotion") :),
        (: $3->add_eat_effect("/std/effects/ingested/int_bonus",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/30) :),
    });
  data["FeatherStir"]["SageTea"] = item;
  if (!mappingp(data["GroundSpider"])) data["GroundSpider"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "purple tea" ) :),
        (: $3->add_adjective(({"purple"})) :),
        (: $3->set_long("This is a purple tea.\n") :),
        (: $3->set_medium_alias("SpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
    });
  data["GroundSpider"]["Water"] = item;
  if (!mappingp(data["GroundBasil"])) data["GroundBasil"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "green-blue tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"green-blue"})) :),
        (: $3->set_long("This is a green-blue tea.\n") :),
        (: $3->set_medium_alias("BasilTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundBasil"]["Water"] = item;
  if (!mappingp(data["GroundThyme"])) data["GroundThyme"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "greenish tea" ) :),
        (: $3->add_adjective(({"greenish"})) :),
        (: $3->set_long("This is a greenish tea.\n") :),
        (: $3->set_medium_alias("ThymeTea") :),
    });
  data["GroundThyme"]["Water"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["GroundSpider"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["GroundSpider"] = item;
  if (!mappingp(data["GroundFennel"])) data["GroundFennel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundFennel"]["SpiderTea"] = item;
  if (!mappingp(data["BasilSpiderTea"])) data["BasilSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilSpiderTea"]["GroundFennel"] = item;
  if (!mappingp(data["BasilFennelTea"])) data["BasilFennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) )  :),
    });
  data["BasilFennelTea"]["GroundSpider"] = item;
  if (!mappingp(data["FennelSpiderTea"])) data["FennelSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["FennelSpiderTea"]["GroundBasil"] = item;
  if (!mappingp(data["BasilSpiderTea"])) data["BasilSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilSpiderTea"]["FennelTea"] = item;
  if (!mappingp(data["BasilFennelTea"])) data["BasilFennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilFennelTea"]["SpiderTea"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilTea"]["FennelSpiderTea"] = item;
  if (!mappingp(data["GroundFennel"])) data["GroundFennel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "pale yellow tea" ) :),
        (: $3->add_adjective(({"pale yellow"})) :),
        (: $3->set_long("This is a pale yellow tea.\n") :),
        (: $3->set_medium_alias("FennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundFennel"]["Water"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["GroundFennel"] = item;
  if (!mappingp(data["GroundBasil"])) data["GroundBasil"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundBasil"]["SpiderTea"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["GroundBasil"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["FennelTea"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["SpiderTea"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["SpiderTea"] = item;
  if (!mappingp(data["GroundEyebright"])) data["GroundEyebright"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.6,0.8});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"yellow"})) :),
        (: $3->set_long("This is a yellow tea.\n") :),
        (: $3->set_medium_alias("EyebrightTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect"):),
    });
  data["GroundEyebright"]["Water"] = item;
  if (!mappingp(data["GroundCarrot"])) data["GroundCarrot"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.6,0.8});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "orange tea" ) :),
        (: $3->add_adjective(({"orange"})) :),
        (: $3->set_long("This is a orange tea.\n") :),
        (: $3->set_medium_alias("CarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["GroundCarrot"]["Water"] = item;
  if (!mappingp(data["CarrotTea"])) data["CarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect"):),
    });
  data["CarrotTea"]["EyebrightTea"] = item;
  if (!mappingp(data["CarrotTea"])) data["CarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.25,1.6667});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["CarrotTea"]["GroundEyebright"] = item;
  if (!mappingp(data["EyebrightTea"])) data["EyebrightTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.25,1.6667});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["EyebrightTea"]["GroundCarrot"] = item;
  if (!mappingp(data["EyebrightCarrotTea"])) data["EyebrightCarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({3.0,4.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "red-orange tea" ) :),
        (: $3->add_adjective(({"red-orange"})) :),
        (: $3->set_long("This is a red-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotBunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/10) :),
    });
  data["EyebrightCarrotTea"]["GroundBunnyEyeball"] = item;
  if (!mappingp(data["BunnyEyeballTea"])) data["BunnyEyeballTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.5,2.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "red-orange tea" ) :),
        (: $3->add_adjective(({"red-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a red-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotBunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/10) :),
    });
  data["BunnyEyeballTea"]["EyebrightCarrotTea"] = item;
  if (!mappingp(data["GroundBunnyEyeball"])) data["GroundBunnyEyeball"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "red tea" ) :),
        (: $3->add_adjective(({"red"})) :),
        (: $3->set_long("This is a red tea.\n") :),
        (: $3->set_medium_alias("BunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["GroundBunnyEyeball"]["Water"] = item;
  if (!mappingp(data["DriedSlug"])) data["DriedSlug"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = "/d/sur/Scrogden/items/slugsoup";
  item->result_amt = 1.0;
  data["DriedSlug"]["Water"] = item;
  if (!mappingp(data["GroundFloppyMadman"])) data["GroundFloppyMadman"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "water" ) :),
        (: $3->set_short( "pale brownish green water" ) :),
        (: $3->set_long("This is some pale green water, with "
                        "a brownish tint to it, about $pile_size$.\n") :),
        (: $3->set_medium_alias("SpellcheckPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/potion_spellcheck",
            this_player()->query_skill_bonus(
               "magic.methods.physical.brewing" ) / 10 ) :)
    });
  data["GroundFloppyMadman"]["Water"] = item;
  if (!mappingp(data["SecondSightPotion"])) data["SecondSightPotion"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/2500;
  item->result = "/obj/reagents/ss_test.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_duration(600) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/water.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->add_picture_command() :),
        (: $3->start_reaction() :)
    });
  data["SecondSightPotion"]["Water"] = item;
  if (!mappingp(data["RamtopsScumble"])) data["RamtopsScumble"] = ([]);
  item = new( class reaction );
  item->ratio = 2400/400.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("scumble") :),
        (: $3->set_short("sparkly scumble") :),
        (: $3->set_long("This is scumble with some sparkly "
               "sherbet traces in it, $amount_size$.\n") :),
        (: $3->add_eat_effect("/std/effects/ingested/drunk", 1500) :),
        (: $3->set_medium_alias("SherbetScumble") :),
    });
  data["RamtopsScumble"]["Sherbet"] = item;
  if (!mappingp(data["GroundThyme"])) data["GroundThyme"] = ([]);
  item = new( class reaction );
  item->ratio = 200/2800.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("bomb") :),
        (: $3->add_adjective("thyme") :),
        (: $3->set_short("thyme bomb") :),
        (: $3->set_long("This is a thyme bomb, a drink that looks like "
                        "sparkly scumble, $pile_size$.") :),
        (: $3->add_eat_effect("/std/effects/ingested/drunk", 1500) :),
        (: $3->set_medium_alias("ThymeBomb") :),
        (: call_out( (: environment($1)->
           add_effect( "/w/dragonkin/effects/thyme_bomb", 
           ({ this_player()->
           query_skill_bonus("magic.methods.physical.brewing"), $1 }) ) :),
           1, $3 ) :),
        (: call_out( (: environment($1)->init() :), 2, $3 ) :)
    });
  data["GroundThyme"]["SherbetScumble"] = item;
  return data;
}
#include <reaction.h>
void dest_me() { destruct( this_object() ); }
mixed data_return() {
  class reaction item;
  mapping data = ([ ]);

  if (!mappingp(data["GroundDeadlyNightshade"])) data["GroundDeadlyNightshade"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/600, 1.0/1000 });
  item->result = "/obj/reagents/transient_liquid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("coffee") :),
        (: $3->set_short("coffee") :),
        (: $3->set_long("This is some freshly made coffee, $amount_size$.\n")
            :),
        (: $3->set_progress_msg( ({
            ({0, 0}),
            ({0, 0}),
            ({"The liquid in the @@short:#env#@@ darkens slightly.\n", ({
                "set_medium_alias:#obj#|TransientCoffee"})}),
            ({0, 0}),
            ({0, 0})
            }) ) :),
        (: $3->set_medium_alias("PreTransientCoffee") :),
        (: $3->add_eat_effect("/std/effects/ingested/poison.c", 10) :),
        (: $3->set_duration(30) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/poison_coffee.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PoisonCoffee") :),
        (: $3->set_continuous() :),
        (: $3->set_liquid() :),
        (: $3->start_reaction() :)
    });
  data["GroundDeadlyNightshade"]["LiquidCoffee"] = item;
  if (!mappingp(data["TransientCoffee"])) data["TransientCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 0, 2500 });
  item->result = "/obj/reagents/shimmer.ob";
  item->result_amt = 1.0;
  item->message = "Something begins to happen in the @@short:#env#@@...\n";
  item->func = ({
        (: $3->set_short("dimly glowing liquid") :),
        (: $3->set_duration(20) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/panic.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PanicPotion") :),
        (: $3->start_reaction() :)
    });
  data["TransientCoffee"]["TransientPanic"] = item;
  if (!mappingp(data["TransientCoffee"])) data["TransientCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 0, 2500 });
  item->result = "/obj/reagents/shimmer.ob";
  item->result_amt = 1.0;
  item->message = "Something begins to happen in the @@short:#env#@@...\n";
  item->func = ({
        (: $3->set_short("dimly glowing liquid") :),
        (: $3->set_duration(20) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/perception.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PerceptionPotion") :),
        (: $3->start_reaction() :)
    });
  data["TransientCoffee"]["TransientPerception"] = item;
  if (!mappingp(data["GroundCoffee"])) data["GroundCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/60, 1.0/40 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("coffee") :),
        (: $3->set_short("coffee") :),
        (: $3->set_long("This is some freshly made coffee, $amount_size$.\n")
            :),
        (: $3->add_plural("coffee") :),
        (: $3->set_medium_alias("LiquidCoffee") :),
        (: tell_room($5, "The " + $2->short() + " in " + $4->the_short() +
            " turns brown.\n") :),
        (: $3->set_medium_alias("LiquidCoffee") :)
    });
  data["GroundCoffee"]["Water"] = item;
  if (!mappingp(data["GroundComfreyLeaf"])) data["GroundComfreyLeaf"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundComfreyLeaf"]["Water"] = item;
  if (!mappingp(data["ComfreyTea"])) data["ComfreyTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyYarrowTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * 2 * $2->query_amount())
        :)
    });
  data["ComfreyTea"]["GroundYarrowLeaf"] = item;
  if (!mappingp(data["GroundWildGarlic"])) data["GroundWildGarlic"] = ([]);
  item = new( class reaction );
  item->ratio = 200/2800.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
     (: $3->set_name( "cure" ) :),
     (: $3->set_short( "cold cure" ) :),
     (: $3->set_long( "This is a cold curing syrup.") :),
     (: $3->set_medium_alias( "ColdCureSyrup" ) :),
     (: $3->add_eat_effect("/std/effects/healing/cold_remedy",
          this_player()->query_skill_bonus(
            "magic.methods.physical.healing")*10) :),
     (: $3->add_eat_effect("/std/effects/ingested/garlic_breath",
          this_player()->query_skill_bonus(
            "magic.methods.physical.healing")) :)
   });
  data["GroundWildGarlic"]["Honey"] = item;
  if (!mappingp(data["GroundCabbage"])) data["GroundCabbage"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "vegetable" ) :),
        (: $3->set_short( "shredded vegetables" ) :),
        (: $3->add_adjective(({"shredded"})) :),
        (: $3->add_alias("vegetables") :),
        (: $3->set_long("This is some shredded vegetables.  Needs something more...\n") :),
        (: $3->set_medium_alias("ShreddedVegetables") :),
    });
  data["GroundCabbage"]["GroundCarrot"] = item;
  if (!mappingp(data["RanchSaladDressing"])) data["RanchSaladDressing"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.5});
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "coleslaw" ) :),
        (: $3->set_short( "coleslaw" ) :),
        (: $3->set_long("This is some delicious coleslaw.  Yum!!!\n") :),
        (: $3->set_medium_alias("Coleslaw") :),
    });
  data["RanchSaladDressing"]["ShreddedVegetables"] = item;
  if (!mappingp(data["GroundMolassesCookie"])) data["GroundMolassesCookie"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.7, 3.0});
  item->result = "/obj/reactions/generic_dough.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "dough" ) :),
        (: $3->set_short( "medicinal dough" ) :),
        (: $3->add_adjective(({"medicinal"})) :),
        (: $3->set_long("This is a medicinal dough.  It smells of molasses.\n") :),
        (: $3->set_medium_alias("MedicinalDough") :),
    });
  data["GroundMolassesCookie"]["LispMedicine"] = item;
  if (!mappingp(data["GroundRadish"])) data["GroundRadish"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "pale pink tea" ) :),
        (: $3->add_adjective(({"pale", "pink"})) :),
        (: $3->set_long("This is a pale pink tea.\n") :),
        (: $3->set_medium_alias("RadishTea") :),
    });
  data["GroundRadish"]["Water"] = item;
  if (!mappingp(data["GroundParsnip"])) data["GroundParsnip"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky white tea" ) :),
        (: $3->add_adjective(({"milky", "white"})) :),
        (: $3->set_long("This is a milky white tea.\n") :),
        (: $3->set_medium_alias("ParsnipTea") :),
    });
  data["GroundParsnip"]["Water"] = item;
  if (!mappingp(data["GroundRadish"])) data["GroundRadish"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.2,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["GroundRadish"]["ParsnipTea"] = item;
  if (!mappingp(data["GroundParsnip"])) data["GroundParsnip"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.2,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["GroundParsnip"]["RadishTea"] = item;
  if (!mappingp(data["ParsnipTea"])) data["ParsnipTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["ParsnipTea"]["RadishTea"] = item;
  if (!mappingp(data["GroundOregano"])) data["GroundOregano"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1, 0.9});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "olive-green tea" ) :),
        (: $3->add_adjective(({"olive-green"})) :),
        (: $3->set_long("This is an olive-green tea.\n") :),
        (: $3->set_medium_alias("LispMedicine") :),
    });
  data["GroundOregano"]["ParsnipRadishTea"] = item;
  if (!mappingp(data["FungoidJuice"])) data["FungoidJuice"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.8/1, 2.2/1 });
  item->result = "/obj/reagents/generic_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("paste") :),
        (: $3->set_short("sticky grey paste") :),
        (: $3->set_long("This is $pile_size$ of sticky grey paste, " +
                        "$amount_size$.\n") :),
        (: $3->set_medium_alias("PastyFungoidJuice") :),
        (: $3->add_adjective("sticky") :),
        (: $3->add_adjective("grey") :),
        (: $3->add_apply_effect("/std/effects/external/fungus_cure",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["FungoidJuice"]["Water"] = item;
  if (!mappingp(data["GroundComfrey"])) data["GroundComfrey"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundComfrey"]["Water"] = item;
  if (!mappingp(data["ComfreyTea"])) data["ComfreyTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyYarrowTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["ComfreyTea"]["GroundYarrow"] = item;
  if (!mappingp(data["AurumPotable"])) data["AurumPotable"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "dull slightly metallic liquid" ) :),
        (: $3->set_long("This is a dull, slightly metallic liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("MercuricWater") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AurumPotable"]["Cinoper"] = item;
  if (!mappingp(data["HeatTransient"])) data["HeatTransient"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_kibrit";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["HeatTransient"]["Kibrit"] = item;
  if (!mappingp(data["HeatedKibrit"])) data["HeatedKibrit"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3,0.7});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "yellow gelatinous liquid" ) :),
        (: $3->set_long("This is a yellow gelatinous liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("YellowGelatinousLiquid") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["HeatedKibrit"]["MercuricWater"] = item;
  if (!mappingp(data["Realgar"])) data["Realgar"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = "/d/sur/Haunted_House/transients/vitriol&goldensolid";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["Realgar"]["YellowGelatinousLiquid"] = item;
  if (!mappingp(data["AquaFortis"])) data["AquaFortis"] = ([]);
  item = new( class reaction );
  item->ratio = 0.0001;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "lump" ) :),
        (: $3->set_short( "green lump" ) :),
        (: $3->set_long("This is a green lump, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective("green") :),
        (: $3->set_medium_alias("GreenLump") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AquaFortis"]["GoldenYellowSolid"] = item;
  if (!mappingp(data["AquaFortis"])) data["AquaFortis"] = ([]);
  item = new( class reaction );
  item->ratio = 400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "aqua vitae" ) :),
        (: $3->set_long("This is some aqua vitae, "
              " about $pile_size$.  Very concentrated stuff.\n") :),
        (: $3->add_alias("aqua vitae") :),
        (: $3->set_medium_alias("AquaVitae") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AquaFortis"]["GreenLump"] = item;
  if (!mappingp(data["GreenLump"])) data["GreenLump"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_green_lump";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["GreenLump"]["HeatTransient"] = item;
  if (!mappingp(data["HeatedGreenLump"])) data["HeatedGreenLump"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "milky liquid" ) :),
        (: $3->set_long("This is a milky liquid, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective("milky") :),
        (: $3->set_medium_alias("UndistilledSheepPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slimesheep", 20) :)
    });
  data["HeatedGreenLump"]["Saffron"] = item;
  if (!mappingp(data["Ectoplasm"])) data["Ectoplasm"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "gel" ) :),
        (: $3->set_short( "sickly green gel" ) :),
        (: $3->set_long("This is a sickly green gel, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("GreenGel") :),
        (: $3->add_adjective(({"sickly", "green"})) :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["Ectoplasm"]["SheepUrine"] = item;
  if (!mappingp(data["GreenGel"])) data["GreenGel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8, 1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "fluid" ) :),
        (: $3->set_short( "light green viscous fluid" ) :),
        (: $3->set_long("This is a light green viscous fluid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("SpideryGel") :),
        (: $3->add_adjective(({"sickly", "green"})) :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["GreenGel"]["SpiderWeb"] = item;
  if (!mappingp(data["HeatTransient"])) data["HeatTransient"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_tallow";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["HeatTransient"]["Tallow"] = item;
  if (!mappingp(data["HeatedTallow"])) data["HeatedTallow"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3, 0.7});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "goo" ) :),
        (: $3->set_short( "green-tinted goo" ) :),
        (: $3->set_long("This is a green-tinted goo, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("GreenTintedGoo") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["HeatedTallow"]["SpideryGel"] = item;
  if (!mappingp(data["GreenTintedGoo"])) data["GreenTintedGoo"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.8,2.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "brown liquid" ) :),
        (: $3->set_long("This is a brown liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("BrownLiquid") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["GreenTintedGoo"]["PumpkinJuice"] = item;
  if (!mappingp(data["BrownLiquid"])) data["BrownLiquid"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.0, 40.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "fluid" ) :),
        (: $3->set_short( "yellow flourescent fluid" ) :),
        (: $3->set_long("This is a yellow flourescent fluid, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective(({"yellow", "flourescent"})) :),
        (: $3->set_medium_alias("UndistilledBabyPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/babyslime", 20) :)
    });
  data["BrownLiquid"]["OctironFilings"] = item;
  if (!mappingp(data["Kibrit"])) data["Kibrit"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "powder" ) :),
        (: $3->set_short( "light yellow powder" ) :),
        (: $3->add_adjective(({"light", "yellow"})) :),
        (: $3->set_long("This is some light yellow powder, $amount_size$.\n") :),
        (: $3->set_medium_alias("KibritTalcum") :),
    });
  data["Kibrit"]["TalcumPowder"] = item;
  if (!mappingp(data["AurumPotable"])) data["AurumPotable"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "solution" ) :),
        (: $3->set_short( "smelly milky-golden solution" ) :),
        (: $3->add_adjective(({"smelly", "milky-golden"})) :),
        (: $3->set_long("This is a smelly, milky-golden solution, "
             "$amount_size$.\n") :),
        (: $3->add_eat_effect("/std/effects/ingested/frog_repellent",
              100) :),
        (: $3->set_medium_alias("FrogRepellent") :),
    });
  data["AurumPotable"]["KibritTalcum"] = item;
  if (!mappingp(data["GroundVenom"])) data["GroundVenom"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("poison") :),
        (: $3->set_short("deadly poison") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("VenomPoison") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundVenom"]["Water"] = item;
  if (!mappingp(data["VenomPoison"])) data["VenomPoison"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("poison") :),
        (: $3->set_short("deadly poison") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("VenomCatalystPoison") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["VenomPoison"]["GroundCatalyst"] = item;
  if (!mappingp(data["GroundKlatchianFleabane"])) data["GroundKlatchianFleabane"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/50, 5.0/50 });
  item->result = "/obj/reagents/generic_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("paste") :),
        (: $3->set_short("lavender paste") :),
        (: $3->set_long("This is $pile_size$ of lavender paste, " +
                        "$amount_size$.\n") :),
        (: $3->set_medium_alias("PastyKlatchianFleabane") :),
        (: $3->add_adjective("lavender") :)
    });
  data["GroundKlatchianFleabane"]["Water"] = item;
  if (!mappingp(data["GroundStinkingMayweed"])) data["GroundStinkingMayweed"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/50, 5.0/50 });
  item->result = "/obj/reagents/flea_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_medium_alias("FleaSalve") :),
        (: $3->add_apply_effect("/std/effects/external/flea_cure",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.healing")/20)
        :)
    });
  data["GroundStinkingMayweed"]["PastyKlatchianFleabane"] = item;
  if (!mappingp(data["GroundParsley"])) data["GroundParsley"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "dark green tea" ) :),
        (: $3->add_adjective(({"dark", "green"})) :),
        (: $3->set_long("This is a dark green, fresh-smelling tea.\n") :),
        (: $3->set_medium_alias("ParsleyTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/breath_fresh") :),
    });
  data["GroundParsley"]["Water"] = item;
  if (!mappingp(data["GroundSage"])) data["GroundSage"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "grey-green tea" ) :),
        (: $3->add_adjective(({"grey-green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a grey-green tea.\n") :),
        (: $3->set_medium_alias("SageTea") :),
    });
  data["GroundSage"]["Water"] = item;
  if (!mappingp(data["FeatherStir"])) data["FeatherStir"] = ([]);
  item = new( class reaction );
  item->ratio = 0.25;
  item->result = LIQUID_OBJ;
  item->result_amt = 0.8;
  item->func = ({
        (: $3->set_name( "potion" ) :),
        (: $3->set_short( "teal green potion" ) :),
        (: $3->add_adjective(({"teal","green"})) :),
        (: $3->set_long("This is a teal green potion.\n") :),
        (: $3->set_medium_alias("SageIntPotion") :),
        (: $3->add_eat_effect("/std/effects/ingested/int_bonus",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/30) :),
    });
  data["FeatherStir"]["SageTea"] = item;
  if (!mappingp(data["GroundSpider"])) data["GroundSpider"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "purple tea" ) :),
        (: $3->add_adjective(({"purple"})) :),
        (: $3->set_long("This is a purple tea.\n") :),
        (: $3->set_medium_alias("SpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
    });
  data["GroundSpider"]["Water"] = item;
  if (!mappingp(data["GroundBasil"])) data["GroundBasil"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "green-blue tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"green-blue"})) :),
        (: $3->set_long("This is a green-blue tea.\n") :),
        (: $3->set_medium_alias("BasilTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundBasil"]["Water"] = item;
  if (!mappingp(data["GroundThyme"])) data["GroundThyme"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "greenish tea" ) :),
        (: $3->add_adjective(({"greenish"})) :),
        (: $3->set_long("This is a greenish tea.\n") :),
        (: $3->set_medium_alias("ThymeTea") :),
    });
  data["GroundThyme"]["Water"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["GroundSpider"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["GroundSpider"] = item;
  if (!mappingp(data["GroundFennel"])) data["GroundFennel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundFennel"]["SpiderTea"] = item;
  if (!mappingp(data["BasilSpiderTea"])) data["BasilSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilSpiderTea"]["GroundFennel"] = item;
  if (!mappingp(data["BasilFennelTea"])) data["BasilFennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) )  :),
    });
  data["BasilFennelTea"]["GroundSpider"] = item;
  if (!mappingp(data["FennelSpiderTea"])) data["FennelSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["FennelSpiderTea"]["GroundBasil"] = item;
  if (!mappingp(data["BasilSpiderTea"])) data["BasilSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilSpiderTea"]["FennelTea"] = item;
  if (!mappingp(data["BasilFennelTea"])) data["BasilFennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilFennelTea"]["SpiderTea"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilTea"]["FennelSpiderTea"] = item;
  if (!mappingp(data["GroundFennel"])) data["GroundFennel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "pale yellow tea" ) :),
        (: $3->add_adjective(({"pale yellow"})) :),
        (: $3->set_long("This is a pale yellow tea.\n") :),
        (: $3->set_medium_alias("FennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundFennel"]["Water"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["GroundFennel"] = item;
  if (!mappingp(data["GroundBasil"])) data["GroundBasil"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundBasil"]["SpiderTea"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["GroundBasil"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["FennelTea"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["SpiderTea"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["SpiderTea"] = item;
  if (!mappingp(data["GroundEyebright"])) data["GroundEyebright"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.6,0.8});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"yellow"})) :),
        (: $3->set_long("This is a yellow tea.\n") :),
        (: $3->set_medium_alias("EyebrightTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect"):),
    });
  data["GroundEyebright"]["Water"] = item;
  if (!mappingp(data["GroundCarrot"])) data["GroundCarrot"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.6,0.8});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "orange tea" ) :),
        (: $3->add_adjective(({"orange"})) :),
        (: $3->set_long("This is a orange tea.\n") :),
        (: $3->set_medium_alias("CarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["GroundCarrot"]["Water"] = item;
  if (!mappingp(data["CarrotTea"])) data["CarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect"):),
    });
  data["CarrotTea"]["EyebrightTea"] = item;
  if (!mappingp(data["CarrotTea"])) data["CarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.25,1.6667});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["CarrotTea"]["GroundEyebright"] = item;
  if (!mappingp(data["EyebrightTea"])) data["EyebrightTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.25,1.6667});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["EyebrightTea"]["GroundCarrot"] = item;
  if (!mappingp(data["EyebrightCarrotTea"])) data["EyebrightCarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({3.0,4.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "red-orange tea" ) :),
        (: $3->add_adjective(({"red-orange"})) :),
        (: $3->set_long("This is a red-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotBunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/10) :),
    });
  data["EyebrightCarrotTea"]["GroundBunnyEyeball"] = item;
  if (!mappingp(data["BunnyEyeballTea"])) data["BunnyEyeballTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.5,2.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "red-orange tea" ) :),
        (: $3->add_adjective(({"red-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a red-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotBunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/10) :),
    });
  data["BunnyEyeballTea"]["EyebrightCarrotTea"] = item;
  if (!mappingp(data["GroundBunnyEyeball"])) data["GroundBunnyEyeball"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "red tea" ) :),
        (: $3->add_adjective(({"red"})) :),
        (: $3->set_long("This is a red tea.\n") :),
        (: $3->set_medium_alias("BunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["GroundBunnyEyeball"]["Water"] = item;
  if (!mappingp(data["DriedSlug"])) data["DriedSlug"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = "/d/sur/Scrogden/items/slugsoup";
  item->result_amt = 1.0;
  data["DriedSlug"]["Water"] = item;
  if (!mappingp(data["GroundFloppyMadman"])) data["GroundFloppyMadman"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "water" ) :),
        (: $3->set_short( "pale brownish green water" ) :),
        (: $3->set_long("This is some pale green water, with "
                        "a brownish tint to it, about $pile_size$.\n") :),
        (: $3->set_medium_alias("SpellcheckPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/potion_spellcheck",
            this_player()->query_skill_bonus(
               "magic.methods.physical.brewing" ) / 10 ) :)
    });
  data["GroundFloppyMadman"]["Water"] = item;
  if (!mappingp(data["SecondSightPotion"])) data["SecondSightPotion"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/2500;
  item->result = "/obj/reagents/ss_test.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_duration(600) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/water.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->add_picture_command() :),
        (: $3->start_reaction() :)
    });
  data["SecondSightPotion"]["Water"] = item;
  if (!mappingp(data["RamtopsScumble"])) data["RamtopsScumble"] = ([]);
  item = new( class reaction );
  item->ratio = 2400/400.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("scumble") :),
        (: $3->set_short("sparkly scumble") :),
        (: $3->set_long("This is scumble with some sparkly "
               "sherbet traces in it, $amount_size$.\n") :),
        (: $3->add_eat_effect("/std/effects/ingested/drunk", 1500) :),
        (: $3->set_medium_alias("SherbetScumble") :),
    });
  data["RamtopsScumble"]["Sherbet"] = item;
  if (!mappingp(data["GroundThyme"])) data["GroundThyme"] = ([]);
  item = new( class reaction );
  item->ratio = 200/2800.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("bomb") :),
        (: $3->add_adjective("thyme") :),
        (: $3->set_short("thyme bomb") :),
        (: $3->set_long("This is a thyme bomb, a drink that looks like "
                        "sparkly scumble, $pile_size$.") :),
        (: $3->add_eat_effect("/std/effects/ingested/drunk", 1500) :),
        (: $3->set_medium_alias("ThymeBomb") :),
        (: call_out( (: environment($1)->
           add_effect( "/w/dragonkin/effects/thyme_bomb", 
           ({ this_player()->
           query_skill_bonus("magic.methods.physical.brewing"), $1 }) ) :),
           1, $3 ) :),
        (: call_out( (: environment($1)->init() :), 2, $3 ) :)
    });
  data["GroundThyme"]["SherbetScumble"] = item;
  return data;
}
#include <reaction.h>
void dest_me() { destruct( this_object() ); }
mixed data_return() {
  class reaction item;
  mapping data = ([ ]);

  if (!mappingp(data["GroundDeadlyNightshade"])) data["GroundDeadlyNightshade"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/600, 1.0/1000 });
  item->result = "/obj/reagents/transient_liquid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("coffee") :),
        (: $3->set_short("coffee") :),
        (: $3->set_long("This is some freshly made coffee, $amount_size$.\n")
            :),
        (: $3->set_progress_msg( ({
            ({0, 0}),
            ({0, 0}),
            ({"The liquid in the @@short:#env#@@ darkens slightly.\n", ({
                "set_medium_alias:#obj#|TransientCoffee"})}),
            ({0, 0}),
            ({0, 0})
            }) ) :),
        (: $3->set_medium_alias("PreTransientCoffee") :),
        (: $3->add_eat_effect("/std/effects/ingested/poison.c", 10) :),
        (: $3->set_duration(30) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/poison_coffee.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PoisonCoffee") :),
        (: $3->set_continuous() :),
        (: $3->set_liquid() :),
        (: $3->start_reaction() :)
    });
  data["GroundDeadlyNightshade"]["LiquidCoffee"] = item;
  if (!mappingp(data["TransientCoffee"])) data["TransientCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 0, 2500 });
  item->result = "/obj/reagents/shimmer.ob";
  item->result_amt = 1.0;
  item->message = "Something begins to happen in the @@short:#env#@@...\n";
  item->func = ({
        (: $3->set_short("dimly glowing liquid") :),
        (: $3->set_duration(20) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/panic.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PanicPotion") :),
        (: $3->start_reaction() :)
    });
  data["TransientCoffee"]["TransientPanic"] = item;
  if (!mappingp(data["TransientCoffee"])) data["TransientCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 0, 2500 });
  item->result = "/obj/reagents/shimmer.ob";
  item->result_amt = 1.0;
  item->message = "Something begins to happen in the @@short:#env#@@...\n";
  item->func = ({
        (: $3->set_short("dimly glowing liquid") :),
        (: $3->set_duration(20) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/perception.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PerceptionPotion") :),
        (: $3->start_reaction() :)
    });
  data["TransientCoffee"]["TransientPerception"] = item;
  if (!mappingp(data["GroundCoffee"])) data["GroundCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/60, 1.0/40 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("coffee") :),
        (: $3->set_short("coffee") :),
        (: $3->set_long("This is some freshly made coffee, $amount_size$.\n")
            :),
        (: $3->add_plural("coffee") :),
        (: $3->set_medium_alias("LiquidCoffee") :),
        (: tell_room($5, "The " + $2->short() + " in " + $4->the_short() +
            " turns brown.\n") :),
        (: $3->set_medium_alias("LiquidCoffee") :)
    });
  data["GroundCoffee"]["Water"] = item;
  if (!mappingp(data["GroundComfreyLeaf"])) data["GroundComfreyLeaf"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundComfreyLeaf"]["Water"] = item;
  if (!mappingp(data["ComfreyTea"])) data["ComfreyTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyYarrowTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * 2 * $2->query_amount())
        :)
    });
  data["ComfreyTea"]["GroundYarrowLeaf"] = item;
  if (!mappingp(data["GroundWildGarlic"])) data["GroundWildGarlic"] = ([]);
  item = new( class reaction );
  item->ratio = 200/2800.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
     (: $3->set_name( "cure" ) :),
     (: $3->set_short( "cold cure" ) :),
     (: $3->set_long( "This is a cold curing syrup.") :),
     (: $3->set_medium_alias( "ColdCureSyrup" ) :),
     (: $3->add_eat_effect("/std/effects/healing/cold_remedy",
          this_player()->query_skill_bonus(
            "magic.methods.physical.healing")*10) :),
     (: $3->add_eat_effect("/std/effects/ingested/garlic_breath",
          this_player()->query_skill_bonus(
            "magic.methods.physical.healing")) :)
   });
  data["GroundWildGarlic"]["Honey"] = item;
  if (!mappingp(data["GroundCabbage"])) data["GroundCabbage"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "vegetable" ) :),
        (: $3->set_short( "shredded vegetables" ) :),
        (: $3->add_adjective(({"shredded"})) :),
        (: $3->add_alias("vegetables") :),
        (: $3->set_long("This is some shredded vegetables.  Needs something more...\n") :),
        (: $3->set_medium_alias("ShreddedVegetables") :),
    });
  data["GroundCabbage"]["GroundCarrot"] = item;
  if (!mappingp(data["RanchSaladDressing"])) data["RanchSaladDressing"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.5});
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "coleslaw" ) :),
        (: $3->set_short( "coleslaw" ) :),
        (: $3->set_long("This is some delicious coleslaw.  Yum!!!\n") :),
        (: $3->set_medium_alias("Coleslaw") :),
    });
  data["RanchSaladDressing"]["ShreddedVegetables"] = item;
  if (!mappingp(data["GroundMolassesCookie"])) data["GroundMolassesCookie"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.7, 3.0});
  item->result = "/obj/reactions/generic_dough.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "dough" ) :),
        (: $3->set_short( "medicinal dough" ) :),
        (: $3->add_adjective(({"medicinal"})) :),
        (: $3->set_long("This is a medicinal dough.  It smells of molasses.\n") :),
        (: $3->set_medium_alias("MedicinalDough") :),
    });
  data["GroundMolassesCookie"]["LispMedicine"] = item;
  if (!mappingp(data["GroundRadish"])) data["GroundRadish"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "pale pink tea" ) :),
        (: $3->add_adjective(({"pale", "pink"})) :),
        (: $3->set_long("This is a pale pink tea.\n") :),
        (: $3->set_medium_alias("RadishTea") :),
    });
  data["GroundRadish"]["Water"] = item;
  if (!mappingp(data["GroundParsnip"])) data["GroundParsnip"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky white tea" ) :),
        (: $3->add_adjective(({"milky", "white"})) :),
        (: $3->set_long("This is a milky white tea.\n") :),
        (: $3->set_medium_alias("ParsnipTea") :),
    });
  data["GroundParsnip"]["Water"] = item;
  if (!mappingp(data["GroundRadish"])) data["GroundRadish"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.2,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["GroundRadish"]["ParsnipTea"] = item;
  if (!mappingp(data["GroundParsnip"])) data["GroundParsnip"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.2,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["GroundParsnip"]["RadishTea"] = item;
  if (!mappingp(data["ParsnipTea"])) data["ParsnipTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["ParsnipTea"]["RadishTea"] = item;
  if (!mappingp(data["GroundOregano"])) data["GroundOregano"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1, 0.9});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "olive-green tea" ) :),
        (: $3->add_adjective(({"olive-green"})) :),
        (: $3->set_long("This is an olive-green tea.\n") :),
        (: $3->set_medium_alias("LispMedicine") :),
    });
  data["GroundOregano"]["ParsnipRadishTea"] = item;
  if (!mappingp(data["FungoidJuice"])) data["FungoidJuice"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.8/1, 2.2/1 });
  item->result = "/obj/reagents/generic_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("paste") :),
        (: $3->set_short("sticky grey paste") :),
        (: $3->set_long("This is $pile_size$ of sticky grey paste, " +
                        "$amount_size$.\n") :),
        (: $3->set_medium_alias("PastyFungoidJuice") :),
        (: $3->add_adjective("sticky") :),
        (: $3->add_adjective("grey") :),
        (: $3->add_apply_effect("/std/effects/external/fungus_cure",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["FungoidJuice"]["Water"] = item;
  if (!mappingp(data["GroundComfrey"])) data["GroundComfrey"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundComfrey"]["Water"] = item;
  if (!mappingp(data["ComfreyTea"])) data["ComfreyTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyYarrowTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["ComfreyTea"]["GroundYarrow"] = item;
  if (!mappingp(data["AurumPotable"])) data["AurumPotable"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "dull slightly metallic liquid" ) :),
        (: $3->set_long("This is a dull, slightly metallic liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("MercuricWater") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AurumPotable"]["Cinoper"] = item;
  if (!mappingp(data["HeatTransient"])) data["HeatTransient"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_kibrit";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["HeatTransient"]["Kibrit"] = item;
  if (!mappingp(data["HeatedKibrit"])) data["HeatedKibrit"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3,0.7});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "yellow gelatinous liquid" ) :),
        (: $3->set_long("This is a yellow gelatinous liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("YellowGelatinousLiquid") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["HeatedKibrit"]["MercuricWater"] = item;
  if (!mappingp(data["Realgar"])) data["Realgar"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = "/d/sur/Haunted_House/transients/vitriol&goldensolid";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["Realgar"]["YellowGelatinousLiquid"] = item;
  if (!mappingp(data["AquaFortis"])) data["AquaFortis"] = ([]);
  item = new( class reaction );
  item->ratio = 0.0001;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "lump" ) :),
        (: $3->set_short( "green lump" ) :),
        (: $3->set_long("This is a green lump, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective("green") :),
        (: $3->set_medium_alias("GreenLump") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AquaFortis"]["GoldenYellowSolid"] = item;
  if (!mappingp(data["AquaFortis"])) data["AquaFortis"] = ([]);
  item = new( class reaction );
  item->ratio = 400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "aqua vitae" ) :),
        (: $3->set_long("This is some aqua vitae, "
              " about $pile_size$.  Very concentrated stuff.\n") :),
        (: $3->add_alias("aqua vitae") :),
        (: $3->set_medium_alias("AquaVitae") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AquaFortis"]["GreenLump"] = item;
  if (!mappingp(data["GreenLump"])) data["GreenLump"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_green_lump";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["GreenLump"]["HeatTransient"] = item;
  if (!mappingp(data["HeatedGreenLump"])) data["HeatedGreenLump"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "milky liquid" ) :),
        (: $3->set_long("This is a milky liquid, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective("milky") :),
        (: $3->set_medium_alias("UndistilledSheepPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slimesheep", 20) :)
    });
  data["HeatedGreenLump"]["Saffron"] = item;
  if (!mappingp(data["Ectoplasm"])) data["Ectoplasm"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "gel" ) :),
        (: $3->set_short( "sickly green gel" ) :),
        (: $3->set_long("This is a sickly green gel, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("GreenGel") :),
        (: $3->add_adjective(({"sickly", "green"})) :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["Ectoplasm"]["SheepUrine"] = item;
  if (!mappingp(data["GreenGel"])) data["GreenGel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8, 1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "fluid" ) :),
        (: $3->set_short( "light green viscous fluid" ) :),
        (: $3->set_long("This is a light green viscous fluid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("SpideryGel") :),
        (: $3->add_adjective(({"sickly", "green"})) :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["GreenGel"]["SpiderWeb"] = item;
  if (!mappingp(data["HeatTransient"])) data["HeatTransient"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_tallow";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["HeatTransient"]["Tallow"] = item;
  if (!mappingp(data["HeatedTallow"])) data["HeatedTallow"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3, 0.7});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "goo" ) :),
        (: $3->set_short( "green-tinted goo" ) :),
        (: $3->set_long("This is a green-tinted goo, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("GreenTintedGoo") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["HeatedTallow"]["SpideryGel"] = item;
  if (!mappingp(data["GreenTintedGoo"])) data["GreenTintedGoo"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.8,2.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "brown liquid" ) :),
        (: $3->set_long("This is a brown liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("BrownLiquid") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["GreenTintedGoo"]["PumpkinJuice"] = item;
  if (!mappingp(data["BrownLiquid"])) data["BrownLiquid"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.0, 40.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "fluid" ) :),
        (: $3->set_short( "yellow flourescent fluid" ) :),
        (: $3->set_long("This is a yellow flourescent fluid, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective(({"yellow", "flourescent"})) :),
        (: $3->set_medium_alias("UndistilledBabyPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/babyslime", 20) :)
    });
  data["BrownLiquid"]["OctironFilings"] = item;
  if (!mappingp(data["Kibrit"])) data["Kibrit"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "powder" ) :),
        (: $3->set_short( "light yellow powder" ) :),
        (: $3->add_adjective(({"light", "yellow"})) :),
        (: $3->set_long("This is some light yellow powder, $amount_size$.\n") :),
        (: $3->set_medium_alias("KibritTalcum") :),
    });
  data["Kibrit"]["TalcumPowder"] = item;
  if (!mappingp(data["AurumPotable"])) data["AurumPotable"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "solution" ) :),
        (: $3->set_short( "smelly milky-golden solution" ) :),
        (: $3->add_adjective(({"smelly", "milky-golden"})) :),
        (: $3->set_long("This is a smelly, milky-golden solution, "
             "$amount_size$.\n") :),
        (: $3->add_eat_effect("/std/effects/ingested/frog_repellent",
              100) :),
        (: $3->set_medium_alias("FrogRepellent") :),
    });
  data["AurumPotable"]["KibritTalcum"] = item;
  if (!mappingp(data["GroundVenom"])) data["GroundVenom"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("poison") :),
        (: $3->set_short("deadly poison") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("VenomPoison") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundVenom"]["Water"] = item;
  if (!mappingp(data["VenomPoison"])) data["VenomPoison"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("poison") :),
        (: $3->set_short("deadly poison") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("VenomCatalystPoison") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["VenomPoison"]["GroundCatalyst"] = item;
  if (!mappingp(data["GroundKlatchianFleabane"])) data["GroundKlatchianFleabane"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/50, 5.0/50 });
  item->result = "/obj/reagents/generic_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("paste") :),
        (: $3->set_short("lavender paste") :),
        (: $3->set_long("This is $pile_size$ of lavender paste, " +
                        "$amount_size$.\n") :),
        (: $3->set_medium_alias("PastyKlatchianFleabane") :),
        (: $3->add_adjective("lavender") :)
    });
  data["GroundKlatchianFleabane"]["Water"] = item;
  if (!mappingp(data["GroundStinkingMayweed"])) data["GroundStinkingMayweed"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/50, 5.0/50 });
  item->result = "/obj/reagents/flea_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_medium_alias("FleaSalve") :),
        (: $3->add_apply_effect("/std/effects/external/flea_cure",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.healing")/20)
        :)
    });
  data["GroundStinkingMayweed"]["PastyKlatchianFleabane"] = item;
  if (!mappingp(data["GroundParsley"])) data["GroundParsley"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "dark green tea" ) :),
        (: $3->add_adjective(({"dark", "green"})) :),
        (: $3->set_long("This is a dark green, fresh-smelling tea.\n") :),
        (: $3->set_medium_alias("ParsleyTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/breath_fresh") :),
    });
  data["GroundParsley"]["Water"] = item;
  if (!mappingp(data["GroundSage"])) data["GroundSage"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "grey-green tea" ) :),
        (: $3->add_adjective(({"grey-green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a grey-green tea.\n") :),
        (: $3->set_medium_alias("SageTea") :),
    });
  data["GroundSage"]["Water"] = item;
  if (!mappingp(data["FeatherStir"])) data["FeatherStir"] = ([]);
  item = new( class reaction );
  item->ratio = 0.25;
  item->result = LIQUID_OBJ;
  item->result_amt = 0.8;
  item->func = ({
        (: $3->set_name( "potion" ) :),
        (: $3->set_short( "teal green potion" ) :),
        (: $3->add_adjective(({"teal","green"})) :),
        (: $3->set_long("This is a teal green potion.\n") :),
        (: $3->set_medium_alias("SageIntPotion") :),
        (: $3->add_eat_effect("/std/effects/ingested/int_bonus",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/30) :),
    });
  data["FeatherStir"]["SageTea"] = item;
  if (!mappingp(data["GroundSpider"])) data["GroundSpider"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "purple tea" ) :),
        (: $3->add_adjective(({"purple"})) :),
        (: $3->set_long("This is a purple tea.\n") :),
        (: $3->set_medium_alias("SpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
    });
  data["GroundSpider"]["Water"] = item;
  if (!mappingp(data["GroundBasil"])) data["GroundBasil"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "green-blue tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"green-blue"})) :),
        (: $3->set_long("This is a green-blue tea.\n") :),
        (: $3->set_medium_alias("BasilTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundBasil"]["Water"] = item;
  if (!mappingp(data["GroundThyme"])) data["GroundThyme"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "greenish tea" ) :),
        (: $3->add_adjective(({"greenish"})) :),
        (: $3->set_long("This is a greenish tea.\n") :),
        (: $3->set_medium_alias("ThymeTea") :),
    });
  data["GroundThyme"]["Water"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["GroundSpider"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["GroundSpider"] = item;
  if (!mappingp(data["GroundFennel"])) data["GroundFennel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundFennel"]["SpiderTea"] = item;
  if (!mappingp(data["BasilSpiderTea"])) data["BasilSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilSpiderTea"]["GroundFennel"] = item;
  if (!mappingp(data["BasilFennelTea"])) data["BasilFennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) )  :),
    });
  data["BasilFennelTea"]["GroundSpider"] = item;
  if (!mappingp(data["FennelSpiderTea"])) data["FennelSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["FennelSpiderTea"]["GroundBasil"] = item;
  if (!mappingp(data["BasilSpiderTea"])) data["BasilSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilSpiderTea"]["FennelTea"] = item;
  if (!mappingp(data["BasilFennelTea"])) data["BasilFennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilFennelTea"]["SpiderTea"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilTea"]["FennelSpiderTea"] = item;
  if (!mappingp(data["GroundFennel"])) data["GroundFennel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "pale yellow tea" ) :),
        (: $3->add_adjective(({"pale yellow"})) :),
        (: $3->set_long("This is a pale yellow tea.\n") :),
        (: $3->set_medium_alias("FennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundFennel"]["Water"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["GroundFennel"] = item;
  if (!mappingp(data["GroundBasil"])) data["GroundBasil"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundBasil"]["SpiderTea"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["GroundBasil"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["FennelTea"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["SpiderTea"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["SpiderTea"] = item;
  if (!mappingp(data["GroundEyebright"])) data["GroundEyebright"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.6,0.8});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"yellow"})) :),
        (: $3->set_long("This is a yellow tea.\n") :),
        (: $3->set_medium_alias("EyebrightTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect"):),
    });
  data["GroundEyebright"]["Water"] = item;
  if (!mappingp(data["GroundCarrot"])) data["GroundCarrot"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.6,0.8});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "orange tea" ) :),
        (: $3->add_adjective(({"orange"})) :),
        (: $3->set_long("This is a orange tea.\n") :),
        (: $3->set_medium_alias("CarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["GroundCarrot"]["Water"] = item;
  if (!mappingp(data["CarrotTea"])) data["CarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect"):),
    });
  data["CarrotTea"]["EyebrightTea"] = item;
  if (!mappingp(data["CarrotTea"])) data["CarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.25,1.6667});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["CarrotTea"]["GroundEyebright"] = item;
  if (!mappingp(data["EyebrightTea"])) data["EyebrightTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.25,1.6667});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["EyebrightTea"]["GroundCarrot"] = item;
  if (!mappingp(data["EyebrightCarrotTea"])) data["EyebrightCarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({3.0,4.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "red-orange tea" ) :),
        (: $3->add_adjective(({"red-orange"})) :),
        (: $3->set_long("This is a red-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotBunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/10) :),
    });
  data["EyebrightCarrotTea"]["GroundBunnyEyeball"] = item;
  if (!mappingp(data["BunnyEyeballTea"])) data["BunnyEyeballTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.5,2.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "red-orange tea" ) :),
        (: $3->add_adjective(({"red-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a red-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotBunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/10) :),
    });
  data["BunnyEyeballTea"]["EyebrightCarrotTea"] = item;
  if (!mappingp(data["GroundBunnyEyeball"])) data["GroundBunnyEyeball"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "red tea" ) :),
        (: $3->add_adjective(({"red"})) :),
        (: $3->set_long("This is a red tea.\n") :),
        (: $3->set_medium_alias("BunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["GroundBunnyEyeball"]["Water"] = item;
  if (!mappingp(data["DriedSlug"])) data["DriedSlug"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = "/d/sur/Scrogden/items/slugsoup";
  item->result_amt = 1.0;
  data["DriedSlug"]["Water"] = item;
  if (!mappingp(data["GroundFloppyMadman"])) data["GroundFloppyMadman"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "water" ) :),
        (: $3->set_short( "pale brownish green water" ) :),
        (: $3->set_long("This is some pale green water, with "
                        "a brownish tint to it, about $pile_size$.\n") :),
        (: $3->set_medium_alias("SpellcheckPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/potion_spellcheck",
            this_player()->query_skill_bonus(
               "magic.methods.physical.brewing" ) / 10 ) :)
    });
  data["GroundFloppyMadman"]["Water"] = item;
  if (!mappingp(data["SecondSightPotion"])) data["SecondSightPotion"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/2500;
  item->result = "/obj/reagents/ss_test.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_duration(600) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/water.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->add_picture_command() :),
        (: $3->start_reaction() :)
    });
  data["SecondSightPotion"]["Water"] = item;
  if (!mappingp(data["RamtopsScumble"])) data["RamtopsScumble"] = ([]);
  item = new( class reaction );
  item->ratio = 2400/400.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("scumble") :),
        (: $3->set_short("sparkly scumble") :),
        (: $3->set_long("This is scumble with some sparkly "
               "sherbet traces in it, $amount_size$.\n") :),
        (: $3->add_eat_effect("/std/effects/ingested/drunk", 1500) :),
        (: $3->set_medium_alias("SherbetScumble") :),
    });
  data["RamtopsScumble"]["Sherbet"] = item;
  if (!mappingp(data["GroundThyme"])) data["GroundThyme"] = ([]);
  item = new( class reaction );
  item->ratio = 200/2800.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("bomb") :),
        (: $3->add_adjective("thyme") :),
        (: $3->set_short("thyme bomb") :),
        (: $3->set_long("This is a thyme bomb, a drink that looks like "
                        "sparkly scumble, $pile_size$.") :),
        (: $3->add_eat_effect("/std/effects/ingested/drunk", 1500) :),
        (: $3->set_medium_alias("ThymeBomb") :),
        (: call_out( (: environment($1)->
           add_effect( "/w/dragonkin/effects/thyme_bomb", 
           ({ this_player()->
           query_skill_bonus("magic.methods.physical.brewing"), $1 }) ) :),
           1, $3 ) :),
        (: call_out( (: environment($1)->init() :), 2, $3 ) :)
    });
  data["GroundThyme"]["SherbetScumble"] = item;
  return data;
}
#include <reaction.h>
void dest_me() { destruct( this_object() ); }
mixed data_return() {
  class reaction item;
  mapping data = ([ ]);

  if (!mappingp(data["GroundDeadlyNightshade"])) data["GroundDeadlyNightshade"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/600, 1.0/1000 });
  item->result = "/obj/reagents/transient_liquid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("coffee") :),
        (: $3->set_short("coffee") :),
        (: $3->set_long("This is some freshly made coffee, $amount_size$.\n")
            :),
        (: $3->set_progress_msg( ({
            ({0, 0}),
            ({0, 0}),
            ({"The liquid in the @@short:#env#@@ darkens slightly.\n", ({
                "set_medium_alias:#obj#|TransientCoffee"})}),
            ({0, 0}),
            ({0, 0})
            }) ) :),
        (: $3->set_medium_alias("PreTransientCoffee") :),
        (: $3->add_eat_effect("/std/effects/ingested/poison.c", 10) :),
        (: $3->set_duration(30) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/poison_coffee.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PoisonCoffee") :),
        (: $3->set_continuous() :),
        (: $3->set_liquid() :),
        (: $3->start_reaction() :)
    });
  data["GroundDeadlyNightshade"]["LiquidCoffee"] = item;
  if (!mappingp(data["TransientCoffee"])) data["TransientCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 0, 2500 });
  item->result = "/obj/reagents/shimmer.ob";
  item->result_amt = 1.0;
  item->message = "Something begins to happen in the @@short:#env#@@...\n";
  item->func = ({
        (: $3->set_short("dimly glowing liquid") :),
        (: $3->set_duration(20) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/panic.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PanicPotion") :),
        (: $3->start_reaction() :)
    });
  data["TransientCoffee"]["TransientPanic"] = item;
  if (!mappingp(data["TransientCoffee"])) data["TransientCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 0, 2500 });
  item->result = "/obj/reagents/shimmer.ob";
  item->result_amt = 1.0;
  item->message = "Something begins to happen in the @@short:#env#@@...\n";
  item->func = ({
        (: $3->set_short("dimly glowing liquid") :),
        (: $3->set_duration(20) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/perception.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->set_result_alias("PerceptionPotion") :),
        (: $3->start_reaction() :)
    });
  data["TransientCoffee"]["TransientPerception"] = item;
  if (!mappingp(data["GroundCoffee"])) data["GroundCoffee"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/60, 1.0/40 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("coffee") :),
        (: $3->set_short("coffee") :),
        (: $3->set_long("This is some freshly made coffee, $amount_size$.\n")
            :),
        (: $3->add_plural("coffee") :),
        (: $3->set_medium_alias("LiquidCoffee") :),
        (: tell_room($5, "The " + $2->short() + " in " + $4->the_short() +
            " turns brown.\n") :),
        (: $3->set_medium_alias("LiquidCoffee") :)
    });
  data["GroundCoffee"]["Water"] = item;
  if (!mappingp(data["GroundComfreyLeaf"])) data["GroundComfreyLeaf"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundComfreyLeaf"]["Water"] = item;
  if (!mappingp(data["ComfreyTea"])) data["ComfreyTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyYarrowTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * 2 * $2->query_amount())
        :)
    });
  data["ComfreyTea"]["GroundYarrowLeaf"] = item;
  if (!mappingp(data["GroundWildGarlic"])) data["GroundWildGarlic"] = ([]);
  item = new( class reaction );
  item->ratio = 200/2800.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
     (: $3->set_name( "cure" ) :),
     (: $3->set_short( "cold cure" ) :),
     (: $3->set_long( "This is a cold curing syrup.") :),
     (: $3->set_medium_alias( "ColdCureSyrup" ) :),
     (: $3->add_eat_effect("/std/effects/healing/cold_remedy",
          this_player()->query_skill_bonus(
            "magic.methods.physical.healing")*10) :),
     (: $3->add_eat_effect("/std/effects/ingested/garlic_breath",
          this_player()->query_skill_bonus(
            "magic.methods.physical.healing")) :)
   });
  data["GroundWildGarlic"]["Honey"] = item;
  if (!mappingp(data["GroundCabbage"])) data["GroundCabbage"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "vegetable" ) :),
        (: $3->set_short( "shredded vegetables" ) :),
        (: $3->add_adjective(({"shredded"})) :),
        (: $3->add_alias("vegetables") :),
        (: $3->set_long("This is some shredded vegetables.  Needs something more...\n") :),
        (: $3->set_medium_alias("ShreddedVegetables") :),
    });
  data["GroundCabbage"]["GroundCarrot"] = item;
  if (!mappingp(data["RanchSaladDressing"])) data["RanchSaladDressing"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.5});
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "coleslaw" ) :),
        (: $3->set_short( "coleslaw" ) :),
        (: $3->set_long("This is some delicious coleslaw.  Yum!!!\n") :),
        (: $3->set_medium_alias("Coleslaw") :),
    });
  data["RanchSaladDressing"]["ShreddedVegetables"] = item;
  if (!mappingp(data["GroundMolassesCookie"])) data["GroundMolassesCookie"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.7, 3.0});
  item->result = "/obj/reactions/generic_dough.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "dough" ) :),
        (: $3->set_short( "medicinal dough" ) :),
        (: $3->add_adjective(({"medicinal"})) :),
        (: $3->set_long("This is a medicinal dough.  It smells of molasses.\n") :),
        (: $3->set_medium_alias("MedicinalDough") :),
    });
  data["GroundMolassesCookie"]["LispMedicine"] = item;
  if (!mappingp(data["GroundRadish"])) data["GroundRadish"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "pale pink tea" ) :),
        (: $3->add_adjective(({"pale", "pink"})) :),
        (: $3->set_long("This is a pale pink tea.\n") :),
        (: $3->set_medium_alias("RadishTea") :),
    });
  data["GroundRadish"]["Water"] = item;
  if (!mappingp(data["GroundParsnip"])) data["GroundParsnip"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky white tea" ) :),
        (: $3->add_adjective(({"milky", "white"})) :),
        (: $3->set_long("This is a milky white tea.\n") :),
        (: $3->set_medium_alias("ParsnipTea") :),
    });
  data["GroundParsnip"]["Water"] = item;
  if (!mappingp(data["GroundRadish"])) data["GroundRadish"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.2,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["GroundRadish"]["ParsnipTea"] = item;
  if (!mappingp(data["GroundParsnip"])) data["GroundParsnip"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.2,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["GroundParsnip"]["RadishTea"] = item;
  if (!mappingp(data["ParsnipTea"])) data["ParsnipTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "milky pink tea" ) :),
        (: $3->add_adjective(({"milky","pink"})) :),
        (: $3->set_long("This is a milky pink tea.\n") :),
        (: $3->set_medium_alias("ParsnipRadishTea") :),
    });
  data["ParsnipTea"]["RadishTea"] = item;
  if (!mappingp(data["GroundOregano"])) data["GroundOregano"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1, 0.9});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "olive-green tea" ) :),
        (: $3->add_adjective(({"olive-green"})) :),
        (: $3->set_long("This is an olive-green tea.\n") :),
        (: $3->set_medium_alias("LispMedicine") :),
    });
  data["GroundOregano"]["ParsnipRadishTea"] = item;
  if (!mappingp(data["FungoidJuice"])) data["FungoidJuice"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.8/1, 2.2/1 });
  item->result = "/obj/reagents/generic_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("paste") :),
        (: $3->set_short("sticky grey paste") :),
        (: $3->set_long("This is $pile_size$ of sticky grey paste, " +
                        "$amount_size$.\n") :),
        (: $3->set_medium_alias("PastyFungoidJuice") :),
        (: $3->add_adjective("sticky") :),
        (: $3->add_adjective("grey") :),
        (: $3->add_apply_effect("/std/effects/external/fungus_cure",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["FungoidJuice"]["Water"] = item;
  if (!mappingp(data["GroundComfrey"])) data["GroundComfrey"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundComfrey"]["Water"] = item;
  if (!mappingp(data["ComfreyTea"])) data["ComfreyTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("tea") :),
        (: $3->set_short("pale tea") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("ComfreyYarrowTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["ComfreyTea"]["GroundYarrow"] = item;
  if (!mappingp(data["AurumPotable"])) data["AurumPotable"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "dull slightly metallic liquid" ) :),
        (: $3->set_long("This is a dull, slightly metallic liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("MercuricWater") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AurumPotable"]["Cinoper"] = item;
  if (!mappingp(data["HeatTransient"])) data["HeatTransient"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_kibrit";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["HeatTransient"]["Kibrit"] = item;
  if (!mappingp(data["HeatedKibrit"])) data["HeatedKibrit"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3,0.7});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "yellow gelatinous liquid" ) :),
        (: $3->set_long("This is a yellow gelatinous liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("YellowGelatinousLiquid") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["HeatedKibrit"]["MercuricWater"] = item;
  if (!mappingp(data["Realgar"])) data["Realgar"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = "/d/sur/Haunted_House/transients/vitriol&goldensolid";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["Realgar"]["YellowGelatinousLiquid"] = item;
  if (!mappingp(data["AquaFortis"])) data["AquaFortis"] = ([]);
  item = new( class reaction );
  item->ratio = 0.0001;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "lump" ) :),
        (: $3->set_short( "green lump" ) :),
        (: $3->set_long("This is a green lump, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective("green") :),
        (: $3->set_medium_alias("GreenLump") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AquaFortis"]["GoldenYellowSolid"] = item;
  if (!mappingp(data["AquaFortis"])) data["AquaFortis"] = ([]);
  item = new( class reaction );
  item->ratio = 400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "aqua vitae" ) :),
        (: $3->set_long("This is some aqua vitae, "
              " about $pile_size$.  Very concentrated stuff.\n") :),
        (: $3->add_alias("aqua vitae") :),
        (: $3->set_medium_alias("AquaVitae") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["AquaFortis"]["GreenLump"] = item;
  if (!mappingp(data["GreenLump"])) data["GreenLump"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_green_lump";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["GreenLump"]["HeatTransient"] = item;
  if (!mappingp(data["HeatedGreenLump"])) data["HeatedGreenLump"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "milky liquid" ) :),
        (: $3->set_long("This is a milky liquid, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective("milky") :),
        (: $3->set_medium_alias("UndistilledSheepPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slimesheep", 20) :)
    });
  data["HeatedGreenLump"]["Saffron"] = item;
  if (!mappingp(data["Ectoplasm"])) data["Ectoplasm"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8,1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "gel" ) :),
        (: $3->set_short( "sickly green gel" ) :),
        (: $3->set_long("This is a sickly green gel, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("GreenGel") :),
        (: $3->add_adjective(({"sickly", "green"})) :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["Ectoplasm"]["SheepUrine"] = item;
  if (!mappingp(data["GreenGel"])) data["GreenGel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.8, 1.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "fluid" ) :),
        (: $3->set_short( "light green viscous fluid" ) :),
        (: $3->set_long("This is a light green viscous fluid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("SpideryGel") :),
        (: $3->add_adjective(({"sickly", "green"})) :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["GreenGel"]["SpiderWeb"] = item;
  if (!mappingp(data["HeatTransient"])) data["HeatTransient"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = "/d/sur/Haunted_House/transients/heated_tallow";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->start_reaction() :)
    });
  data["HeatTransient"]["Tallow"] = item;
  if (!mappingp(data["HeatedTallow"])) data["HeatedTallow"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3, 0.7});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "goo" ) :),
        (: $3->set_short( "green-tinted goo" ) :),
        (: $3->set_long("This is a green-tinted goo, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("GreenTintedGoo") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["HeatedTallow"]["SpideryGel"] = item;
  if (!mappingp(data["GreenTintedGoo"])) data["GreenTintedGoo"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.8,2.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "liquid" ) :),
        (: $3->set_short( "brown liquid" ) :),
        (: $3->set_long("This is a brown liquid, "
              " about $pile_size$.\n") :),
        (: $3->set_medium_alias("BrownLiquid") :),
        (: $3->add_eat_effect( "/std/effects/ingested/slime", 20) :)
    });
  data["GreenTintedGoo"]["PumpkinJuice"] = item;
  if (!mappingp(data["BrownLiquid"])) data["BrownLiquid"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.0, 40.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "fluid" ) :),
        (: $3->set_short( "yellow flourescent fluid" ) :),
        (: $3->set_long("This is a yellow flourescent fluid, "
              " about $pile_size$.\n") :),
        (: $3->add_adjective(({"yellow", "flourescent"})) :),
        (: $3->set_medium_alias("UndistilledBabyPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/babyslime", 20) :)
    });
  data["BrownLiquid"]["OctironFilings"] = item;
  if (!mappingp(data["Kibrit"])) data["Kibrit"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "powder" ) :),
        (: $3->set_short( "light yellow powder" ) :),
        (: $3->add_adjective(({"light", "yellow"})) :),
        (: $3->set_long("This is some light yellow powder, $amount_size$.\n") :),
        (: $3->set_medium_alias("KibritTalcum") :),
    });
  data["Kibrit"]["TalcumPowder"] = item;
  if (!mappingp(data["AurumPotable"])) data["AurumPotable"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = "/obj/reagents/generic_solid.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "solution" ) :),
        (: $3->set_short( "smelly milky-golden solution" ) :),
        (: $3->add_adjective(({"smelly", "milky-golden"})) :),
        (: $3->set_long("This is a smelly, milky-golden solution, "
             "$amount_size$.\n") :),
        (: $3->add_eat_effect("/std/effects/ingested/frog_repellent",
              100) :),
        (: $3->set_medium_alias("FrogRepellent") :),
    });
  data["AurumPotable"]["KibritTalcum"] = item;
  if (!mappingp(data["GroundVenom"])) data["GroundVenom"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("poison") :),
        (: $3->set_short("deadly poison") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("VenomPoison") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["GroundVenom"]["Water"] = item;
  if (!mappingp(data["VenomPoison"])) data["VenomPoison"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 400.0, 2400.0 });
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("poison") :),
        (: $3->set_short("deadly poison") :),
        (: $3->set_long("This is a pale coloured tea, $pile_size$.") :),
        (: $3->set_medium_alias("VenomCatalystPoison") :),
        (: $3->add_eat_effect("/std/effects/ingested/basic_healing",
                $1->query_eat_effects()["/std/effects/ingested/basic_healing"]
                  * this_player()->query_skill_bonus(
                        "magic.methods.physical.brewing")/10)
        :)
    });
  data["VenomPoison"]["GroundCatalyst"] = item;
  if (!mappingp(data["GroundKlatchianFleabane"])) data["GroundKlatchianFleabane"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/50, 5.0/50 });
  item->result = "/obj/reagents/generic_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("paste") :),
        (: $3->set_short("lavender paste") :),
        (: $3->set_long("This is $pile_size$ of lavender paste, " +
                        "$amount_size$.\n") :),
        (: $3->set_medium_alias("PastyKlatchianFleabane") :),
        (: $3->add_adjective("lavender") :)
    });
  data["GroundKlatchianFleabane"]["Water"] = item;
  if (!mappingp(data["GroundStinkingMayweed"])) data["GroundStinkingMayweed"] = ([]);
  item = new( class reaction );
  item->ratio = ({ 1.0/50, 5.0/50 });
  item->result = "/obj/reagents/flea_salve.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_medium_alias("FleaSalve") :),
        (: $3->add_apply_effect("/std/effects/external/flea_cure",
                this_player()->query_skill_bonus(
                        "magic.methods.physical.healing")/20)
        :)
    });
  data["GroundStinkingMayweed"]["PastyKlatchianFleabane"] = item;
  if (!mappingp(data["GroundParsley"])) data["GroundParsley"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "dark green tea" ) :),
        (: $3->add_adjective(({"dark", "green"})) :),
        (: $3->set_long("This is a dark green, fresh-smelling tea.\n") :),
        (: $3->set_medium_alias("ParsleyTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/breath_fresh") :),
    });
  data["GroundParsley"]["Water"] = item;
  if (!mappingp(data["GroundSage"])) data["GroundSage"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.4,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "grey-green tea" ) :),
        (: $3->add_adjective(({"grey-green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a grey-green tea.\n") :),
        (: $3->set_medium_alias("SageTea") :),
    });
  data["GroundSage"]["Water"] = item;
  if (!mappingp(data["FeatherStir"])) data["FeatherStir"] = ([]);
  item = new( class reaction );
  item->ratio = 0.25;
  item->result = LIQUID_OBJ;
  item->result_amt = 0.8;
  item->func = ({
        (: $3->set_name( "potion" ) :),
        (: $3->set_short( "teal green potion" ) :),
        (: $3->add_adjective(({"teal","green"})) :),
        (: $3->set_long("This is a teal green potion.\n") :),
        (: $3->set_medium_alias("SageIntPotion") :),
        (: $3->add_eat_effect("/std/effects/ingested/int_bonus",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/30) :),
    });
  data["FeatherStir"]["SageTea"] = item;
  if (!mappingp(data["GroundSpider"])) data["GroundSpider"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "purple tea" ) :),
        (: $3->add_adjective(({"purple"})) :),
        (: $3->set_long("This is a purple tea.\n") :),
        (: $3->set_medium_alias("SpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
    });
  data["GroundSpider"]["Water"] = item;
  if (!mappingp(data["GroundBasil"])) data["GroundBasil"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "green-blue tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"green-blue"})) :),
        (: $3->set_long("This is a green-blue tea.\n") :),
        (: $3->set_medium_alias("BasilTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundBasil"]["Water"] = item;
  if (!mappingp(data["GroundThyme"])) data["GroundThyme"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.3,0.6});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "greenish tea" ) :),
        (: $3->add_adjective(({"greenish"})) :),
        (: $3->set_long("This is a greenish tea.\n") :),
        (: $3->set_medium_alias("ThymeTea") :),
    });
  data["GroundThyme"]["Water"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["GroundSpider"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["GroundSpider"] = item;
  if (!mappingp(data["GroundFennel"])) data["GroundFennel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundFennel"]["SpiderTea"] = item;
  if (!mappingp(data["BasilSpiderTea"])) data["BasilSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilSpiderTea"]["GroundFennel"] = item;
  if (!mappingp(data["BasilFennelTea"])) data["BasilFennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) )  :),
    });
  data["BasilFennelTea"]["GroundSpider"] = item;
  if (!mappingp(data["FennelSpiderTea"])) data["FennelSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({6.67,20});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["FennelSpiderTea"]["GroundBasil"] = item;
  if (!mappingp(data["BasilSpiderTea"])) data["BasilSpiderTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilSpiderTea"]["FennelTea"] = item;
  if (!mappingp(data["BasilFennelTea"])) data["BasilFennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilFennelTea"]["SpiderTea"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.7,2.3});
  item->result = "/obj/reagents/antidote_elixir";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/poison_antidote",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/2 +
    random(this_player()->
    query_skill_bonus("magic.methods.physical.brewing") ) ) :),
    });
  data["BasilTea"]["FennelSpiderTea"] = item;
  if (!mappingp(data["GroundFennel"])) data["GroundFennel"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "pale yellow tea" ) :),
        (: $3->add_adjective(({"pale yellow"})) :),
        (: $3->set_long("This is a pale yellow tea.\n") :),
        (: $3->set_medium_alias("FennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundFennel"]["Water"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["GroundFennel"] = item;
  if (!mappingp(data["GroundBasil"])) data["GroundBasil"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["GroundBasil"]["SpiderTea"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({5,10});
  item->result = LIQUID_OBJ;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["GroundBasil"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "light green tea" ) :),
        (: $3->add_adjective(({"light","green"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a light green tea.\n") :),
        (: $3->set_medium_alias("BasilFennelTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["FennelTea"] = item;
  if (!mappingp(data["BasilTea"])) data["BasilTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "brown tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"brown"})) :),
        (: $3->set_long("This is a brown tea.\n") :),
        (: $3->set_medium_alias("BasilSpiderTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["BasilTea"]["SpiderTea"] = item;
  if (!mappingp(data["FennelTea"])) data["FennelTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "muddy tea" ) :),
        (: $3->add_adjective(({"muddy"})) :),
        (: $3->set_long("This is a muddy tea.\n") :),
        (: $3->set_medium_alias("FennelSpiderTea") :),
        (: $3->add_property("potion",1) :),
        (: $3->add_eat_effect("/std/effects/ingested/cum_poison", 5) :),
        (: $3->add_eat_effect("/std/effects/ingested/weak_poison_cure") :),
    });
  data["FennelTea"]["SpiderTea"] = item;
  if (!mappingp(data["GroundEyebright"])) data["GroundEyebright"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.6,0.8});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->add_adjective(({"yellow"})) :),
        (: $3->set_long("This is a yellow tea.\n") :),
        (: $3->set_medium_alias("EyebrightTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect"):),
    });
  data["GroundEyebright"]["Water"] = item;
  if (!mappingp(data["GroundCarrot"])) data["GroundCarrot"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.6,0.8});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "orange tea" ) :),
        (: $3->add_adjective(({"orange"})) :),
        (: $3->set_long("This is a orange tea.\n") :),
        (: $3->set_medium_alias("CarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["GroundCarrot"]["Water"] = item;
  if (!mappingp(data["CarrotTea"])) data["CarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = 1;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect"):),
    });
  data["CarrotTea"]["EyebrightTea"] = item;
  if (!mappingp(data["CarrotTea"])) data["CarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.25,1.6667});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["CarrotTea"]["GroundEyebright"] = item;
  if (!mappingp(data["EyebrightTea"])) data["EyebrightTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.25,1.6667});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "yellow-orange tea" ) :),
        (: $3->add_adjective(({"yellow-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a yellow-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["EyebrightTea"]["GroundCarrot"] = item;
  if (!mappingp(data["EyebrightCarrotTea"])) data["EyebrightCarrotTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({3.0,4.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "red-orange tea" ) :),
        (: $3->add_adjective(({"red-orange"})) :),
        (: $3->set_long("This is a red-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotBunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/10) :),
    });
  data["EyebrightCarrotTea"]["GroundBunnyEyeball"] = item;
  if (!mappingp(data["BunnyEyeballTea"])) data["BunnyEyeballTea"] = ([]);
  item = new( class reaction );
  item->ratio = ({1.5,2.0});
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->set_short( "red-orange tea" ) :),
        (: $3->add_adjective(({"red-orange"})) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_long("This is a red-orange tea.\n") :),
        (: $3->set_medium_alias("EyebrightCarrotBunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect",
    this_player()->
    query_skill_bonus("magic.methods.physical.brewing")/10) :),
    });
  data["BunnyEyeballTea"]["EyebrightCarrotTea"] = item;
  if (!mappingp(data["GroundBunnyEyeball"])) data["GroundBunnyEyeball"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "tea" ) :),
        (: $3->add_property("potion",1) :),
        (: $3->set_short( "red tea" ) :),
        (: $3->add_adjective(({"red"})) :),
        (: $3->set_long("This is a red tea.\n") :),
        (: $3->set_medium_alias("BunnyEyeballTea") :),
        (: $3->add_eat_effect("/std/effects/ingested/blind_protect") :),
    });
  data["GroundBunnyEyeball"]["Water"] = item;
  if (!mappingp(data["DriedSlug"])) data["DriedSlug"] = ([]);
  item = new( class reaction );
  item->ratio = ({0.1,0.2});
  item->result = "/d/sur/Scrogden/items/slugsoup";
  item->result_amt = 1.0;
  data["DriedSlug"]["Water"] = item;
  if (!mappingp(data["GroundFloppyMadman"])) data["GroundFloppyMadman"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/400;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name( "water" ) :),
        (: $3->set_short( "pale brownish green water" ) :),
        (: $3->set_long("This is some pale green water, with "
                        "a brownish tint to it, about $pile_size$.\n") :),
        (: $3->set_medium_alias("SpellcheckPotion") :),
        (: $3->add_eat_effect( "/std/effects/ingested/potion_spellcheck",
            this_player()->query_skill_bonus(
               "magic.methods.physical.brewing" ) / 10 ) :)
    });
  data["GroundFloppyMadman"]["Water"] = item;
  if (!mappingp(data["SecondSightPotion"])) data["SecondSightPotion"] = ([]);
  item = new( class reaction );
  item->ratio = 1.0/2500;
  item->result = "/obj/reagents/ss_test.ob";
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_duration(600) :),
        (: $3->set_final("morph") :),
        (: $3->set_result("/obj/reagents/water.ob") :),
        (: $3->set_result_amt(1.0) :),
        (: $3->add_picture_command() :),
        (: $3->start_reaction() :)
    });
  data["SecondSightPotion"]["Water"] = item;
  if (!mappingp(data["RamtopsScumble"])) data["RamtopsScumble"] = ([]);
  item = new( class reaction );
  item->ratio = 2400/400.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("scumble") :),
        (: $3->set_short("sparkly scumble") :),
        (: $3->set_long("This is scumble with some sparkly "
               "sherbet traces in it, $amount_size$.\n") :),
        (: $3->add_eat_effect("/std/effects/ingested/drunk", 1500) :),
        (: $3->set_medium_alias("SherbetScumble") :),
    });
  data["RamtopsScumble"]["Sherbet"] = item;
  if (!mappingp(data["GroundThyme"])) data["GroundThyme"] = ([]);
  item = new( class reaction );
  item->ratio = 200/2800.0;
  item->result = LIQUID_OBJ;
  item->result_amt = 1.0;
  item->func = ({
        (: $3->set_name("bomb") :),
        (: $3->add_adjective("thyme") :),
        (: $3->set_short("thyme bomb") :),
        (: $3->set_long("This is a thyme bomb, a drink that looks like "
                        "sparkly scumble, $pile_size$.") :),
        (: $3->add_eat_effect("/std/effects/ingested/drunk", 1500) :),
        (: $3->set_medium_alias("ThymeBomb") :),
        (: call_out( (: environment($1)->
           add_effect( "/w/dragonkin/effects/thyme_bomb", 
           ({ this_player()->
           query_skill_bonus("magic.methods.physical.brewing"), $1 }) ) :),
           1, $3 ) :),
        (: call_out( (: environment($1)->init() :), 2, $3 ) :)
    });
  data["GroundThyme"]["SherbetScumble"] = item;
  return data;
}