As a game designer,
I want to add interactions,
so that I can create interactive events in my game.
Acceptance criteria:
- Added interaction is added to list and redux store
- New interactions are exported
- Event (click/drag), source (item), commands (monologue etc.) and destinations (items) can be specified when adding an interaction
- Cypress test written
- When the event is click, there is no destination item
- When the event is drag, there is always a destination item
Technical notes:
- The id of each interaction is the id of the source item/furniture
- Duplicate interaction id is not allowed
Notes:
Make sure to get familiar with https://github.com/kiigame/adventure_engine/wiki/Adventure-creation-guide before starting the implementation. The interaction system in the engine is quite flexible and generic.
It is very important to consider UX before starting to implement this feature. Generic view to edit all/any kind of interactions the engine supports is probably quite difficult to design.
Consider slicing this feature. For example, certain interaction commands (monologue, inventory_add, etc) could be sliced into separate tasks. Not everything needs to be implemented at once.
Also, it is a good idea to consider separate features to add in "build-in" or "macro" interactions. There are already two examples in the editor:
- Furniture examine texts
- Doors
From engine point of view, they both are flexible, generic interactions that just happen to combine "click" ui interaction with "add_monologue" interaction command (examine texts) and "do_transition" interaction command (door), but in the editor, it is good that these can be quickly added to furniture.
Related to #29
As a game designer,
I want to add interactions,
so that I can create interactive events in my game.
Acceptance criteria:
Technical notes:
Notes:
Make sure to get familiar with https://github.com/kiigame/adventure_engine/wiki/Adventure-creation-guide before starting the implementation. The interaction system in the engine is quite flexible and generic.
It is very important to consider UX before starting to implement this feature. Generic view to edit all/any kind of interactions the engine supports is probably quite difficult to design.
Consider slicing this feature. For example, certain interaction commands (monologue, inventory_add, etc) could be sliced into separate tasks. Not everything needs to be implemented at once.
Also, it is a good idea to consider separate features to add in "build-in" or "macro" interactions. There are already two examples in the editor:
From engine point of view, they both are flexible, generic interactions that just happen to combine "click" ui interaction with "add_monologue" interaction command (examine texts) and "do_transition" interaction command (door), but in the editor, it is good that these can be quickly added to furniture.
Related to #29