Macro proposal (click-once: )
Created originally on Bitbucket by albuquezi (José Dias)
Hi there,
I've been using Twine and the Harlowe format in my foreign language classes (long distance creative writing, as I call it ). I really appreciate all the effort and hard work of the Twine team, and yours too, Leon, with the Harlowe format. You're making something really meaningful for many of us. And I'm a just a guy teaching Portuguese at Warsaw University in Poland, so you can see how far you're reaching. Thank you!
Okay, so on to my proposal. I am using Twine with absolute non-coders, university students (95% women) that tremble at the sound of code, conditional structures and variables. So I've been trying to approach Twine with the least code possible. Harlowe already does a good job at it, but I was wondering if would be possible to go further in some cases. For instance:
Would it be possible to have a variation of the (click: ) macro that only works once for each playthrough? Let me explain:
Now, when you use (click: ), the player will click it to read more information and then the link disappears, but if he leaves and returns to that passage, the linked word with (click: ) will again appear and you can click it again to reveal the same information.
I understand that sometimes this is useful, but by watching my students I see that most of the times, they wanted for the linked word to appear just once and then to be replaced by the information already revealed. This is because this repetition easily breaks the suspension of disbelief. You cannot discover the same thing again and again.
To accomplish this, I have to tell them about conditional structures and boolean variables or about the (history: ) macro. And then sheer panic comes into her eyes.
Would it be possible to have a sort of (click-once: ) macro that asked for three arguments:
(click-once: "word(s) from the passage")["text to be revealed after being clicked", "text to appear after being clicked replacing the word(s) from the passage"]
The code could be more or less like this:
#!harlowe
On the table you can see a small wooden box. On the right an open window.
(click-once: "wooden box")["the box is empty.", "which is empty."]
The first time in the passage the player would read:
#!harlowe
On the table you can see a small (link)wooden box(/link). On the right an open window.
And then, if the player had clicked and returned to this passage, he would read:
#!harlowe
On the table you can see a small wooden box, which is empty. On the right an open window. (no link)
This way I think I wouldn't have to go into conditional structures so early on.
But am I right? Would it be possible or even adequate? I am not a programmer myself, so maybe this suggestion could be completely irrelevant. If so, sorry for wasting your time :)
I have another proposal, but I will make a new post to keep things organized.
Once again thanks for the great work!
José