Event input handling #13
Labels
enhancement
New feature or request
fate
Issues relating to the Fate language
wyrd
Issues relating to the Wyrd language
Milestone
In games where the narrative isn't what drives the gameplay, the narrative is likely going to be called upon following an event occurring from some other mechanism (e.g. "attacked monster A").
Tonkadur makes scripts that expect its execution to continue until the game engine has to be prompted for an input (
prompt_string
,prompt_integer
,player_choice
). Technically, theevent
instruction can be seen as a way to give back control to the game engine, since it expects the game engine to perform something before continuing.However, games not driven by the narrative are likely to want to have a narrative script running some initialization, keep an internal state, then react to incoming events.
To handle this,
player_choice
can be used, with the events corresponding to labels. However,player_choice
labels aretext
, whereas coding the interpreter to handle incoming events would make the use ofstring
labels more appropriate. Furthermore, these "choices" would not be expected to be seen by the player, making the interpreter more tedious to implement (specialtext effect
that hides a choice, most likely).To make narratives that can be driven, instead of having the narrative being the gameplay orchestrator,
player_choice
should be modified.(player_choice <player_choice_list>*)
becomes a shorthandevent_input
.(declare_global_event {label=string} {sequence_name=string})
, astring
can be associated to a parameter-less sequence. This event is automatically added to everyevent_input
instruction.string
label, but has to be explicitly listed in theevent_input
to be usable. This is to ensure the events are properly defined.string
label for this type of event.TBD: parameter passing for events. For example: "attacked monster A". "attacked monster" is likely to be static, but "A" is an identifier, which is something the narrative needs to be able to retrieve.
The text was updated successfully, but these errors were encountered: