X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=adventure.yaml;h=ec9ce29cb3af570a0fe38b7aa01123ca63789797;hb=b37f9f4b2daa51b969a1d0e08cf84f23ca82202b;hp=a1abc626e7ca16f606b261aca8d7805daf7ca8a9;hpb=98b02eeeb1021b24ad477a2180e323984c36c588;p=open-adventure.git diff --git a/adventure.yaml b/adventure.yaml index a1abc62..ec9ce29 100644 --- a/adventure.yaml +++ b/adventure.yaml @@ -1,5 +1,40 @@ +# This YAML file gets processed into a collection of data structure and +# variable initializers describing Colossal Cave. It replaces an ad-hoc +# text database shipped with Adventure versions up to 2.6. The format +# change enabled a lot of use of symbolic names where there were previously +# inscrutable numeric literals. +# +# We define a bunch of YAML structures: +# +# locations: Each item contains a long and short description. Some +# short descriptions are empty. Order of these locations is significant; +# see the macros OUTSID and INDEEP. +# +# arbitrary_messages: These are arguments to RSPEAK(). Some spans of +# these messages need to be kept adjacent and ordered. To see which, +# grep for RSPEAK calls containing expressions with arithmetic. +# +# classes: Each item contains a point threshold and a message +# describing a classification of player. point thresholds must be +# in ascending order. The scoring code selects the appropriate +# message, where each message is considered to apply to players +# whose scores are higher than the previous N but not higher than +# this N. Note that these scores probably change with every +# modification (and particularly expansion) of the program. +# +# turn_thresholds: Each item contains a number and a message +# berating the player for taking so many turns. The messages must +# be in the proper (ascending) order. The message gets printed if +# the player exceeds N % 100000 turns, at which time N/100000 +# points get deducted from his score. +# +# objects: Each item contains a description for use in the inventory command +# and one or more messages describing the object in different states. +# If the inventory desription begins with "*" the object is dungeon +# furniture that cannot be taken or carried. +# locations: !!omap -- LOC_0: +- LOC_NOWHERE: description: long: !!null short: !!null @@ -575,7 +610,7 @@ locations: !!omap description: long: 'You are in a large chamber with passages to the west and north.' short: !!null -- LOC_SOTOREROOM: +- LOC_STOREROOM: description: long: 'You are in the ogre''s storeroom. The only exit is to the south.' short: !!null @@ -1024,25 +1059,43 @@ arbitrary_messages: !!omap - GO_UNNEEDED: 'You don''t have to say "go" every time; just specify a direction or, if\nit''s nearby, name the place to which you wish to move.' - CANNOT_CARRY7: !!null -class_messages: !!omap -- CLS_0: !!null -- CLS_1: 'You are obviously a rank amateur. Better luck next time.' -- CLS_2: 'Your score qualifies you as a novice class adventurer.' -- CLS_3: 'You have achieved the rating: "Experienced Adventurer".' -- CLS_4: 'You may now consider yourself a "Seasoned Adventurer".' -- CLS_5: 'You have reached "Junior Master" status.' -- CLS_6: 'Your score puts you in Master Adventurer Class C.' -- CLS_7: 'Your score puts you in Master Adventurer Class B.' -- CLS_8: 'Your score puts you in Master Adventurer Class A.' -- CLS_9: 'All of Adventuredom gives tribute to you, Adventurer Grandmaster!' -- CLS_10: 'Adventuredom stands in awe -- you have now joined the ranks of the\n W O R L D C H A M P I O N A D V E N T U R E R S !\nIt may interest you to know that the Dungeon-Master himself has, to\nmy knowledge, never achieved this threshhold in fewer than 330 turns.' +classes: +- threshold: 0 + message: !!null +- threshold: 45 + message: 'You are obviously a rank amateur. Better luck next time.' +- threshold: 120 + message: 'Your score qualifies you as a novice class adventurer.' +- threshold: 170 + message: 'You have achieved the rating: "Experienced Adventurer".' +- threshold: 250 + message: 'You may now consider yourself a "Seasoned Adventurer".' +- threshold: 320 + message: 'You have reached "Junior Master" status.' +- threshold: 375 + message: 'Your score puts you in Master Adventurer Class C.' +- threshold: 410 + message: 'Your score puts you in Master Adventurer Class B.' +- threshold: 426 + message: 'Your score puts you in Master Adventurer Class A.' +- threshold: 429 + message: 'All of Adventuredom gives tribute to you, Adventurer Grandmaster!' +- threshold: 9999 + message: 'Adventuredom stands in awe -- you have now joined the ranks of the\n W O R L D C H A M P I O N A D V E N T U R E R S !\nIt may interest you to know that the Dungeon-Master himself has, to\nmy knowledge, never achieved this threshhold in fewer than 330 turns.' -turn_threshold_messages: !!omap -- TURN_0: !!null -- TURN_1: 'Tsk! A wizard wouldn''t have to take 350 turns. This is going to cost\nyou a couple of points.' -- TURN_2: 500 turns? That's another few points you've lost. -- TURN_3: 'Are you still at it? Five points off for exceeding 1000 turns!' -- TURN_4: 'Good grief, don''t you *EVER* give up? Do you realize you''ve spent\nover 2500 turns at this? That''s another ten points off, a total of\ntwenty points lost for taking so long.' +turn_thresholds: +- threshold: 350 + point_loss: 2 + message: 'Tsk! A wizard wouldn''t have to take 350 turns. This is going to cost\nyou a couple of points.' +- threshold: 500 + point_loss: 3 + message: '500 turns? That''s another few points you''ve lost.' +- threshold: 1000 + point_loss: 5 + message: 'Are you still at it? Five points off for exceeding 1000 turns!' +- threshold: 2500 + point_loss: 10 + message: 'Good grief, don''t you *EVER* give up? Do you realize you''ve spent\nover 2500 turns at this? That''s another ten points off, a total of\ntwenty points lost for taking so long.' object_descriptions: !!omap - OBJ_0: @@ -1152,14 +1205,13 @@ object_descriptions: !!omap - 'There is a bottle of oil here.' - OBJ_21: inventory: 'Water in the bottle' - longs: [] + longs: !!null - OBJ_22: inventory: 'Oil in the bottle' - longs: [] + longs: !!null - OBJ_23: inventory: '*mirror' - longs: - - '' + longs: !!null - OBJ_24: inventory: '*plant' longs: @@ -1193,12 +1245,10 @@ object_descriptions: !!omap - 'There is a little axe lying beside the bear.' - OBJ_29: inventory: '*cave drawings' - longs: - - '' + longs: !!null - OBJ_30: inventory: '*pirate/genie' - longs: - - '' # never present + longs: !!null # never present - OBJ_31: inventory: '*dragon' longs: @@ -1219,14 +1269,14 @@ object_descriptions: !!omap longs: - 'A burly troll stands by the bridge and insists you throw him a\ntreasure before you may cross.' - 'The troll steps out from beneath the bridge and blocks your way.' - - ' (chased away)' + - '' # chased away - 'The troll sounds quite adamant in his demand for a treasure.' - OBJ_34: inventory: '*phony troll' longs: - 'The troll is nowhere to be seen.' - OBJ_35: - inventory: '' # bear uses rtext 141 + inventory: !!null # bear uses rtext 141 longs: - 'There is a ferocious cave bear eying you from the far end of the room!' - 'There is a gentle cave bear sitting placidly in one corner.' @@ -1239,8 +1289,7 @@ object_descriptions: !!omap - '"This is not the maze where the pirate leaves his treasure chest."' - OBJ_37: inventory: '*volcano and/or geyser' - longs: - - '' + longs: !!null - OBJ_38: inventory: '*vending machine' longs: @@ -1257,8 +1306,7 @@ object_descriptions: !!omap - 'Some worn-out batteries have been discarded nearby.' - OBJ_40: inventory: '*carpet and/or moss and/or curtains' - longs: - - '' + longs: !!null - OBJ_41: inventory: '*ogre' longs: