| !-------------------------------------------------------------------------- | |
| ! Example demonstrating "property_list", an exciting new feature in Library | |
| ! release 5/9. | |
| ! | |
| ! Graham Nelson, 2/95 | |
| !-------------------------------------------------------------------------- | |
| Constant Story "LIST PROPERTY"; | |
| Constant Headline "^An Interactive Example^Copyright (c) 1995 by Graham \ | |
| Nelson.^"; | |
| Constant MAX_CARRIED 8; | |
| Include "parser"; | |
| Object travel_bag "travel bag" | |
| has container openable open | |
| with name "travel" "bag"; | |
| Constant SACK_OBJECT travel_bag; | |
| Include "verblib"; | |
| Include "grammar"; | |
| [ Initialise; | |
| location = Lost_Property; | |
| move travel_bag to player; | |
| print "^^^^^Fancy inspecting a miscellany? Go on, you know you \ | |
| do...^^"; | |
| ]; | |
| Object Lost_Property "Lost Property Office" | |
| has light | |
| with description "A dusty, echoing room with a green baize table."; | |
| Nearby table "green baize table" | |
| has scenery supporter | |
| with name "green" "baize" "table"; | |
| Class plastic_cutlery | |
| with name "plastic" "cutlery", article "a plastic", | |
| list_together [; | |
| if (inventory_stage ~= 1) rfalse; | |
| if (c_style & NOARTICLE_BIT == 0) c_style=c_style+NOARTICLE_BIT; | |
| if (c_style & ENGLISH_BIT == 0) c_style=c_style+ENGLISH_BIT; | |
| if (c_style & NEWLINE_BIT ~= 0) c_style=c_style-NEWLINE_BIT; | |
| if (c_style & INDENT_BIT ~= 0) c_style=c_style-INDENT_BIT; | |
| print "a plastic "; | |
| ]; | |
| Nearby fork "fork" class plastic_cutlery with name "fork"; | |
| Nearby knife "knife" class plastic_cutlery with name "knife"; | |
| Nearby spook "spoon" class plastic_cutlery with name "spoon"; | |
| Class hat_class has clothing with list_together "hats", name "hat" "hats"; | |
| Nearby hat1 "fez" class hat_class with name "fez"; | |
| Nearby hat2 "Panama" class hat_class with name "panama"; | |
| Nearby hat3 "sombrero" class hat_class with name "sombrero"; | |
| Attribute is_letter; | |
| Class letter | |
| has is_letter | |
| with list_together [; | |
| if (inventory_stage==1) { | |
| print "the letters "; | |
| c_style = c_style | (ENGLISH_BIT + NOARTICLE_BIT); | |
| if (c_style & NEWLINE_BIT ~= 0) c_style = c_style-NEWLINE_BIT; | |
| if (c_style & INDENT_BIT ~= 0) c_style = c_style-INDENT_BIT; | |
| } | |
| else | |
| print " from a Scrabble set"; | |
| ], | |
| short_name [; | |
| if (listing_together has is_letter) rfalse; | |
| print "letter ", object self, " from a Scrabble set"; | |
| rtrue; | |
| ], | |
| article "the"; | |
| Nearby s1 "X" class letter with name "x"; | |
| Nearby s2 "Y" class letter with name "y"; | |
| Nearby s3 "Z" class letter with name "z"; | |
| Nearby s4 "P" class letter with name "p"; | |
| Nearby s5 "Q" class letter with name "q"; | |
| Nearby s6 "R" class letter with name "r"; | |
| Nearby cake "defrosting Black Forest gateau" | |
| with name "black" "forest" "gateau" "cake", | |
| has edible; | |
| Nearby punch "Punch magazine" | |
| has proper | |
| with name "punch" "magazine", | |
| description "Five years out of date by the cover, a hundred by \ | |
| the contents.", | |
| list_together 1; | |
| Nearby spectator "issue of the Spectator" | |
| with name "spectator" "issue" "magazine", article "a recent", | |
| description "Up to date by the cover, a nightmare view of the \ | |
| future within.", | |
| list_together 1; | |
| Nearby die "die" | |
| with name "die" "dice", | |
| after [; | |
| Drop: print "It comes up ", random(6); "!"; | |
| ]; | |
| Attribute is_coin; | |
| Class coin_class | |
| has is_coin | |
| with name "coin", | |
| description "A round unstamped disc, presumably local currency.", | |
| parse_name [ i j w; | |
| if (parser_action==##TheSame) { | |
| if ((parser_one.&name)-->0 == (parser_two.&name)-->0) | |
| return -1; | |
| return -2; | |
| } | |
| w = (self.&name)-->0; | |
| for (: : i++) { | |
| j = NextWord(); | |
| if (j == 'coins') parser_action = ##PluralFound; | |
| else if (j ~= 'coin' or w) return i; | |
| } | |
| ], | |
| list_together "coins", | |
| plural [; | |
| print_addr (self.&name)-->0; | |
| if (listing_together hasnt is_coin) print " coins"; | |
| ], | |
| short_name [; | |
| if (listing_together has is_coin) { | |
| print_addr (self.&name)-->0; | |
| rtrue; | |
| } | |
| ], | |
| article [; | |
| if (listing_together has is_coin) print "one"; | |
| else print "a"; | |
| ]; | |
| Class gold_coin_class class coin_class with name "gold"; | |
| Class silver_coin_class class coin_class with name "silver"; | |
| Class bronze_coin_class class coin_class with name "bronze"; | |
| Nearby coin1 "silver coin" class silver_coin_class; | |
| Nearby coin2 "silver coin" class silver_coin_class; | |
| Nearby coin3 "silver coin" class silver_coin_class; | |
| Nearby coin4 "silver coin" class silver_coin_class; | |
| Nearby coin5 "bronze coin" class bronze_coin_class; | |
| Nearby coin6 "gold coin" class gold_coin_class; | |
| Nearby coin7 "gold coin" class gold_coin_class; | |
| Nearby coin8 "gold coin" class gold_coin_class; | |
| End; |
Xet Storage Details
- Size:
- 5.19 kB
- Xet hash:
- 05d8a6f154da9c0764195a5a2e72662c81cbab57b9ceb7e5e309f5aa46ad24c1
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.