Now, for another scenic variation, this scene uses a separate set of think topics when active (uses also the new thoughtsugg.t optional library of adv3Lite, so is also a good, I hope, demo of its usage)
This time, the source is in two parts, the scene proper, and the thought topics definitions.
First, the scene itself:
// test thinking scene
thinktest: Scene// EventList
startsWhen = (thcap.isWornBy(etuye))
endsWhen = (!thcap.isWornBy(etuye))
thoCount = 0
recurring = true
whenStarting() {
"you wear your thinking cap, and lo and behold, indeed some specific
thoughts came into your mind:\n";
libGlobal.thoughtManagerObj.showSuggestions();
// ThoughtManager.showSuggestions();
}
whenEnding() {"You ended your thinking session, in which you thinked about
<<spellNumber(thinktest.thoCount)>> topics out of four.";
suggestionEnumerator.initialize();
}
eachTurn() {}
//preAction(lst) {}
//eventList = []
finishOff(howEnded) {"Doffing your cap, you return to the actual story";}
; //thinktest
and the topic definition, where the actual trick lies:
Thought @tsweather
"scenically nice and fair.
<<first time>><<cf({:thinktest.thoCount++})>><<only>>"
location = thoughts
// name = 'the weather' //won't work. Clashes with the non-cap weather !
name = 'capping the weather' // <-- this prove the clashing !
listOrder = 204
isActive = (thinktest.isHappening)
;
Thought @tsscene
"I wonder if the thinking scenes like this actyally works...
<<first time>><<cf({:thinktest.thoCount++})>><<only>>"
location = thoughts
name = 'on scenes'
listOrder = 203
isActive = (thinktest.isHappening)
;
Thought @tsalpha
"The canonical first round of testing
<<first time>><<cf({:thinktest.thoCount++})>><<only>>"
location = thoughts
name = 'alpha test'
listOrder = 201
isActive = (thinktest.isHappening)
;
Thought @tsbeta
"Needs testers, then is best a public beta !
<<first time>><<cf({:thinktest.thoCount++})>><<only>>"
location = thoughts
name = 'beta test'
listOrder = 202
isActive = (thinktest.isHappening)
;
note that the “ordinary” topics conversely have:
Thought @situation
"about my situation... it is definitively unusual, there's no other
definition feasible.. well, let's take some time, for now."
location = thoughts
name = 'your situation'
listOrder = 104
isActive = (!thinktest.isHappening)
;
Thought @weather
"nice."
location = thoughts
name = 'the weather'
listOrder = 105
isActive = (!thinktest.isHappening)
;
(notice the NOT active condition)
only issues, the name property must not conflict between the ordinary ones and the different ones during the scene.
That’s all !
Best regards from Italy,
dott. Piergiorgio.