0 votes
by (190 points)
edited by

I'm having people playtest a game I'm making. This game has an inventory system that allows one to look at individual object descriptions in separate passages, then go back to the passage they were at previously. A lot of these passages have a lot of hidden text that's revealed through (linkreveal:) and (click: ?hook) macros. When you visit an object's description and go back to the passages with hidden text, the text is re-hidden. A good number of people have made comments that this is annoying, because then they have to click through all the text again.

I'm wondering of a good way to like...nullify the macros when they've already been clicked. Perhaps there's a really obvious macro I missed? The only thing I can think of is something like...

(in startup)

(set: $isClicked to false)

(in passage)

This is some text with (if: $isClicked is false)[(set: $isClicked to true)(link-reveal: "hidden text")[ that reveals an [[Item]]]](else:)[hidden text that reveals an [[Item]].]

This seems...really clunky and repetitive though so I'm sure there's a better way! I haven't quite wrapped my head around the changes that were made for Harlowe 2 (lambdas, temporary variables, (for:), etc) so I'm probably missing something!

Also this is what I'm using in the Item passage to go back:

(link-goto: "Back to what you were doing.", (history:)'s last)


1 Answer

0 votes
by (6.2k points)
i can't think of anything other than your 'clunky' method which seems to be fine. why not just use that?
by (159k points)

note: The correct syntax for checking if a Boolean variable has been set to true or false is:

(if: $variable)[The variable equals true!]

(if: not $variable)[The variable equals false!]