#
# We define a bunch of YAML structures:
#
-# vocabulary: Almost all the words the game knows - one of them (the
+# vocabulary: - This structure is unused, and will eventually be removed. -
+# Almost all the words the game knows - one of them (the
# reservoir magic word) gets replaced with a randomly-generated
# cookie. For each word there is a type (motion, action, object,
# or special) and a numeric value. Multiple synonyms may have the
# same value.
#
-# actspk: Default message for action verbs. The numbers correspond to
-# values in the vocabulary list.
+# motions: Motion words, grouped into synonyms.
+#
+# actions: Action words, grouped into synonyms, and their corresponding
+# default messages.
#
# hints: Each item contains a hint number, a hint label (used to
# generate the value macro for the hint) the number of turns he
# [pct, N] Roll a die, n% chance of success
# [carry, OBJ] Must be carrying named object
# [with, OBJ] Must be carrying or in room with
-# [not, OBJ N] Property of named OBJ must not be N
+# [not, OBJ N] Property of named OBJ must not be N.
+# N may be numeric or a state label.
# All attributes are optional except the long description and
# travel. Order of locations is not significant.
#
# Order doesn't matter; the logic simply tests every threshold on
# the assumption that turn counts never decrease nor skip values.
#
-# object_descriptions: Each item contains a description for use in the
+# objects: Each item contains a description for use in the
# inventory command and one or more messages describing the object
-# in different states. There is also a boolean "treasure"
-# attribute, defaulting to false. An pbject may have one or two
+# in different states. The vocabulary word(s) referring to this
+# object are listed (words). There is also a boolean "treasure"
+# attribute, defaulting to false. An object may have one or two
# start locations (the gate is an example of a two-location object;
# it can be accessed from above or below). An object may also be
# flagged immovable, meaning it cannot be carried. If a state
# message is a tuple then the first element is made the name of a
-# #define viible to the code for the associayed state, numbered
-# from zero upwards. If the inventory desription begins with "*"
+# #define visible to the code for the associated state, numbered
+# from zero upwards; it is also a state label that can be used in
+# travel-rule 'not' clauses. If the inventory description begins with "*"
# the object is dungeon furniture that cannot be taken or carried.
#
# obituaries: Death messages and reincarnation queries. Order is
- ACT_2:
message: ARENT_CARRYING
words: ['drop', 'relea', 'free', 'disca', 'dump']
-- ACT_3:
+- SAY:
message: NO_MESSAGE
words: ['say', 'chant', 'sing', 'utter', 'mumbl']
- ACT_4:
- ACT_5:
message: NO_MESSAGE
words: ['nothi']
-- ACT_6:
+- LOCK:
message: NOT_LOCKABLE
words: ['lock', 'close']
- ACT_7:
- ACT_16:
message: RUB_NOGO
words: ['rub']
-- ACT_17:
+- THROW:
message: ARENT_CARRYING
words: ['throw', 'toss']
- ACT_18:
message: HUH_MAN
words: ['quit']
-- ACT_19:
+- FIND:
message: NEARBY
words: ['find', 'where']
-- ACT_20:
+- INVENT:
message: NEARBY
words: ['inven']
- ACT_21:
{verbs: ['WEST'], action: [goto, LOC_FOREST9]},
{verbs: ['BUILD'], action: [goto, LOC_START]},
{verbs: ['UPSTR', 'GULLY', 'NORTH'], action: [goto, LOC_SLIT]},
- {verbs: ['ENTER', 'INWAR', 'D'], cond: [not, GRATE, 0,], action: [goto, LOC_BELOWGRATE]},
+ {verbs: ['ENTER', 'INWAR', 'D'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_BELOWGRATE]},
{verbs: ['ENTER'], action: ["speak", GRATE_NOWAY]},
]
- LOC_BELOWGRATE:
short: 'You''re below the grate.'
conditions: {LIT: true}
travel: [
- {verbs: ['OUT', 'UPWAR'], cond: [not, GRATE, 0], action: [goto, LOC_GRATE]},
+ {verbs: ['OUT', 'UPWAR'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
{verbs: ['OUT'], action: ["speak", GRATE_NOWAY]},
{verbs: ['CRAWL', 'COBBL', 'INWAR', 'WEST'], action: [goto, LOC_COBBLE]},
{verbs: ['PIT'], action: [goto, LOC_PITTOP]},
short: 'You''re in debris room.'
conditions: {}
travel: [
- {verbs: ['DEPRE'], cond: [not, GRATE, 0], action: [goto, LOC_GRATE]},
+ {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
{verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
{verbs: ['CRAWL', 'COBBL', 'PASSA', 'LOW', 'EAST'], action: [goto, LOC_COBBLE]},
{verbs: ['CANYO', 'INWAR', 'UPWAR', 'WEST'], action: [goto, LOC_AWKWARD]},
short: !!null
conditions: {}
travel: [
- {verbs: ['DEPRE'], cond: [not, GRATE, 0], action: [goto, LOC_GRATE]},
+ {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
{verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
{verbs: ['D', 'EAST', 'DEBRI'], action: [goto, LOC_DEBRIS]},
{verbs: ['INWAR', 'UPWAR', 'WEST'], action: [goto, LOC_BIRD]},
conditions: {}
hints: [*bird]
travel: [
- {verbs: ['DEPRE'], cond: [not, GRATE, 0], action: [goto, LOC_GRATE]},
+ {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
{verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
{verbs: ['DEBRI'], action: [goto, LOC_DEBRIS]},
{verbs: ['CANYO', 'EAST'], action: [goto, LOC_AWKWARD]},
short: 'You''re at top of small pit.'
conditions: {}
travel: [
- {verbs: ['DEPRE'], cond: [not, GRATE, 0], action: [goto, LOC_GRATE]},
+ {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
{verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
{verbs: ['DEBRI'], action: [goto, LOC_DEBRIS]},
{verbs: ['PASSA', 'EAST'], action: [goto, LOC_BIRD]},
conditions: {DEEP: true}
travel: [
{verbs: ['HALL', 'EAST'], action: [goto, LOC_MISTHALL]},
- {verbs: ['JUMP'], cond: [not, FISSURE, 0], action: ["speak", CROSS_BRIDGE]},
- {verbs: ['FORWA'], cond: [not, FISSURE, 1], action: [goto, LOC_NOMAKE]},
- {verbs: ['OVER', 'ACROS', 'WEST', 'CROSS'], cond: [not, FISSURE, 1], action: ["speak", NO_CROSS]},
+ {verbs: ['JUMP'], cond: [not, FISSURE, UNBRIDGED], action: ["speak", CROSS_BRIDGE]},
+ {verbs: ['FORWA'], cond: [not, FISSURE, BRIDGED], action: [goto, LOC_NOMAKE]},
+ {verbs: ['OVER', 'ACROS', 'WEST', 'CROSS'], cond: [not, FISSURE, BRIDGED], action: ["speak", NO_CROSS]},
{verbs: ['OVER'], action: [goto, LOC_WESTBANK]},
]
- LOC_NUGGET:
conditions: {DEEP: true}
travel: [
{verbs: ['NORTH', 'OUT'], action: [goto, LOC_DIFFERENT2]},
- {verbs: ['SOUTH'], cond: [not, VEND, 0], action: [goto, LOC_ROUGHHEWN]},
+ {verbs: ['SOUTH'], cond: [not, VEND, VEND_BLOCKS], action: [goto, LOC_ROUGHHEWN]},
{verbs: ['SOUTH'], action: [goto, LOC_BADDIRECTION]},
]
- LOC_ROUGHHEWN:
locations: [LOC_EASTBANK, LOC_WESTBANK]
immovable: true
longs:
- - ''
- - 'A crystal bridge now spans the fissure.'
- - 'The crystal bridge has vanished!'
+ - [UNBRIDGED, '']
+ - [BRIDGED, 'A crystal bridge now spans the fissure.']
+ - [VANISHED, 'The crystal bridge has vanished!']
- OBJ_13:
words: ['table']
inventory: '*stone tablet'