/* * ON etc. */ public static string von(State globals) { string output = string.Empty; if (!Database.here(globals, Definitions.LAMP)) { return(actspk(globals.verb)); } else if (globals.limit < 0) { return(Database.rspeak(184)); } else { globals.prop[Definitions.LAMP] = 1; output += Database.rspeak(39); if (globals.wzdark) { globals.wzdark = false; output += Environment.NewLine + Turn.describe(globals); } } return(output); }
/* * POUR */ public static string vpour(State globals) { if (globals.@object == Definitions.BOTTLE || globals.@object == 0) { globals.@object = Database.liq(globals); } if (globals.@object == 0) { return(needobj(globals)); } if (!Database.toting(globals, globals.@object)) { return(actspk(globals.verb)); } if (globals.@object != Definitions.OIL && globals.@object != Definitions.WATER) { return(Database.rspeak(78)); } string output = string.Empty; globals.prop[Definitions.BOTTLE] = 1; globals.place[globals.@object] = 0; if (Database.at(globals, Definitions.PLANT)) { if (globals.@object != Definitions.WATER) { output += Database.rspeak(112); } else { output += Database.pspeak(Definitions.PLANT, globals.prop[Definitions.PLANT] + 1); globals.prop[Definitions.PLANT] = (globals.prop[Definitions.PLANT] + 2) % 6; globals.prop[Definitions.PLANT2] = globals.prop[Definitions.PLANT] / 2; output += Environment.NewLine + Turn.describe(globals); } } else if (Database.at(globals, Definitions.DOOR)) { globals.prop[Definitions.DOOR] = (globals.@object == Definitions.OIL ? 1 : 0); output += Database.rspeak(113 + globals.prop[Definitions.DOOR]); } else { output += Database.rspeak(77); } return(output); }
/* * THROW etc. */ public static string vthrow(State globals) { int msg; int i; if (Database.toting(globals, Definitions.ROD2) && globals.@object == Definitions.ROD && !Database.toting(globals, Definitions.ROD)) { globals.@object = Definitions.ROD2; } if (!Database.toting(globals, globals.@object)) { return(actspk(globals.verb)); } /* * treasure to troll */ if (Database.at(globals, Definitions.TROLL) && globals.@object >= 50 && globals.@object < Definitions.MAXOBJ) { Database.drop(globals, globals.@object, 0); Database.move(globals, Definitions.TROLL, 0); Database.move(globals, (Definitions.TROLL + Definitions.MAXOBJ), 0); Database.drop(globals, Definitions.TROLL2, 117); Database.drop(globals, (Definitions.TROLL2 + Definitions.MAXOBJ), 122); Database.juggle(Definitions.CHASM); return(Database.rspeak(159)); } /* * feed the bears... */ if (globals.@object == Definitions.FOOD && Database.here(globals, Definitions.BEAR)) { globals.@object = Definitions.BEAR; return(vfeed(globals)); } /* * if not axe, same as drop... */ if (globals.@object != Definitions.AXE) { return(vdrop(globals)); } /* * AXE is THROWN */ /* * at a dwarf... */ if ((i = Database.dcheck(globals)) > 0) { msg = 48; if (Database.pct(33)) { globals.dseen[i] = false; globals.dloc[i] = 0; msg = 47; ++globals.dkill; if (globals.dkill == 1) { msg = 149; } } } /* * at a dragon... */ else if (Database.at(globals, Definitions.DRAGON) && globals.prop[Definitions.DRAGON] == 0) { msg = 152; } /* * at the troll... */ else if (Database.at(globals, Definitions.TROLL)) { msg = 158; } /* * at the bear... */ else if (Database.here(globals, Definitions.BEAR) && globals.prop[Definitions.BEAR] == 0) { Database.drop(globals, Definitions.AXE, globals.loc); globals.@fixed[Definitions.AXE] = -1; globals.prop[Definitions.AXE] = 1; Database.juggle(Definitions.BEAR); return(Database.rspeak(164)); } /* * otherwise it is an attack */ else { globals.verb = Definitions.KILL; globals.@object = 0; return(itverb(globals)); } /* * handle the left over axe... */ string output = Database.rspeak(msg); Database.drop(globals, Definitions.AXE, globals.loc); return(Environment.NewLine + Turn.describe(globals)); }