Skip to content

Add interaction #30

@evktalo

Description

@evktalo

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions