From 8a3757df59ce5726b44347c0c7ca0a2c132386f4 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Sun, 25 Jun 2017 12:36:40 -0400 Subject: [PATCH] Change structure of vocabulary YAML to cope with multiply-loaded words. --- adventure.yaml | 655 +++++++++++++++++++++++++------------------------ travel.py | 35 ++- 2 files changed, 356 insertions(+), 334 deletions(-) diff --git a/adventure.yaml b/adventure.yaml index a1c10fd..acbbb91 100644 --- a/adventure.yaml +++ b/adventure.yaml @@ -99,333 +99,334 @@ # %B = Variable number of blanks # %! = The entire message should be suppressed -vocabulary: { - "ROAD": {type: motion, value: 2}, - "HILL": {type: motion, value: 2}, - "ENTER": {type: motion, value: 3}, - "UPSTR": {type: motion, value: 4}, - "DOWNS": {type: motion, value: 5}, - "FORES": {type: motion, value: 6}, - "FORWA": {type: motion, value: 7}, - "CONTI": {type: motion, value: 7}, - "ONWAR": {type: motion, value: 7}, - "BACK": {type: motion, value: 8}, - "RETUR": {type: motion, value: 8}, - "RETRE": {type: motion, value: 8}, - "VALLE": {type: motion, value: 9}, - "STAIR": {type: motion, value: 10}, - "OUT": {type: motion, value: 11}, - "OUTSI": {type: motion, value: 11}, - "EXIT": {type: motion, value: 11}, - "LEAVE": {type: motion, value: 11}, - "BUILD": {type: motion, value: 12}, - "HOUSE": {type: motion, value: 12}, - "GULLY": {type: motion, value: 13}, - "STREA": {type: motion, value: 14}, - "FORK": {type: motion, value: 15}, - "BED": {type: motion, value: 16}, - "CRAWL": {type: motion, value: 17}, - "COBBL": {type: motion, value: 18}, - "INWAR": {type: motion, value: 19}, - "INSID": {type: motion, value: 19}, - "IN": {type: motion, value: 19}, - "SURFA": {type: motion, value: 20}, - "NULL": {type: motion, value: 21}, - "NOWHE": {type: motion, value: 21}, - "DARK": {type: motion, value: 22}, - "PASSA": {type: motion, value: 23}, - "TUNNE": {type: motion, value: 23}, - "LOW": {type: motion, value: 24}, - "CANYO": {type: motion, value: 25}, - "AWKWA": {type: motion, value: 26}, - "GIANT": {type: motion, value: 27}, - "VIEW": {type: motion, value: 28}, - "UPWAR": {type: motion, value: 29}, - "UP": {type: motion, value: 29}, - "U": {type: motion, value: 29}, - "ABOVE": {type: motion, value: 29}, - "ASCEN": {type: motion, value: 29}, - "D": {type: motion, value: 30}, - "DOWNW": {type: motion, value: 30}, - "DOWN": {type: motion, value: 30}, - "DESCE": {type: motion, value: 30}, - "PIT": {type: motion, value: 31}, - "OUTDO": {type: motion, value: 32}, - "CRACK": {type: motion, value: 33}, - "STEPS": {type: motion, value: 34}, - "DOME": {type: motion, value: 35}, - "LEFT": {type: motion, value: 36}, - "RIGHT": {type: motion, value: 37}, - "HALL": {type: motion, value: 38}, - "JUMP": {type: motion, value: 39}, - "BARRE": {type: motion, value: 40}, - "OVER": {type: motion, value: 41}, - "ACROS": {type: motion, value: 42}, - "EAST": {type: motion, value: 43}, - "E": {type: motion, value: 43}, - "WEST": {type: motion, value: 44}, - "W": {type: motion, value: 44}, - "NORTH": {type: motion, value: 45}, - "N": {type: motion, value: 45}, - "SOUTH": {type: motion, value: 46}, - "S": {type: motion, value: 46}, - "NE": {type: motion, value: 47}, - "SE": {type: motion, value: 48}, - "SW": {type: motion, value: 49}, - "NW": {type: motion, value: 50}, - "DEBRI": {type: motion, value: 51}, - "HOLE": {type: motion, value: 52}, - "WALL": {type: motion, value: 53}, - "BROKE": {type: motion, value: 54}, - "Y2": {type: motion, value: 55}, - "CLIMB": {type: motion, value: 56}, - "LOOK": {type: motion, value: 57}, - "EXAMI": {type: motion, value: 57}, - "TOUCH": {type: motion, value: 57}, - "DESCR": {type: motion, value: 57}, - "FLOOR": {type: motion, value: 58}, - "ROOM": {type: motion, value: 59}, - "SLIT": {type: motion, value: 60}, - "SLAB": {type: motion, value: 61}, - "SLABR": {type: motion, value: 61}, - "XYZZY": {type: motion, value: 62}, - "DEPRE": {type: motion, value: 63}, - "ENTRA": {type: motion, value: 64}, - "PLUGH": {type: motion, value: 65}, - "SECRE": {type: motion, value: 66}, - "CAVE": {type: motion, value: 67}, - "CROSS": {type: motion, value: 69}, - "BEDQU": {type: motion, value: 70}, - "PLOVE": {type: motion, value: 71}, - "ORIEN": {type: motion, value: 72}, - "CAVER": {type: motion, value: 73}, - "SHELL": {type: motion, value: 74}, - "RESER": {type: motion, value: 75}, - "MAIN": {type: motion, value: 76}, - "OFFIC": {type: motion, value: 76}, - "KEYS": {type: object, value: 1}, - "KEY": {type: object, value: 1}, - "LAMP": {type: object, value: 2}, - "LANTE": {type: object, value: 2}, - "GRATE": {type: object, value: 3}, - "CAGE": {type: object, value: 4}, - "ROD": {type: object, value: 5}, - "ROD": {type: object, value: 6}, # Must be next object after "real" rod - "STEPS": {type: object, value: 7}, - "BIRD": {type: object, value: 8}, - "DOOR": {type: object, value: 9}, - "PILLO": {type: object, value: 10}, - "VELVE": {type: object, value: 10}, - "SNAKE": {type: object, value: 11}, - "FISSU": {type: object, value: 12}, - "TABLE": {type: object, value: 13}, - "CLAM": {type: object, value: 14}, - "OYSTE": {type: object, value: 15}, - "MAGAZ": {type: object, value: 16}, - "ISSUE": {type: object, value: 16}, - "SPELU": {type: object, value: 16}, - '"SPEL': {type: object, value: 16}, - "DWARF": {type: object, value: 17}, - "DWARV": {type: object, value: 17}, - "KNIFE": {type: object, value: 18}, - "KNIVE": {type: object, value: 18}, - "FOOD": {type: object, value: 19}, - "RATIO": {type: object, value: 19}, - "BOTTL": {type: object, value: 20}, - "JAR": {type: object, value: 20}, - "WATER": {type: object, value: 21}, - "H2O": {type: object, value: 21}, - "OIL": {type: object, value: 22}, - "MIRRO": {type: object, value: 23}, - "PLANT": {type: object, value: 24}, - "BEANS": {type: object, value: 24}, - "PLANT": {type: object, value: 25}, # Must be next object after "real" plant - "STALA": {type: object, value: 26}, - "SHADO": {type: object, value: 27}, - "FIGUR": {type: object, value: 27}, - "WINDO": {type: object, value: 27}, # Same as figure - "AXE": {type: object, value: 28}, - "DRAWI": {type: object, value: 29}, - "PIRAT": {type: object, value: 30}, - "GENIE": {type: object, value: 30}, - "DJINN": {type: object, value: 30}, - "DRAGO": {type: object, value: 31}, - "CHASM": {type: object, value: 32}, - "TROLL": {type: object, value: 33}, - "TROLL": {type: object, value: 34}, # Must be next object after "real" troll - "BEAR": {type: object, value: 35}, - "MESSA": {type: object, value: 36}, - "VOLCA": {type: object, value: 37}, - "GEYSE": {type: object, value: 37}, # Same as volcano - "MACHI": {type: object, value: 38}, - "VENDI": {type: object, value: 38}, - "BATTE": {type: object, value: 39}, - "CARPE": {type: object, value: 40}, - "MOSS": {type: object, value: 40}, - "CURTA": {type: object, value: 40}, # Same as carpet - "OGRE": {type: object, value: 41}, - "URN": {type: object, value: 42}, - "CAVIT": {type: object, value: 43}, - "BLOOD": {type: object, value: 44}, - "RESER": {type: object, value: 45}, # Verb overrides - "APPEN": {type: object, value: 46}, - "LEPOR": {type: object, value: 46}, - "MUD": {type: object, value: 47}, - "NOTE": {type: object, value: 48}, - "SIGN": {type: object, value: 49}, - "GOLD": {type: object, value: 50}, - "NUGGE": {type: object, value: 50}, - "DIAMO": {type: object, value: 51}, - "SILVE": {type: object, value: 52}, - "BARS": {type: object, value: 52}, - "JEWEL": {type: object, value: 53}, - "COINS": {type: object, value: 54}, - "CHEST": {type: object, value: 55}, - "BOX": {type: object, value: 55}, - "TREAS": {type: object, value: 55}, - "EGGS": {type: object, value: 56}, - "EGG": {type: object, value: 56}, - "NEST": {type: object, value: 56}, - "TRIDE": {type: object, value: 57}, - "VASE": {type: object, value: 58}, - "MING": {type: object, value: 58}, - "SHARD": {type: object, value: 58}, - "POTTE": {type: object, value: 58}, - "EMERA": {type: object, value: 59}, - "PLATI": {type: object, value: 60}, - "PYRAM": {type: object, value: 60}, - "PEARL": {type: object, value: 61}, - "RUG": {type: object, value: 62}, - "PERSI": {type: object, value: 62}, - "SPICE": {type: object, value: 63}, - "CHAIN": {type: object, value: 64}, - "RUBY": {type: object, value: 65}, - "JADE": {type: object, value: 66}, - "NECKL": {type: object, value: 66}, - "AMBER": {type: object, value: 67}, - "GEMST": {type: object, value: 67}, - "SAPPH": {type: object, value: 68}, - "EBONY": {type: object, value: 69}, - "STATU": {type: object, value: 69}, - "CARRY": {type: action, value: 1}, - "TAKE": {type: action, value: 1}, - "KEEP": {type: action, value: 1}, - "CATCH": {type: action, value: 1}, - "STEAL": {type: action, value: 1}, - "CAPTU": {type: action, value: 1}, - "GET": {type: action, value: 1}, - "TOTE": {type: action, value: 1}, - "SNARF": {type: action, value: 1}, - "DROP": {type: action, value: 2}, - "RELEA": {type: action, value: 2}, - "FREE": {type: action, value: 2}, - "DISCA": {type: action, value: 2}, - "DUMP": {type: action, value: 2}, - "SAY": {type: action, value: 3}, - "CHANT": {type: action, value: 3}, - "SING": {type: action, value: 3}, - "UTTER": {type: action, value: 3}, - "MUMBL": {type: action, value: 3}, - "UNLOC": {type: action, value: 4}, - "OPEN": {type: action, value: 4}, - "NOTHI": {type: action, value: 5}, - "LOCK": {type: action, value: 6}, - "CLOSE": {type: action, value: 6}, - "LIGHT": {type: action, value: 7}, - "ON": {type: action, value: 7}, - "EXTIN": {type: action, value: 8}, - "OFF": {type: action, value: 8}, - "WAVE": {type: action, value: 9}, - "SHAKE": {type: action, value: 9}, - "SWING": {type: action, value: 9}, - "CALM": {type: action, value: 10}, - "PLACA": {type: action, value: 10}, - "TAME": {type: action, value: 10}, - "WALK": {type: action, value: 11}, - "RUN": {type: action, value: 11}, - "TRAVE": {type: action, value: 11}, - "GO": {type: action, value: 11}, - "PROCE": {type: action, value: 11}, - "CONTI": {type: action, value: 11}, - "EXPLO": {type: action, value: 11}, - "FOLLO": {type: action, value: 11}, - "TURN": {type: action, value: 11}, - "ATTAC": {type: action, value: 12}, - "KILL": {type: action, value: 12}, - "FIGHT": {type: action, value: 12}, - "HIT": {type: action, value: 12}, - "STRIK": {type: action, value: 12}, - "SLAY": {type: action, value: 12}, - "POUR": {type: action, value: 13}, - "EAT": {type: action, value: 14}, - "DEVOU": {type: action, value: 14}, - "DRINK": {type: action, value: 15}, - "RUB": {type: action, value: 16}, - "THROW": {type: action, value: 17}, - "TOSS": {type: action, value: 17}, - "QUIT": {type: action, value: 18}, - "FIND": {type: action, value: 19}, - "WHERE": {type: action, value: 19}, - "INVEN": {type: action, value: 20}, - "FEED": {type: action, value: 21}, - "FILL": {type: action, value: 22}, - "BLAST": {type: action, value: 23}, - "DETON": {type: action, value: 23}, - "IGNIT": {type: action, value: 23}, - "BLOWU": {type: action, value: 23}, - "SCORE": {type: action, value: 24}, - "FEE": {type: action, value: 25}, - "FIE": {type: action, value: 25}, - "FOE": {type: action, value: 25}, - "FOO": {type: action, value: 25}, - "FUM": {type: action, value: 25}, - "BRIEF": {type: action, value: 26}, - "READ": {type: action, value: 27}, - "PERUS": {type: action, value: 27}, - "BREAK": {type: action, value: 28}, - "SHATT": {type: action, value: 28}, - "SMASH": {type: action, value: 28}, - "WAKE": {type: action, value: 29}, - "DISTU": {type: action, value: 29}, - "SUSPE": {type: action, value: 30}, - "PAUSE": {type: action, value: 30}, - "SAVE": {type: action, value: 30}, - "RESUM": {type: action, value: 31}, - "RESTA": {type: action, value: 31}, - "FLY": {type: action, value: 32}, - "LISTE": {type: action, value: 33}, - "Z'ZZZ": {type: action, value: 34}, # Gets replaced - "FEE": {type: special, value: 1}, - "FIE": {type: special, value: 2}, - "FOE": {type: special, value: 3}, - "FOO": {type: special, value: 4}, - "FUM": {type: special, value: 5}, - "THANK": {type: special, value: 13}, - "SESAM": {type: special, value: 50}, - "OPENS": {type: special, value: 50}, - "ABRA": {type: special, value: 50}, - "ABRAC": {type: special, value: 50}, - "SHAZA": {type: special, value: 50}, - "HOCUS": {type: special, value: 50}, - "POCUS": {type: special, value: 50}, - "HELP": {type: special, value: 51}, - "?": {type: special, value: 51}, - "NO": {type: special, value: 54}, - "TREE": {type: special, value: 64}, - "TREES": {type: special, value: 64}, - "DIG": {type: special, value: 66}, - "EXCAV": {type: special, value: 66}, - "LOST": {type: special, value: 68}, - "MIST": {type: special, value: 69}, - "FUCK": {type: special, value: 79}, - "STOP": {type: special, value: 139}, - "INFO": {type: special, value: 142}, - "INFOR": {type: special, value: 142}, - "SWIM": {type: special, value: 147}, - "WIZAR": {type: special, value: 246}, - "YES": {type: special, value: 271}, - "NEWS": {type: special, value: 275}, -} +# There are duplicate keys in this voavulary, that's why it can't be a normal map +vocabulary: [ + {word: "ROAD", type: motion, value: 2}, + {word: "HILL", type: motion, value: 2}, + {word: "ENTER", type: motion, value: 3}, + {word: "UPSTR", type: motion, value: 4}, + {word: "DOWNS", type: motion, value: 5}, + {word: "FORES", type: motion, value: 6}, + {word: "FORWA", type: motion, value: 7}, + {word: "CONTI", type: motion, value: 7}, + {word: "ONWAR", type: motion, value: 7}, + {word: "BACK", type: motion, value: 8}, + {word: "RETUR", type: motion, value: 8}, + {word: "RETRE", type: motion, value: 8}, + {word: "VALLE", type: motion, value: 9}, + {word: "STAIR", type: motion, value: 10}, + {word: "OUT", type: motion, value: 11}, + {word: "OUTSI", type: motion, value: 11}, + {word: "EXIT", type: motion, value: 11}, + {word: "LEAVE", type: motion, value: 11}, + {word: "BUILD", type: motion, value: 12}, + {word: "HOUSE", type: motion, value: 12}, + {word: "GULLY", type: motion, value: 13}, + {word: "STREA", type: motion, value: 14}, + {word: "FORK", type: motion, value: 15}, + {word: "BED", type: motion, value: 16}, + {word: "CRAWL", type: motion, value: 17}, + {word: "COBBL", type: motion, value: 18}, + {word: "INWAR", type: motion, value: 19}, + {word: "INSID", type: motion, value: 19}, + {word: "IN", type: motion, value: 19}, + {word: "SURFA", type: motion, value: 20}, + {word: "NULL", type: motion, value: 21}, + {word: "NOWHE", type: motion, value: 21}, + {word: "DARK", type: motion, value: 22}, + {word: "PASSA", type: motion, value: 23}, + {word: "TUNNE", type: motion, value: 23}, + {word: "LOW", type: motion, value: 24}, + {word: "CANYO", type: motion, value: 25}, + {word: "AWKWA", type: motion, value: 26}, + {word: "GIANT", type: motion, value: 27}, + {word: "VIEW", type: motion, value: 28}, + {word: "UPWAR", type: motion, value: 29}, + {word: "UP", type: motion, value: 29}, + {word: "U", type: motion, value: 29}, + {word: "ABOVE", type: motion, value: 29}, + {word: "ASCEN", type: motion, value: 29}, + {word: "D", type: motion, value: 30}, + {word: "DOWNW", type: motion, value: 30}, + {word: "DOWN", type: motion, value: 30}, + {word: "DESCE", type: motion, value: 30}, + {word: "PIT", type: motion, value: 31}, + {word: "OUTDO", type: motion, value: 32}, + {word: "CRACK", type: motion, value: 33}, + {word: "STEPS", type: motion, value: 34}, + {word: "DOME", type: motion, value: 35}, + {word: "LEFT", type: motion, value: 36}, + {word: "RIGHT", type: motion, value: 37}, + {word: "HALL", type: motion, value: 38}, + {word: "JUMP", type: motion, value: 39}, + {word: "BARRE", type: motion, value: 40}, + {word: "OVER", type: motion, value: 41}, + {word: "ACROS", type: motion, value: 42}, + {word: "EAST", type: motion, value: 43}, + {word: "E", type: motion, value: 43}, + {word: "WEST", type: motion, value: 44}, + {word: "W", type: motion, value: 44}, + {word: "NORTH", type: motion, value: 45}, + {word: "N", type: motion, value: 45}, + {word: "SOUTH", type: motion, value: 46}, + {word: "S", type: motion, value: 46}, + {word: "NE", type: motion, value: 47}, + {word: "SE", type: motion, value: 48}, + {word: "SW", type: motion, value: 49}, + {word: "NW", type: motion, value: 50}, + {word: "DEBRI", type: motion, value: 51}, + {word: "HOLE", type: motion, value: 52}, + {word: "WALL", type: motion, value: 53}, + {word: "BROKE", type: motion, value: 54}, + {word: "Y2", type: motion, value: 55}, + {word: "CLIMB", type: motion, value: 56}, + {word: "LOOK", type: motion, value: 57}, + {word: "EXAMI", type: motion, value: 57}, + {word: "TOUCH", type: motion, value: 57}, + {word: "DESCR", type: motion, value: 57}, + {word: "FLOOR", type: motion, value: 58}, + {word: "ROOM", type: motion, value: 59}, + {word: "SLIT", type: motion, value: 60}, + {word: "SLAB", type: motion, value: 61}, + {word: "SLABR", type: motion, value: 61}, + {word: "XYZZY", type: motion, value: 62}, + {word: "DEPRE", type: motion, value: 63}, + {word: "ENTRA", type: motion, value: 64}, + {word: "PLUGH", type: motion, value: 65}, + {word: "SECRE", type: motion, value: 66}, + {word: "CAVE", type: motion, value: 67}, + {word: "CROSS", type: motion, value: 69}, + {word: "BEDQU", type: motion, value: 70}, + {word: "PLOVE", type: motion, value: 71}, + {word: "ORIEN", type: motion, value: 72}, + {word: "CAVER", type: motion, value: 73}, + {word: "SHELL", type: motion, value: 74}, + {word: "RESER", type: motion, value: 75}, + {word: "MAIN", type: motion, value: 76}, + {word: "OFFIC", type: motion, value: 76}, + {word: "KEYS", type: object, value: 1}, + {word: "KEY", type: object, value: 1}, + {word: "LAMP", type: object, value: 2}, + {word: "LANTE", type: object, value: 2}, + {word: "GRATE", type: object, value: 3}, + {word: "CAGE", type: object, value: 4}, + {word: "ROD", type: object, value: 5}, + {word: "ROD", type: object, value: 6}, # Must be next object after "real" rod + {word: "STEPS", type: object, value: 7}, + {word: "BIRD", type: object, value: 8}, + {word: "DOOR", type: object, value: 9}, + {word: "PILLO", type: object, value: 10}, + {word: "VELVE", type: object, value: 10}, + {word: "SNAKE", type: object, value: 11}, + {word: "FISSU", type: object, value: 12}, + {word: "TABLE", type: object, value: 13}, + {word: "CLAM", type: object, value: 14}, + {word: "OYSTE", type: object, value: 15}, + {word: "MAGAZ", type: object, value: 16}, + {word: "ISSUE", type: object, value: 16}, + {word: "SPELU", type: object, value: 16}, + {word: '"SPEL', type: object, value: 16}, + {word: "DWARF", type: object, value: 17}, + {word: "DWARV", type: object, value: 17}, + {word: "KNIFE", type: object, value: 18}, + {word: "KNIVE", type: object, value: 18}, + {word: "FOOD", type: object, value: 19}, + {word: "RATIO", type: object, value: 19}, + {word: "BOTTL", type: object, value: 20}, + {word: "JAR", type: object, value: 20}, + {word: "WATER", type: object, value: 21}, + {word: "H2O", type: object, value: 21}, + {word: "OIL", type: object, value: 22}, + {word: "MIRRO", type: object, value: 23}, + {word: "PLANT", type: object, value: 24}, + {word: "BEANS", type: object, value: 24}, + {word: "PLANT", type: object, value: 25}, # Must be next object after "real" plant + {word: "STALA", type: object, value: 26}, + {word: "SHADO", type: object, value: 27}, + {word: "FIGUR", type: object, value: 27}, + {word: "WINDO", type: object, value: 27}, # Same as figure + {word: "AXE", type: object, value: 28}, + {word: "DRAWI", type: object, value: 29}, + {word: "PIRAT", type: object, value: 30}, + {word: "GENIE", type: object, value: 30}, + {word: "DJINN", type: object, value: 30}, + {word: "DRAGO", type: object, value: 31}, + {word: "CHASM", type: object, value: 32}, + {word: "TROLL", type: object, value: 33}, + {word: "TROLL", type: object, value: 34}, # Must be next object after "real" troll + {word: "BEAR", type: object, value: 35}, + {word: "MESSA", type: object, value: 36}, + {word: "VOLCA", type: object, value: 37}, + {word: "GEYSE", type: object, value: 37}, # Same as volcano + {word: "MACHI", type: object, value: 38}, + {word: "VENDI", type: object, value: 38}, + {word: "BATTE", type: object, value: 39}, + {word: "CARPE", type: object, value: 40}, + {word: "MOSS", type: object, value: 40}, + {word: "CURTA", type: object, value: 40}, # Same as carpet + {word: "OGRE", type: object, value: 41}, + {word: "URN", type: object, value: 42}, + {word: "CAVIT", type: object, value: 43}, + {word: "BLOOD", type: object, value: 44}, + {word: "RESER", type: object, value: 45}, # Verb overrides + {word: "APPEN", type: object, value: 46}, + {word: "LEPOR", type: object, value: 46}, + {word: "MUD", type: object, value: 47}, + {word: "NOTE", type: object, value: 48}, + {word: "SIGN", type: object, value: 49}, + {word: "GOLD", type: object, value: 50}, + {word: "NUGGE", type: object, value: 50}, + {word: "DIAMO", type: object, value: 51}, + {word: "SILVE", type: object, value: 52}, + {word: "BARS", type: object, value: 52}, + {word: "JEWEL", type: object, value: 53}, + {word: "COINS", type: object, value: 54}, + {word: "CHEST", type: object, value: 55}, + {word: "BOX", type: object, value: 55}, + {word: "TREAS", type: object, value: 55}, + {word: "EGGS", type: object, value: 56}, + {word: "EGG", type: object, value: 56}, + {word: "NEST", type: object, value: 56}, + {word: "TRIDE", type: object, value: 57}, + {word: "VASE", type: object, value: 58}, + {word: "MING", type: object, value: 58}, + {word: "SHARD", type: object, value: 58}, + {word: "POTTE", type: object, value: 58}, + {word: "EMERA", type: object, value: 59}, + {word: "PLATI", type: object, value: 60}, + {word: "PYRAM", type: object, value: 60}, + {word: "PEARL", type: object, value: 61}, + {word: "RUG", type: object, value: 62}, + {word: "PERSI", type: object, value: 62}, + {word: "SPICE", type: object, value: 63}, + {word: "CHAIN", type: object, value: 64}, + {word: "RUBY", type: object, value: 65}, + {word: "JADE", type: object, value: 66}, + {word: "NECKL", type: object, value: 66}, + {word: "AMBER", type: object, value: 67}, + {word: "GEMST", type: object, value: 67}, + {word: "SAPPH", type: object, value: 68}, + {word: "EBONY", type: object, value: 69}, + {word: "STATU", type: object, value: 69}, + {word: "CARRY", type: action, value: 1}, + {word: "TAKE", type: action, value: 1}, + {word: "KEEP", type: action, value: 1}, + {word: "CATCH", type: action, value: 1}, + {word: "STEAL", type: action, value: 1}, + {word: "CAPTU", type: action, value: 1}, + {word: "GET", type: action, value: 1}, + {word: "TOTE", type: action, value: 1}, + {word: "SNARF", type: action, value: 1}, + {word: "DROP", type: action, value: 2}, + {word: "RELEA", type: action, value: 2}, + {word: "FREE", type: action, value: 2}, + {word: "DISCA", type: action, value: 2}, + {word: "DUMP", type: action, value: 2}, + {word: "SAY", type: action, value: 3}, + {word: "CHANT", type: action, value: 3}, + {word: "SING", type: action, value: 3}, + {word: "UTTER", type: action, value: 3}, + {word: "MUMBL", type: action, value: 3}, + {word: "UNLOC", type: action, value: 4}, + {word: "OPEN", type: action, value: 4}, + {word: "NOTHI", type: action, value: 5}, + {word: "LOCK", type: action, value: 6}, + {word: "CLOSE", type: action, value: 6}, + {word: "LIGHT", type: action, value: 7}, + {word: "ON", type: action, value: 7}, + {word: "EXTIN", type: action, value: 8}, + {word: "OFF", type: action, value: 8}, + {word: "WAVE", type: action, value: 9}, + {word: "SHAKE", type: action, value: 9}, + {word: "SWING", type: action, value: 9}, + {word: "CALM", type: action, value: 10}, + {word: "PLACA", type: action, value: 10}, + {word: "TAME", type: action, value: 10}, + {word: "WALK", type: action, value: 11}, + {word: "RUN", type: action, value: 11}, + {word: "TRAVE", type: action, value: 11}, + {word: "GO", type: action, value: 11}, + {word: "PROCE", type: action, value: 11}, + {word: "CONTI", type: action, value: 11}, + {word: "EXPLO", type: action, value: 11}, + {word: "FOLLO", type: action, value: 11}, + {word: "TURN", type: action, value: 11}, + {word: "ATTAC", type: action, value: 12}, + {word: "KILL", type: action, value: 12}, + {word: "FIGHT", type: action, value: 12}, + {word: "HIT", type: action, value: 12}, + {word: "STRIK", type: action, value: 12}, + {word: "SLAY", type: action, value: 12}, + {word: "POUR", type: action, value: 13}, + {word: "EAT", type: action, value: 14}, + {word: "DEVOU", type: action, value: 14}, + {word: "DRINK", type: action, value: 15}, + {word: "RUB", type: action, value: 16}, + {word: "THROW", type: action, value: 17}, + {word: "TOSS", type: action, value: 17}, + {word: "QUIT", type: action, value: 18}, + {word: "FIND", type: action, value: 19}, + {word: "WHERE", type: action, value: 19}, + {word: "INVEN", type: action, value: 20}, + {word: "FEED", type: action, value: 21}, + {word: "FILL", type: action, value: 22}, + {word: "BLAST", type: action, value: 23}, + {word: "DETON", type: action, value: 23}, + {word: "IGNIT", type: action, value: 23}, + {word: "BLOWU", type: action, value: 23}, + {word: "SCORE", type: action, value: 24}, + {word: "FEE", type: action, value: 25}, + {word: "FIE", type: action, value: 25}, + {word: "FOE", type: action, value: 25}, + {word: "FOO", type: action, value: 25}, + {word: "FUM", type: action, value: 25}, + {word: "BRIEF", type: action, value: 26}, + {word: "READ", type: action, value: 27}, + {word: "PERUS", type: action, value: 27}, + {word: "BREAK", type: action, value: 28}, + {word: "SHATT", type: action, value: 28}, + {word: "SMASH", type: action, value: 28}, + {word: "WAKE", type: action, value: 29}, + {word: "DISTU", type: action, value: 29}, + {word: "SUSPE", type: action, value: 30}, + {word: "PAUSE", type: action, value: 30}, + {word: "SAVE", type: action, value: 30}, + {word: "RESUM", type: action, value: 31}, + {word: "RESTA", type: action, value: 31}, + {word: "FLY", type: action, value: 32}, + {word: "LISTE", type: action, value: 33}, + {word: "Z'ZZZ", type: action, value: 34}, # Gets replaced + {word: "FEE", type: special, value: 1}, + {word: "FIE", type: special, value: 2}, + {word: "FOE", type: special, value: 3}, + {word: "FOO", type: special, value: 4}, + {word: "FUM", type: special, value: 5}, + {word: "THANK", type: special, value: 13}, + {word: "SESAM", type: special, value: 50}, + {word: "OPENS", type: special, value: 50}, + {word: "ABRA", type: special, value: 50}, + {word: "ABRAC", type: special, value: 50}, + {word: "SHAZA", type: special, value: 50}, + {word: "HOCUS", type: special, value: 50}, + {word: "POCUS", type: special, value: 50}, + {word: "HELP", type: special, value: 51}, + {word: "?", type: special, value: 51}, + {word: "NO", type: special, value: 54}, + {word: "TREE", type: special, value: 64}, + {word: "TREES", type: special, value: 64}, + {word: "DIG", type: special, value: 66}, + {word: "EXCAV", type: special, value: 66}, + {word: "LOST", type: special, value: 68}, + {word: "MIST", type: special, value: 69}, + {word: "FUCK", type: special, value: 79}, + {word: "STOP", type: special, value: 139}, + {word: "INFO", type: special, value: 142}, + {word: "INFOR", type: special, value: 142}, + {word: "SWIM", type: special, value: 147}, + {word: "WIZAR", type: special, value: 246}, + {word: "YES", type: special, value: 271}, + {word: "NEWS", type: special, value: 275}, +] # FIXME: Hint texts shouldn't be in arbitrary_messages, but inlined here hints: diff --git a/travel.py b/travel.py index 6e7a8f0..c9731eb 100755 --- a/travel.py +++ b/travel.py @@ -25,11 +25,11 @@ # If M=100 unconditional, but forbidden to dwarves. # If 100