X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=adventure.yaml;h=81cc864d26e9f1a9af6bc2e3e806a50d609640e0;hp=4486b0eeb9a2d5b5de894191f69fc6186153f410;hb=236abc8cab5a6f8d0b1d1921800a8645dcda98a2;hpb=4f042d0ca42b14c3db96956bcc6d9a6e5c35b488 diff --git a/adventure.yaml b/adventure.yaml index 4486b0e..81cc864 100644 --- a/adventure.yaml +++ b/adventure.yaml @@ -1,3 +1,53 @@ +# 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.5. 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. +# +# obituaries: Death messages and reincarnation queries. Order is +# significant, they're used in succession as the player racks up +# deaths. +# +# hints: Each item contains a hint number (add 10 to get cond bit), +# the number of turns he must be at the right loc(s) before +# triggering the hint, the points deducted for taking the hint, the +# message number (section 6) of the question, and the message +# number of the hint. These values are stashed in the "hints" +# array. +# +# These correspond to sections 1, 2, 5, 6, 10, 11, and 14 in the old +# adventure.text format. Sections 3, 4, 7, 8, and 9 haven't moved yet. +# Section 12 was obsolete. + locations: !!omap - LOC_NOWHERE: description: @@ -575,7 +625,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 +1074,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: @@ -1494,3 +1562,58 @@ obituaries: yes_response: 'Okay, now where did I put my orange smoke?.... >POOF!<\nEverything disappears in a dense cloud of orange smoke.' - query: 'Now you''ve really done it! I''m out of orange smoke! You don''t expect\nme to do a decent reincarnation without any orange smoke, do you?' yes_response: 'Okay, if you''re so smart, do it yourself! I''m leaving!' + +# FIXME: Hint texts shouldn't be in arbitrary_messages, but inlined here +hints: +- number: 1 + turns: 4 + penalty: 2 + question: ENTRY_QUERY + hint: HARD_GRATE +- number: 2 + turns: 5 + penalty: 2 + question: BIRD_QUERY + hint: SKITTISH_BIRD +- number: 3 + turns: 8 + penalty: 2 + question: SNAKE_QUERY + hint: SNAKE_HINT +- number: 4 + turns: 75 + penalty: 4 + question: MAZE_HELP + hint: DROP_THINGS +- number: 5 + turns: 25 + penalty: 5 + question: PLOVER_QUERY + hint: EXPLORE_HINT +- number: 6 + turns: 20 + penalty: 3 + question: HELP_LEAVING + hint: NOGO_WEST +- number: 7 + turns: 8 + penalty: 2 + question: WONDERING_QUERY + hint: ADVANCED_SECTION +- number: 8 + turns: 25 + penalty: 2 + question: FOREST_QUERY + hint: GO_EAST +- number: 9 + turns: 10 + penalty: 4 + question: OGRE_QUERY + hint: OGRE_CLUE +- number: 10 + turns: 1 + penalty: 4 + question: MISSING_ONE + hint: NO_LOCATE + +# end