Change structure of vocabulary YAML to cope with multiply-loaded words.
This commit is contained in:
parent
cfb43fcf44
commit
8a3757df59
2 changed files with 356 additions and 334 deletions
655
adventure.yaml
655
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:
|
||||
|
|
35
travel.py
35
travel.py
|
@ -25,11 +25,11 @@
|
|||
# If M=100 unconditional, but forbidden to dwarves.
|
||||
# If 100<M<=200 he must be carrying object M-100.
|
||||
# If 200<M<=300 must be carrying or in same room as M-200.
|
||||
# If 300<M<=400 game.prop(M % 100) must#not* be 0.
|
||||
# If 400<M<=500 game.prop(M % 100) must#not* be 1.
|
||||
# If 500<M<=600 game.prop(M % 100) must#not* be 2, etc.
|
||||
# If the condition (if any) is not met, then the next#different*
|
||||
# "destination" value is used (unless it fails to meet#its* conditions,
|
||||
# If 300<M<=400 game.prop(M % 100) must *not* be 0.
|
||||
# If 400<M<=500 game.prop(M % 100) must *not* be 1.
|
||||
# If 500<M<=600 game.prop(M % 100) must *not* be 2, etc.
|
||||
# If the condition (if any) is not met, then the next different
|
||||
# "destination" value is used (unless it fails to meet *its* conditions,
|
||||
# in which case the next is found, etc.). Typically, the next dest will
|
||||
# be for one of the same verbs, so that its only use is as the alternate
|
||||
# destination for those verbs. For instance:
|
||||
|
@ -671,13 +671,28 @@ section3 = (
|
|||
(184, 33, 1),
|
||||
)
|
||||
|
||||
def destdecode(dest):
|
||||
"Decode a destinatio nnumber"
|
||||
if dest <= 300:
|
||||
return '["move", %s]' % locnames[dest]
|
||||
elif dest <= 500:
|
||||
return '["goto", %s]' % (dest - 300)
|
||||
else:
|
||||
return '["speak", %s]' % (msgnames[dest - 500])
|
||||
|
||||
def genline(loc):
|
||||
attrs = []
|
||||
sys.stdout.write(" travel: {\n")
|
||||
for t in section3:
|
||||
t = list(t)
|
||||
if t.pop(0) == loc:
|
||||
sys.stdout.write(" %s,\n" % t)
|
||||
src = t.pop(0)
|
||||
if src == loc:
|
||||
dest = t.pop(0)
|
||||
cond = dest // 1000
|
||||
dest = dest % 1000
|
||||
print("cond %s, dest %s, words: %s" % (cond, dest, t))
|
||||
t = [verbs[e] for e in t]
|
||||
sys.stdout.write(" %s %s %s,\n" % (destdecode(dest), cond, t))
|
||||
sys.stdout.write(" }\n")
|
||||
|
||||
|
||||
|
@ -687,6 +702,12 @@ if __name__ == "__main__":
|
|||
db = yaml.load(fp)
|
||||
fp.seek(0)
|
||||
locnames = [el[0] for el in db["locations"]]
|
||||
msgnames = [el[0] for el in db["arbitrary_messages"]]
|
||||
verbs = {}
|
||||
for entry in db["vocabulary"]:
|
||||
if entry["type"] == "motion" and entry["value"] not in verbs:
|
||||
verbs[entry["value"]] = entry["word"]
|
||||
print(verbs)
|
||||
ln = -1
|
||||
while True:
|
||||
line = fp.readline()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue