An abuse of menu in adv3Lite

this nifty trick should solve the major issue of “heavy loredump” intrinsic in Isekai:

the example is taken from the documentation, and I think that comparing with the documentation, doubles also as an example of how to get rid of the + construct, which (or whose) I dislike, because often I rearrange the sources.

without further ado, the abuse:

// book menu test
blueBook: Thing 'blue book; useless of[prep];dictionary 
information' @kitchen
    "It's your dictionary of useless information. "
    readDesc {FirstMenu.display();}
;

FirstMenu: MenuItem 'Test menu';
   pets: MenuItem 'Pets' 
   location = FirstMenu;
    chinchillas: MenuItem 'Chinchillas' 
      location = pets;
    aboutEm: MenuTopicItem 'About them' 
      location = chinchillas
      menuContents = ['Furry', 'South American', 'Curious', 'Note: Not a 
coat'];
   cincBen: MenuTopicItem 'Benefits' 
        location=chinchillas
        menuContents = ['Non-allergenic', 'Cute', 'Require little space'];
   cincDown: MenuTopicItem 'Downsides' 
        location = chinchillas
        menuContents = ['Require dust baths', 'Startle easily'];
   cats: MenuItem 'Cats'
    location = pets;
      evil: MenuLongTopicItem 'Pure evil' 
        location = cats
        menuContents = 'Cats are, quite simply, pure evil. I would provide
                      ample evidence were there room for it in this
                      simple example.';
      catBen: MenuTopicItem 'Benefits' 
        location = cats
        menuContents = ['They, uh, well...', 'Okay, I can\'t think of any.'];

As the lone comment hints, the abuse is that reading a book led to its “index”, where the loredump lies; the obvious vantage is that the players now has control on their exposure to long walls of text (and seasoned adventurers can quickly figure from the index which topics contain the relevant hints and nudges…)

Best regards from Italy,
dott. Piergiorgio.

2 Likes

I’m glad I’m not the only one that doesn’t generally care for the + construct. It is fraught with peril.

3 Likes

I find it super handy but yes, also have been bit by it after moving things around…

3 Likes

I end up using “empty” modify statements to manage this.

So you can do something like:

someRoom: Room 'Room Name' 
     [...]
;
+alice: Person 'alice' 'alice'
    [...]
++[stuff]
+++[more stuff]

…as…

someRoom: Room 'Room Name'
     [...]
;
+alice: Person 'alice' 'alice'
     [...]
;

…and then elsewhere (src/actors/alice.t or something)

modify alice;
+[stuff]

…and so on.

1 Like