X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=kitten.inf;h=9e029a389a6dfb6c7f0bc9e90fe28f990ac9f5f7;hb=9fde950ff4a787e952fdc8432369eae1d313f1dc;hp=315046d38156e8cd450b9e24c1a323bd6b6e7be1;hpb=3831f7a81aa198bc26fb61db07257d6a9d2270fc;p=rfk-inform.git diff --git a/kitten.inf b/kitten.inf index 315046d..9e029a3 100644 --- a/kitten.inf +++ b/kitten.inf @@ -1,6 +1,6 @@ ! robotfindskitten ! A Zen Simulation -! Release 4 / Serial number 030131 / Inform v6.21 +! Release 7 / Serial number 040523 / Inform v6.21 ! ! [-] |\_/| http://www.robotfindskitten.org ! (+)=C |o o|__ Leonard Richardson (C) 1997, 2000 @@ -24,7 +24,7 @@ ! using the vi/rogue movement keys. The game ends when robotfindskitten. ! Alternatively, you may end the game by hitting the Esc or Q keys. ! -! Developed with Inform 6.21.2 as installed from NetBSD's pkgsrc tree +! Developed with Inform 6.21.4 as installed from NetBSD's pkgsrc tree ! and Frotz 2.42. ! ! @@ -43,29 +43,31 @@ ! 2) If it wasn't already abundantly obvious, this program won't ! compile to Glulx because of copious use of Z-machine assembly ! instructions. +! +! 3) Compiling for V5 or higher is required due to "style" calls. +! Is there a reason why someone would want to compile this for V4 +! or previous? !Switches xv5s; -Switches v5; +Switches v5d2; ! Number of messages ! This must be updated when adding new messages. ! -Constant MESSAGE_NUM 561; +Constant MESSAGE_NUM 800; Constant Nonkitten_Default 20; ! Maxmimum possible number of non-kitten items on the playfield at once. -! I don't know if there's a hard maximum for arrays built into the -! Z-machine. It's just that Inform won't let me set an array's -! dimensions at runtime. +! For whatever reason, this cannot be set dynamically. ! -Constant Nonkitten_Max 256; +Constant Nonkitten_Max 589; -Release 4; -Serial "030131"; +Release 7; +Serial "040523"; ! Presumed release date !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -73,24 +75,21 @@ Constant Story "robotfindskitten"; Constant Headline "^A Zen Simulation^"; -! Number of spaces from the left where Robot and Kitten meet during the -! animation. -! -Constant Anim_Meet 10; -! These are set at runtime. -! -Global Height = 0; +Constant Anim_Meet 10; ! Number of spaces from the left where + ! Robot and Kitten meet during animation. + +Global Height = 0; ! These are set at runtime. Global Width = 0; -Global Back_def = 2; -Global Fore_def = 9; +Global Back_def = 2; ! Black. +Global Fore_def = 9; ! White. -Global TopBar = 5; +Global TopBar = 5; ! Lines from the top. -Global player_x = 0; -Global player_y = 0; -Global player_x_last = 0; +Global player_x = 0; ! Keeping track of where the player was +Global player_y = 0; ! 1 move ago allows us to keep the +Global player_x_last = 0; ! player from walking through obstacles. Global player_y_last = 0; Global kitten_x = 0; @@ -98,7 +97,7 @@ Global kitten_y = 0; Global kitten_char = 0; Global kitten_color = 0; -Global last_message = ""; +Global last_message = ""; ! Always show the last-encountered message. Global nonkitten_count = Nonkitten_Default; @@ -114,7 +113,10 @@ Array already_x --> Nonkitten_Max + 2; Array already_y --> Nonkitten_Max + 2; Array already_msg --> Nonkitten_Max; - +! If a key is held down while the found_kitten animation is playing, +! (0-->1) & $03ff gets corrupted. Seems like it might be a bug +! somewhere in Unix Frotz. +! Global Real_Release = 0; [ Main key; @@ -127,10 +129,6 @@ Global Real_Release = 0; nonkitten_count = Nonkitten_Default; } - ! If a key is held down while the found_kitten animation is playing, - ! (0-->1) & $03ff gets corrupted. Seems like it might be a bug - ! somewhere in Unix Frotz. - ! Real_Release = (0-->1)&$03ff; Width = $22-->0; @@ -150,7 +148,7 @@ Global Real_Release = 0; 'I': print_instructions(); 'A': print_about(); 'T': print_thoughts(); -! 'P': print_all_nki(); +! 'P': print_all_nki(); ! See print_all_nki() below. } if (key == 'Q' || key == $1b) ! $1b == ESC break; @@ -162,6 +160,9 @@ Global Real_Release = 0; [ main_menu psycho; + ! There's a 1:50 chance that the kitten in the title screen + ! will have a "psycho" appearance. + ! psycho = random(50); if (psycho == 1) psycho = true; @@ -188,32 +189,28 @@ Global Real_Release = 0; print "Leonard Richardson (C) 1997, 2000"; @set_cursor 9 30; print "David Griffith (C) 2002 (Inform Edition)"; - @set_cursor 10 30; print " ", MESSAGE_NUM, " different nonkittens!"; @set_window 0; - print " F) Find Kitten^"; - print " D) Difficulty (", nonkitten_count, ")^"; - print " I) Instructions^"; - print " T) Thoughts^"; - print " A) About^"; - print " Q) Quit^"; - print "^> "; + print " F) Find Kitten^", + " D) Difficulty (", nonkitten_count, ")^", + " I) Instructions^", + " T) Thoughts^", + " A) About^", + " Q) Quit^", + "^> "; ]; -! Copied from module/verblibm.h + +! Copied from module/verblibm.h of the Inform 6.21.3 standard library. ! [ Banner i; if (Story ~= 0) { -#IFV5; style bold; -#ENDIF; print (string) Story; -#IFV5; style roman; -#ENDIF; } if (Headline ~= 0) { print (string) Headline; @@ -286,7 +283,7 @@ Array inbuf -> INBUFSIZE; if (cx < len && inbuf->(2+cx) == '.') break; - ! If user just hit return, use what we have already. + ! If user just hits return, use what we have already. if (len == 0) return init; if (cx == len || inbuf->(2+cx) < '0' || inbuf->(2+cx) > '9') { @@ -330,13 +327,13 @@ Reimplemented in Inform by David Griffith (C) 2002.^ ^ This code is freely redistributable. Do with it what you will, but don't go about claiming you wrote it. I, David Griffith, retain -copyright on this program except for the NKIs imported from the POSIX -imported from the master (aka POSIX) port.^ +copyright on this program except for the NKIs imported from the master +(aka POSIX) port.^ ^ Lots more information on robotfindskitten is available at http://www.robotfindskitten.org.^ ^ -To submit new NKI's please go to the above URL.^ +To submit new NKI's, please go to the above URL.^ ^ ^ Release History:^ @@ -367,34 +364,44 @@ Light overhaul release.^ - Merged in new NKIs from the new POSIX release of robotfindskitten.^ - More NKIs added (561 total).^ ^ +Release 5 / Serial Number 030524^ +Even more NKIs release.^ +- Idiotic typos fixed.^ +- More NKIs added (602 total).^ ^ -Known Bugs:^ +Release 6 / Serial Number 031116^ +Challenge release.^ +- More NKIs added (764 total).^ +- Increased maximum difficulty to 589.^ +- Lots more comments in the source code.^ +- Assorted cleanups in the source code.^ ^ -1) I still don't know why already_seen_xy() occasionally causes Robot to -get placed on top of another object. Fortunately this seems to happen -only very rarely and typically only if the difficulty is set to more -than 200.^ +Release 7 / Serial Number 040523^ +Grammatically correct release.^ +- Grammar corrections from the POSIX port added.^ +- More NKIs added (800 total).^ ^ -2) Under Windows Frotz, Robot used to appear as a solid block. This was -because of a bug in Windows Frotz which incorrectly makes the cursor -opaque. The cursor is now moved off to the upper-right corner so that -the game looks okay on terminals that use something other than reverse -for the cursor. I still can't figure out how to make Inform hide the -cursor completely. At least on xterm and NetBSD's console, -@@64set_cursor -1 doesn't work.^ ^ -3) Under Windows Frotz, an annoying [MORE] prompt appears at the main -menu. This is another bug in Windows Frotz which causes the -interpreter to follow Windows' suggestion something less than 24 or 25 -lines is okay.^ +Known Bugs:^ ^ +1) I still don't know why already_seen_xy() occasionally causes Robot to +get placed on top of another object when a game is started. Fortunately +this seems to happen only very rarely and typically only if the +difficulty is set to more than 200. This bug also seems to very +occasionally put Kitten underneath an NKI.^ ^ -Other Stuff:^ +2) Under earlier versions of Windows Frotz, Robot used to appear as a +solid block. This was because of a bug in Windows Frotz which +incorrectly makes the cursor opaque. The cursor is now moved off to +the upper-right corner so that the game looks okay on terminals that use +something other than reverse for the cursor. I still can't figure out +how to make Inform hide the cursor completely. At least on xterm and +NetBSD's console, @@64set_cursor -1 doesn't work.^ ^ -1) PalmOS mode and screen-resizing was removed because PalmOS mode stunk -and screen-resizing was a failed attempt to make PalmOS mode work. The -native PalmOS port of robotfindskitten looks much better than the Inform -version running on a PalmOS Z-machine interpreter.^ +3) Under Windows Frotz, an annoying [MORE] prompt might appear at the +main menu. This is another bug in Windows Frotz which causes the +interpreter to follow Windows' suggestion that something less than 24 or +25 lines is okay.^ ^ [Press any key to continue.] "; getkey(); @@ -402,7 +409,6 @@ version running on a PalmOS Z-machine interpreter.^ [ print_instructions; - @erase_window $ffff; @split_window TopBar; @set_window 1; @@ -411,16 +417,13 @@ version running on a PalmOS Z-machine interpreter.^ @set_window 0; print "^ In this game, you are Robot ( "; -#IFV5; style reverse; #ENDIF; -print "#"; -#IFV5; style roman; #ENDIF; -print " ). Your job is to find Kitten. This task -is complicated by the existance of various things which are not -Kitten. Robot must touch items to determine if they are Kitten or -not. Move Robot with the cursor keys, the numeric keypad (make sure -numlock is on), or using the vi/rogue/nethack movement keys. The game -ends when robotfindskitten. Alternatively, you may end the game by -hitting the Esc or Q keys.^ +style reverse; print "#"; style roman; +print " ). Your job is to find Kitten. This task is complicated by the +existance of various things which are not Kitten. Robot must touch +items to determine if they are Kitten or not. Move Robot with the +cursor keys, the numeric keypad (make sure numlock is on), or using the +vi/rogue/nethack movement keys. The game ends when robotfindskitten. +Alternatively, you may end the game by hitting the Esc or Q keys.^ ^ [Press any key to continue.] "; getkey(); @@ -428,6 +431,7 @@ hitting the Esc or Q keys.^ [ print_thoughts; + @erase_window $ffff; @split_window TopBar; @set_window 1; @@ -578,6 +582,7 @@ frozen desert beyond. ~FIND KITTEN!~^ @set_colour Fore_def Back_def; ]; + ! Something gets messed up if I make this local to findkitten() ! When going right or left, then up or down to hit the Kitten, the ! animation gets reversed. @@ -598,9 +603,9 @@ Global last_right = false; draw_object(kitten_x, kitten_y, kitten_char, kitten_color); draw_nonkittens(); - #IFV5; style reverse; #ENDIF; + style reverse; draw_object(player_x, player_y, '#'); - #IFV5; style roman; #ENDIF; + style roman; @set_cursor 1 Width; @@ -686,16 +691,16 @@ Global last_right = false; if (i > 0) { if (my_last_right) { robot_x = Anim_Meet - i; - #IFV5; style reverse; #ENDIF; + style reverse; draw_object(robot_x, TopBar - 1, '#'); - #IFV5; style roman; #ENDIF; + style roman; draw_object(Anim_Meet - 1 + i, TopBar - 1, kitten_char, kitten_color); } else { robot_x = Anim_Meet - 1 + i; - #IFV5; style reverse; #ENDIF; + style reverse; draw_object(robot_x, TopBar - 1, '#'); - #IFV5; style roman; #ENDIF; + style roman; draw_object(Anim_Meet - i, TopBar - 1, kitten_char, kitten_color); } @@ -708,9 +713,9 @@ Global last_right = false; draw_object(kitten_x, kitten_y, kitten_char, kitten_color); - #IFV5; style reverse; #ENDIF; + style reverse; draw_object(player_x, player_y, '#'); - #IFV5; style roman; #ENDIF; + style roman; draw_nonkittens(); if (anim_finished == false) { @@ -718,14 +723,15 @@ Global last_right = false; @set_cursor 1 Width; @aread junk 0 10 pause -> junk; } else { - #IFV5; style reverse; #ENDIF; + style reverse; draw_object(player_x, player_y, '#'); - #IFV5; style roman; #ENDIF; + style roman; @set_cursor 1 Width; } } ]; + [ already_seen_xy x y i; for (i = 0: i < already_count: i++) { if (already_x-->already_count == x && @@ -749,7 +755,6 @@ Global last_right = false; kitten_x = get_random_x(); kitten_y = get_random_y(); kitten_color = get_random_color(); - while (already_seen_xy(kitten_x, kitten_y) == true) { kitten_x = get_random_x(); kitten_y = get_random_y(); @@ -761,7 +766,6 @@ Global last_right = false; [ init_robot; player_x = get_random_x(); player_y = get_random_y(); - while (already_seen_xy(player_x, player_y) == true) { player_x = get_random_x(); player_y = get_random_y(); @@ -772,12 +776,10 @@ Global last_right = false; [ init_nonkittens i; already_msg_count = 0; last_message = ""; - for (i = 0: i < nonkitten_count: i++) { nonkitten_x-->i = get_random_x(); nonkitten_y-->i = get_random_y(); nonkitten_color-->i = get_random_color(); - while (already_seen_xy(nonkitten_x-->i, nonkitten_y-->i) == true) { nonkitten_x-->i = get_random_x(); @@ -805,15 +807,13 @@ Global last_right = false; if (fore == "") fore = Back_def; if (back == "") - back = Back_def; - + back = Back_def; @set_colour fore Back_def; if (character) print (char) character; @set_colour Fore_def Back_def; - ]; @@ -851,6 +851,7 @@ Global last_right = false; return num; ]; + [ get_random_color num; num = random(7) + 2; ! 0 and 1 are default color and current color @@ -875,19 +876,18 @@ Global last_right = false; [ get_random_x; + ! Maybe this will need to do something more in the future. return random(Width); ]; -[ get_random_y num ok; - ok = false; +[ get_random_y num; ! Make sure we don't draw in the status bar. - while (ok == false) { + while (true) { num = random(Height); if (num > TopBar) - ok = true; + return num; } - return num; ]; @@ -895,7 +895,7 @@ Global last_right = false; ! development team. ! ! When this function is uncommented and enabled in -! the menu, this will cause a script file to be emitted which contains +! the menu, this will cause a script file to be written which contains ! all NKIs properly formatted. ![ print_all_nki num mystring; @@ -908,7 +908,7 @@ Global last_right = false; !]; -! Note: +! To use '~' or '@' in NKIs, keep the following in mind: ! @@126 == '~' ! @@64 == '@' @@ -995,7 +995,7 @@ Global last_right = false; 79: return "A toenail? What good is a toenail?"; 80: return "You've found the fish! Not that it does you much good in this game."; 81: return "A Buttertonsils bar."; -82: return "One of the few remaining discoes."; +82: return "One of the few remaining discos."; 83: return "Ah, the uniform of a Revolutionary-era minuteman."; 84: return "A punch bowl, filled with punch and lemon slices."; 85: return "It's nothing but a G-thang, baby."; @@ -1006,7 +1006,7 @@ Global last_right = false; 90: return "It's a perpetual immobility machine."; 91: return "~On this spot in 1962, Henry Winkler was sick.~"; 92: return "There's nothing here; it's just an optical illusion."; -93: return "The World's Biggest Motzah Ball!"; +93: return "The World's Biggest Matzoh Ball!"; 94: return "A tribe of cannibals lives here. They eat Malt-O-Meal for breakfast, you know."; 95: return "This appears to be a rather large stack of trashy romance novels."; 96: return "Look out! Exclamation points!"; @@ -1073,7 +1073,7 @@ Global last_right = false; 155: return "This TRS-80 III is eerily silent."; 156: return "A toilet bowl occupies this space."; 157: return "This peg-leg is stuck in a knothole!"; -158: return "It's a solitary vaccuum tube."; +158: return "It's a solitary vacuum tube."; 159: return "This corroded robot is clutching a mitten."; 160: return "~Hi, I'm Anson Williams, TV's 'Potsy'.~"; 161: return "This subwoofer was blown out in 1974."; @@ -1125,7 +1125,7 @@ Global last_right = false; 207: return "Vladimir Lenin's casket rests here."; 208: return "It's a copy of ~Zen and The Art of Robot Maintenance~."; 209: return "This invisible box contains a pantomime horse."; -210: return "A mason jar lies here open. It's label reads: ~do not open!~."; +210: return "A mason jar lies here open. Its label reads: ~do not open!~."; 211: return "A train of thought chugs through here."; 212: return "This jar of pickles expired in 1957."; 213: return "Someone's identity disk lies here."; @@ -1142,7 +1142,7 @@ Global last_right = false; 224: return "It's a Dvorak keyboard."; 225: return "It's a cardboard box full of 8-tracks."; 226: return "Just a broken hard drive containg the archives of Nerth Pork."; -227: return "A broken metronome sits here, it's needle off to one side."; +227: return "A broken metronome sits here, its needle off to one side."; 228: return "A sign reads: ~Go home!~"; 229: return "A sign reads: ~No robots allowed!~"; 230: return "It's the handheld robotfindskitten game, by Tiger."; @@ -1151,7 +1151,7 @@ Global last_right = false; 233: return "A wireframe model of a hot dog rotates in space here."; 234: return "Just the empty husk of a locust."; 235: return "You disturb a murder of crows."; -236: return "It's a copy of the RobotFindsKitten EULA."; +236: return "It's a copy of the robotfindskitten EULA."; 237: return "It's Death."; 238: return "It's an autographed copy of ~Secondary Colors~, by Bob Ross."; 239: return "It is a marzipan dreadnought that appears to have melted and stuck."; @@ -1172,7 +1172,7 @@ Global last_right = false; 251: return "It's Andrew Plotkin plotting something."; 252: return "A half-eaten cheese sandwich."; 253: return "Clang, clang, clang goes the tranny!"; -254: return "A family of integrals are here integrating."; +254: return "A family of integrals is here integrating."; 255: return "A tuft of kitten fur, but no kitten."; 256: return "A bottle of oil! Refreshing!"; 257: return "A shameless plug for Frotz: http://www.cs.csubak.edu/@@126dgriffi/proj/frotz/"; @@ -1185,7 +1185,7 @@ Global last_right = false; 264: return "A discarded bagpipe chanter reed."; 265: return "Big Bird is here looking for Mr. Looper."; 266: return "It's a Linux install CD."; -267: return "You found Puppy! Too bad this isn't ~Robot Finds Puppy~."; +267: return "You found Puppy! Too bad this isn't ~robotfindspuppy~."; 268: return "Several meters of cat5 cable."; 269: return "A scrap of parchment bears the single word, ~meow~."; 270: return "A puddle of chocolate sauce."; @@ -1246,7 +1246,7 @@ Global last_right = false; 325: return "This nonkitten may contain peanuts."; 326: return "A tree with some jelly nailed to it."; 327: return "Ah, the skirl of the pipes and the rustle of the silicon..."; -328: return "You found Parakeet. Too bad this isn't ~Robot Finds Parakeet~."; +328: return "You found Parakeet! Too bad this isn't ~robotfindsparakeet~."; 329: return "A ball of yarn."; 330: return "A big chunk of frozen chocolate pudding."; 331: return "There is no tea here."; @@ -1274,7 +1274,7 @@ Global last_right = false; 353: return "What's that blue thing doing here?"; 354: return "A travel-sized cyclotron."; 355: return "A largish bath towel."; -356: return "You found Chinchilla! Too bad this isn't ~Robot Finds Chinchilla~."; +356: return "You found Chinchilla! Too bad this isn't ~robotfindschinchilla~."; 357: return "A meerkat... not even close."; 358: return "A green yo-yo."; 359: return "A hairless rat."; @@ -1496,6 +1496,258 @@ Global last_right = false; 560: return "It's an inverted billiard ball!"; 561: return "The spectre of Sherlock Holmes wills you onwards."; -default: return "Unknown NKI"; +! The following Non Kitten Items were added by David Griffith for +! Release 5 +! +562: return "It's a cookie shaped like a kitten."; +563: return "It's Professor Feedlebom."; +564: return "A bottle of smelling salts."; +565: return "Dinsdale!"; +566: return "An Enfield Mk3 rifle."; +567: return "An M16 rifle."; +568: return "An M1911A1 pistol."; +569: return "An M9 pistol."; +570: return "It's a gun of some sort."; +571: return "An FN-FAL rifle."; +572: return "An old rusty revolver."; +573: return "An AK-47 rifle."; +574: return "An AK-97 rifle."; +575: return "A Remington 870 shotgun."; +576: return "It's a NetBSD install CD."; +577: return "It's a recursive recursive recursive recursive recursive..."; +578: return "It's Brian Kernigan."; +579: return "It's Dennis Ritchie."; +580: return "It's nothing in particular."; +581: return "Just a box of backscratchers."; +582: return "An expired transistor."; +583: return "Air."; +584: return "A steam-powered bunnytron."; +585: return "Heeeeeeeeeeeeres Johnny!"; +586: return "It's a catalog from some company called Infocom."; +587: return "A dark-emitting diode."; +588: return "A 256 kilobyte write-only memory chip."; +589: return "A box of brand-new nixie tubes."; +590: return "Alien underwear."; +591: return "A sack of hammers."; +592: return "A sack of wet mice."; +593: return "A sack of doorknobs."; +594: return "A rusty melon-baller."; +595: return "An atomic vector plotter."; +596: return "You really don't want to know what this is."; +597: return "A 100 meter long chain of jumbo paper clips."; +598: return "A cockatoo shrieks at you."; +599: return "It's Mary Poppins!"; +600: return "A slightly-used smellovision set."; +601: return "Doodles Weaver is here looking over a horse race schedule."; +602: return "An overflowing bit bucket."; + +! The following Non Kitten Items were added by David Griffith for +! Release 6 +! +603: return "Blarg!"; +604: return "It's a hairy-armed hitchhiker!"; +605: return "A wolf wearing a nightgown is in bed here."; +606: return "A gecko zooms about on a skateboard here."; +607: return "A hovercraft full of eels is parked here."; +608: return "A waffle iron is here and it's still hot."; +609: return "A huge pile of pancakes."; +610: return "A threadbare tweed suit."; +611: return "A rusted safety pin."; +612: return "A model of a twin-hulled sailboat."; +613: return "A jar of lemon curd."; +614: return "~We interrupt this Zen Simulation...~"; +615: return "A sealed tin bearing only the word ~yummy~."; +616: return "It's a groat coated with pocket fluff."; +617: return "You find an Atari 2600 game cartridge with no label."; +618: return "A child's drawing of a kitten."; +619: return "It's a small bouncy creature, but obviously not kitten."; +620: return "It's an unknown area code."; +621: return "A bottle of ammonia."; +622: return "Tweeting birds."; +623: return "It's a rapidly oscillating function."; +624: return "A dogcow moofs at you."; +625: return "A puddle of purple semi-gloss latex paint."; +626: return "It's a merry-go-round (broken down)."; +627: return "The pants that Curly died in."; +628: return "A vanilla pudding pop."; +629: return "It's Jesse James' severed hand and it's still moving."; +630: return "It's more money than you'll ever need."; +631: return "A tiny robot scuttles across the floor."; +632: return "Chunk is here doing the truffle-shuffle."; +633: return "Data is here setting up some booty traps."; +634: return "A waterlogged grand piano."; +635: return "One liter of fuming nitric acid."; +636: return "A gold-dipped rose."; +637: return "Bronzed baby shoes."; +638: return "An electric engraving pencil."; +639: return "A small, featureless, white cube."; +640: return "It's a battery-powered brass lantern."; +641: return "It's an elongated brown sack, smelling of hot peppers."; +642: return "A glass bottle containing a quantity of water."; +643: return "It's a blob of red goo."; +644: return "It's a blob of blue goo."; +645: return "It's a blob of yellow goo."; +646: return "It's a blob of green goo."; +647: return "It's a blob of orange goo."; +648: return "It's a blob of purple goo."; +649: return "It's a blob of black goo."; +650: return "It's a blob of brown goo."; +651: return "A Scooby Snack! Yay!"; +652: return "A squirrel contentedly gnaws on a sprinkler head here."; +653: return "Snacky things."; +654: return "A toupee."; +655: return "Seat cushion fluff."; +656: return "Jacket fluff."; +657: return "Haven't you touched this thing before?"; +658: return "It's a copy of the Book of Found Kittens."; +659: return "It's a nasty knife."; +660: return "It's a grue. Fortunately, they don't like to eat robots."; +661: return "It's a phone book for the 661 area code."; +662: return "A tiny velvet pouch."; +663: return "Brass tacks."; +664: return "It's a rotating potato."; +665: return "Leave that thing alone!"; +666: return "It's the mark of the beast!"; +667: return "A tube of heat sink grease."; +668: return "A dead battery."; +669: return "A pile of irrigation valves."; +670: return "A stony meteorite."; +671: return "An iron meteorite."; +672: return "It's a fragment of an old Russian spacecraft."; +673: return "A large block of dry ice."; +674: return "It's a Commodore 64 computer (in mint condition)."; +675: return "It's an Apple II+ computer (in mint condition)."; +676: return "It's a Kaypro II portable computer."; +677: return "It's a Texas Instruments TI-89 graphing calculator."; +678: return "It's an Atari 800 computer."; +679: return "It's an Amiga 2000 computer."; +680: return "An oddly familiar face shouts ~SCREWTEK!~ from this computer monitor."; +681: return "It's an Osborne portable computer."; +682: return "It's a nameless MSX computer from Japan."; +683: return "A vacuum cleaner appears to have exploded here."; +684: return "It's a model of a catamaran."; +685: return "A cardboard box of sheet metal screws."; +686: return "A brown glass vial labeled ~tincture of iodine~."; +687: return "Just some sort of cat toy."; +688: return "It's a large pile of crumpled notepaper."; +689: return "You've found the decoy kitten!"; +690: return "It's a pile of wine corks."; +691: return "A neat pile of plastic irrigation pipe."; +692: return "It's one of those carpet-covered things for cats to climb."; +693: return "This thing appears to be an ancient Roman breastplate."; +694: return "A claymore."; +695: return "An unripe orange."; +696: return "A toy zeppelin."; +697: return "It's a bucket of mud."; +698: return "It's a bucket of water."; +699: return "A clay pot with grass growing it in sits here."; +700: return "A discarded envelope chewed by Kitten."; +701: return "A hollow voice says ~Fool!~"; +702: return "Several hackles are here and they appear to be up."; +703: return "Just some spite."; +704: return "Vitriol."; +705: return "There is a small mailbox here."; +706: return "A large oriental rug."; +707: return "It's an elvish sword of great antiquity."; +708: return "A large coil of rope is here."; +709: return "You've found a speed bump."; +710: return "It's a whirly thing of some sort."; +711: return "An empty Slurpee cup."; +712: return "This is a disaster area."; +713: return "A small box of fishing weights."; +714: return "A street map of the city of Anaheim."; +715: return "Bits of red construction paper are scattered all about."; +716: return "You won't believe what this is."; +717: return "A meat-scented air-freshener on a string dances in the breeze."; +718: return "A intact clay pigeon."; +719: return "Pieces of broken clay pigeons are scattered all about."; +720: return "This looks like a skateboarding arcade video game."; +721: return "It's a steaming bowl of homemade gnocci."; +722: return "An electric fan lies on its side here."; +723: return "It's something fizzy."; +724: return "A hickory stump."; +725: return "This tiny barbecue is spotlessly clean."; +726: return "A saucer of milk, untouched by Kitten."; +727: return "Insane laughter issues from this vibrating shipping crate."; +728: return "Haven't you checked here already?"; +729: return "Just some rusted lug nuts and an ancient hub cap."; +730: return "A rusty crowbar."; +731: return "A post hole digger is stuck in a pile of dirt here."; +732: return "It's a spade."; +733: return "It's the Queen of Hearts! ~Off with their heads!~, she shouts."; +734: return "An assortment of highly-nutritious vegetables."; +735: return "A dead click beetle."; +736: return "A roll of scratch-and-sniff stickers."; +737: return "A roll of duct tape."; +738: return "Someone dropped a cheap ballpoint pen here."; +739: return "Someone dropped an expensive fountain pen here."; +740: return "You've found the Gingerbread Man!"; +741: return "You've found the Stinky Cheese Man!"; +742: return "This looks like an umbrella turned inside out."; +743: return "3.14159... Pi is all over the place here..."; +744: return "You almost mistook this meatloaf for Kitten."; +745: return "This drawer is full of dried out rubber stoppers."; +746: return "A flask of hydrochloric acid is here."; +747: return "Why are you bothering that old man instead of finding Kitten?"; +748: return "It's a hyperkinetic rabbity thing."; +749: return "A dog dressed in a cheap suit is here."; +750: return "~Help me Robot! You're my only hope!~"; +751: return "You found Budgie! Too bad this isn't ~robotfindsbudgie~."; +752: return "It's a sleeping lion."; +753: return "It's an example of the infamous space-cadet keyboard."; +754: return "You find a random assortment of dots and dashes."; +755: return "Nothing but some scribbles in crayon."; +756: return "It's a week-old baloney sandwich."; +757: return "It's a red stapler."; +758: return "It's a red staple-remover."; +759: return "It's a ~Wicked Tinkers~ CD."; +760: return "You see a rhinestone-studded dog collar, but no dog."; +761: return "It's a box of lox."; +762: return "It's a box of pinball machine parts."; +763: return "You've discovered an enormous pile of socks."; +764: return "It's a photograph of Kitten."; + +! The following Non Kitten Items were added by David Griffith for +! Release 7 +! +765: return "It's a copy editor, reading aloud from the Associated Press Stylebook."; +765: return "It's a copy editor, reading aloud from the MLA Stylebook."; +766: return "Kitty kibble is scattered all about."; +767: return "A bartender growls, ~No robots allowed!~"; +768: return "It's a Franklin Ebookman."; +769: return "It's a child's kitten pull-toy."; +770: return "~I'm Speed Racer and I drive real fast!~"; +771: return "~I drive real fast. I'm gonna last.~"; +772: return "~I'm a big pirate and I like to steal!~"; +773: return "~I like to steal and I like to kill!~"; +774: return "~I'm a Barbie doll but I've got brains!~"; +775: return "~I'm your doctor and here's the bill.~"; +776: return "Go! Go! Go, Speed Racer!"; +777: return "It's a Boeing 777 airliner."; +778: return "Someone is taking time out for fun here."; +779: return "You see a street lamp and a lamplighter here."; +780: return "A broken cricket bat."; +781: return "It's a mint-condition IMSAI 8080 computer!"; +782: return "A hollow voice says ~xyzzy~."; +783: return "Wimpy is here asking for a hamburger."; +784: return "You found Olive Oyl!"; +785: return "It's Popeye!"; +786: return "Bluto is here looking for Olive Oyl."; +787: return "~Et tu, Brutus?~"; +788: return "The bodily remains of a Roman emperor."; +789: return "Yay! It's a hoola hoop!"; +790: return "The Smart Patrol is here."; +791: return "It's an old sandal."; +792: return "It's a feather duster."; +793: return "It's a zipper."; +794: return "It's an old crumhorn with a broken reed."; +795: return "A sticky old cough drop."; +796: return "A jar of buttons."; +797: return "A bearded dragon lizard is sitting here."; +798: return "A garden toad."; +799: return "A garden gnome."; +800: return "A garden weasel."; + +default: return "Unknown NKI (this should not happen)"; } ];