ainslec / adventuron-issue-tracker

Adventuron Issues Tracker
4 stars 0 forks source link

Document the new auto text formatting features (currently not documented) #437

Closed ainslec closed 2 years ago

ainslec commented 3 years ago
start_at   = bedroom
redescribe = auto_beta

objects {
   calendar : object  "a calendar" at = "bedroom" ;
   plate    : object  "a plate" at = "bedroom" ;
   spoon    : object  "a spoon" at = "bedroom" ;
   radiator : scenery "a radiator" at = "bedroom";
}

locations {
    bedroom : location "You are in your bedroom.\nA picture hangs above your bed.{init:calendar ? ` On the nightstand you see a calendar.`} The kitchen is to the east.\nYou are so <TIRED>." {
      contains {
         picture    : scenery "a picture" msg = "You examine the picture above your bed. It's a picture your your wife and yourself on your wedding day. It's dated February 14th.";
         bed        : scenery "your bed" msg = "This is where your <SLEEP>.";
         nightstand : scenery "the nightstand" msg = "There are two nightstands. Both are empty." listed = "false" {
         }
      }
   }
   kitchen : location "You are in the kitchen." ;
   study   : location "You are in a study." ;
}

connections {
   from, direction, to = [
      bedroom, east, kitchen 
      bedroom, west, study, 
   ]
}

themes {
   my_theme : theme {
      theme_settings {
         text_decorations= [ directions, directions_subtract, entities , entities_subtract, entities_no_repeat ]
      }
      lister_exits {
         exit_list_style                      = verbose
         exit_list_capitalization             = lower
         experimental_enable_direction_arrows = false
      }
      colors {
         exit_list_item_pen      = 14
         entity_pen              = 12
         entity_immovable_pen    = 13
         link_manual_pen         = 10
         inventory_item_pen      = 11
         default_alt1_pen        = 11
      }
   }
}
// THIS WILL ADD A DIRECTION LINK FOR ENTER

my_location: location  "From here you can <enter<_dir>> the room2.";

// THIS WILL ADD A DIRECTION LINK FOR EXIT

my_location: location  "From here you can <exit<_dir>> the room2.";

// THIS WILL ADD A DIRECTION LINK FOR ENTER WITH CUSTOM TEXT DESCRIPTION

my_location: location  "From here you can <go inside<_dir>>[enter] the room2.";

// THIS WILL PRINT SOUTH WITHOUT ANY DIRECTION LINKING

my_location: location  "I came from the <south<->>, but exits are north and east. I can also <go inside<_dir>>[enter] the board.";

You can also gate a paragraph if an object is present using : {objectid ? Text if object is located in the player location} This is in addition to the existing: {booleanvar ? text if boolean is true} And of course the one we are talking about: {init:objectid ? Text if the object id is in the current player location and has never been taken before} Text colouring now is automatic (when this mode is enabled). theme_settings { text_decorations= [ directions, directions_subtract, entities , entities_subtract, entities_no_repeat ] } directions = colour in directions in the text directions_subtract = remove directions in the main description text from the direction list entities = colour in (and link) objects, scenery, and characters, based on their object description (checks that all coloured in objects are in scope), not just brute forcing nouns / adjectives or anything like that) entities_subtract = remove mentioned entities from the object list entities_no_repeat = don't link entities more than once if mentioned multiple times in the text

ainslec commented 2 years ago

Documented these in the new cookbook (basically).