Action archetypes

In order to streamline how the server informs the client of possible actions, we can define action archetypes and associate components to them. Archetypes would define, mainly, the types of parameters the actions require.

Here's a brainstorm of actions and their archetypes:

  • Targeted (self, target)
    • Open/Close
    • Grab
    • Quaff
  • Applied (self, with, *)
    • To Objects (self, with, target)
      • Lock/unlock (with:key, to:door)
      • Stow (with:container, to:item)
      • Fix (with:tool, to:target)
      • Salvage (with:tool, to:target)
    • To Positions (self, with, position)
      • Strike (with:weapon, to:position)
      • Dig (with:shovel, to:position)
      • Throw (with:throwable, to:position)
      • Shoot (with:weapon, to:position)
      • Zap (with:magic, to:position)
      • Place (with:object, to:position)

There two notable exceptions: Walk and Wait (as well as other similar actions).

Edited by Wilson Kazuo Mizutani