Difference between revisions of "Action System"

From The Official Visionaire Studio: Adventure Game Engine Wiki
Line 1: Line 1:
The action system is what we use to create the various actions & events that will be performed during the game on characters, self, scene objects, & items. The available [[Actionparts|action parts]] may vary depending on where the action is created; scene, scene object, character, item, interface button, game etc.
+
The action system is what we use to create the various actions & events that will be performed during the game on characters, self, scene objects, & items. Whenever something "happens" in your game apart from the character just walking around, it is most likely implemented through an action.
  
 +
[[File:Action System.png|thumb|300px|Setting up an action]]
 +
Every '''action''' consists of a list of '''action parts''' which is processed from top to bottom once the action gets executed. You can choose from [[Actionparts|an extensive list of action parts]] covering all aspects of the game (show a text, start an animation, send the character to a certain position, play a sound etc.).
  
== Action Types ==
+
By defining the '''execution type''' of an action, you tell the engine which event shall trigger the execution. Provided you develop a classic adventure game, it's the application of a game command (e.g. "Use", "Look") in most cases, but it can also be a double-click, mouse movement, dropping an item etc. All available execution types are listed below. Some actions don't offer the selection of execution type, because their execution event is otherwise defined (start action, global mouse actions, actions in dialogs etc.).
Here is a list of available action types, a description & where they can be used.
 
<div class="toccolours mw-collapsible mw-collapsed ts">
 
<span class="bold">Additional Info</span>
 
<div class="mw-collapsible-content">
 
<div>The '''Called by other action''' action is a special case as it is not directly tied to any object, scene, character, or interface button etc, as it can be called anywhere, at any time via the '''call/quit action''' action part.</div>
 
</div></div><br/>
 
  
 +
There is no central location in the editor for managing all game actions. Actions are usually tied to the object to which they belong. ''Wanna look at a chest? – Add an action to your chest object with execution type 'Command Look on object'.'' The only exception are actions with execution type "Called by other action" which can be created wherever you like. These are also the only actions you can name individually.
 +
 +
 +
 +
== Execution Types ==
 +
Here is a list of the possible execution types, a description & where they can be used. Which types are available depends on where the action is created.
  
  
Line 17: Line 19:
 
! style="border-bottom: 1px dashed grey" | Type !! style="border-bottom: 1px dashed grey" | Description !! style="border-bottom: 1px dashed grey" | Available Location(s)
 
! style="border-bottom: 1px dashed grey" | Type !! style="border-bottom: 1px dashed grey" | Description !! style="border-bottom: 1px dashed grey" | Available Location(s)
 
|-
 
|-
| '''Executed command on object''' || actions will only be performed if the current character reaches the object destination & if the ''executed command'' is listed inside of the object actions. || scene objects, characters
+
| '''Executed command (on object/character)''' || The action will be executed when the current character reaches the action object position after the player applied the given '''Command''' on the object. If it's a [[Interfaces#Buttons|combined command]], you have to set the '''Item''' you want to combine with the object. If the player stops the character before reaching the destination, the action will not be performed. || scene objects, characters
 +
|-
 +
| '''Item dropped''' || The action will be executed when the current character reaches the action object position after the player dropped the given '''Item''' on the object. If the player stops the character before reaching the destination, the action will not be performed. || scene objects, characters
 
|-
 
|-
| '''Item dropped''' || actions will only be executed if the current character reaches the object destination & the ''dropped item'' action is listed inside of the object actions. || scene objects, characters
+
| '''Double click''' || The action will be executed when the current character reaches the action object position after the player double-clicked on the object. If the player stops the character before reaching the destination, the action will not be performed. || scene objects, characters
 
|-
 
|-
| '''Double click''' || actions will only be executed if the current character reaches the object destination & the ''double click'' action is listed inside of the object actions. || scene objects, characters
+
| '''Button hold''' || The action will be executed when the current character reaches the action object position after the player left-clicked on the object and held the mouse button for a certain amount of time (as defined in the [[Game_Tab#Mouse_Properties|mouse properties]]). If the player stops the character before reaching the destination, the action will not be performed. || scene objects, characters
 
|-
 
|-
| '''Button hold''' || actions will only be executed if the current character reaches the object destination & the ''button hold'' action is listed inside of the object actions; see [[Game_Tab#Mouse_Properties|mouse properties]]. || scene objects, characters
+
| '''Right click''' || The action will be executed when the current character reaches the action object position after the player right-clicked on the object. If the player stops the character before reaching the destination, the action will not be performed. || scene objects, characters
 
|-
 
|-
| '''Right click''' || actions will only be executed if the current character reaches the object destination & the ''right click'' action is listed inside of the object actions. || scene objects, characters
+
| '''Middle click''' || The action will be executed when the current character reaches the action object position after the player middle-clicked on the object. If the player stops the character before reaching the destination, the action will not be performed. || scene objects, characters
 
|}
 
|}
  
Line 35: Line 39:
 
! style="border-bottom: 1px dashed grey" | Type !! style="border-bottom: 1px dashed grey" | Description !! style="border-bottom: 1px dashed grey" | Available Location(s)
 
! style="border-bottom: 1px dashed grey" | Type !! style="border-bottom: 1px dashed grey" | Description !! style="border-bottom: 1px dashed grey" | Available Location(s)
 
|-
 
|-
| '''Executed command on object''' || actions will be executed immediately if the ''executed command (immediate)'' is listed inside of the objects actions. || all action tabs
+
| '''Executed command (on object/character)''' || The action will be executed immediately when the player applies the given '''Command''' on the action object. If it's a [[Interfaces#Buttons|combined command]], you have to set the '''Item''' you want to combine with the object. || all action tabs
 
|-
 
|-
| '''Item dropped''' || actions will be executed immediately if the ''dropped item (immediate)'' action is listed inside of the object actions. || all action tabs
+
| '''Executed command <->''' || The action will be executed immediately when the player combines two items through the given '''Command''' (which has to be a [[Interfaces#Buttons|combined command]]). It works in both directions: using item A on item B and vice versa. || items
 
|-
 
|-
| '''Double click''' || actions will only be executed if the current character reaches the object destination & the ''double click'' action is listed inside of the object actions. || all action tabs
+
| '''Executed command ->''' || The action will be executed immediately when the player combines two items through the given '''Command''' (which has to be a [[Interfaces#Buttons|combined command]]). It works opposite to '''Executed command''': instead of using the given item on the action object, the action is performed when using the action object on the given item. || items
 
|-
 
|-
| '''Button hold''' || actions will only be executed if the current character reaches the object destination & the ''button hold'' action is listed inside of the object actions; see [[Game_Tab#Mouse_Properties|mouse properties]]. || all action tabs
+
| '''Item dropped''' || The action will be executed immediately when the player drops the given '''Item''' on the action object. || all action tabs
 
|-
 
|-
| '''Right click''' || actions will only be executed if the current character reaches the object destination & the ''right click'' action is listed inside of the object actions. || all action tabs
+
| '''Item dropped <->''' || The action will be executed when the player drops the given '''Item''' on the action object or vice versa. || items
 
|-
 
|-
| '''Cursor enters object area''' || actions will be executed when the mouse cursor enters the object area; providing the ''on cursor enters'' action is listed in the objects actions. || all action tabs
+
| '''Item dropped ->''' || The action will be executed when the player drops the action object on the given '''Item''', so it works opposite to '''Item dropped'''. || items
 
|-
 
|-
| '''Cursor leaves object area''' || actions will be executed when the mouse cursor leaves the object area; providing the ''on cursor leaves'' action is listed in the objects actions. || all action tabs
+
| '''Left click''' || The action will be executed immediately when the player left-clicks on the object. || scene objects, characters
 
|-
 
|-
| '''Called by other action''' || this action is not directly associated with the object & can be called at any time via the '''call/quit action''' action part. || all action tabs
+
| '''Double click''' || The action will be executed immediately when the player double-clicks on the object. || all action tabs
|}
 
 
 
 
 
== Locations ==
 
These actions belong to specific sections of the Visionaire Studio editor.
 
 
 
 
 
=== Scene ===
 
The commands listed below are exclusive to the ''scene actions'' tab.
 
 
 
 
 
{| class="ts"
 
|- align="left" style="background-color:#cccccc"
 
! style="border-bottom: 1px dashed grey" | Type !! style="border-bottom: 1px dashed grey" | Description
 
 
|-
 
|-
| '''At beginning of scene''' || action parts listed here will be performed on scene load.
+
| '''Button hold''' || The action will be executed immediately when the player left-clicks on the object and holds the mouse button for a certain amount of time (as defined in the [[Game_Tab#Mouse_Properties|mouse properties]]). || all action tabs
 
|-
 
|-
| '''At end of scene''' || action parts listed here will be performed on scene close.
+
| '''Right click''' || The action will be executed immediately when the player right-clicks on the object. || all action tabs
|}
 
 
 
 
 
=== Items ===
 
The items commands are very similar to the general ''execution at destination'', & ''immediate execution'' commands. Because the current character already has the items in their inventory, the commands require no distinction between commands ''executed at destination'', or commands ''executed immediately''.
 
 
 
 
 
==== Execution at destination ====
 
to do... types & descriptions were copied from action types section (above).
 
 
 
 
 
{| class="ts"
 
|- align="left" style="background-color:#cccccc"
 
! style="border-bottom: 1px dashed grey" | Type !! style="border-bottom: 1px dashed grey" | Description
 
 
|-
 
|-
| '''Executed command on object''' || actions will only be performed if the current character reaches the object destination & if the ''executed command'' is listed inside of the object actions.
+
| '''Middle click''' || The action will be executed immediately when the player middle-clicks on the object. || all action tabs
 
|-
 
|-
| '''Item dropped''' || actions will only be executed if the current character reaches the object destination & the ''dropped item'' action is listed inside of the object actions.
+
| '''Cursor enters object area''' || The action will be executed when the mouse cursor enters the object area. || all action tabs
 
|-
 
|-
| '''Double click''' || actions will only be executed if the current character reaches the object destination & the ''double click'' action is listed inside of the object actions.
+
| '''Cursor leaves object area''' || The action will be executed when the mouse cursor leaves the object area. || all action tabs
 
|-
 
|-
| '''Button hold''' || actions will only be executed if the current character reaches the object destination & the ''button hold'' action is listed inside of the object actions; see [[Game_Tab#Mouse_Properties|mouse properties]].
+
| '''Mouse wheel up''' || The action will be executed when the player scrolls the mouse wheel up while hovering over the object. || all action tabs
 
|-
 
|-
| '''Right click''' || actions will only be executed if the current character reaches the object destination & the ''right click'' action is listed inside of the object actions.
+
| '''Mouse wheel down''' || The action will be executed when the player scrolls the mouse wheel down while hovering over the object. || all action tabs
 
|}
 
|}
  
  
  
==== Immediate execution ====
+
=== Other ===
to do... types & descriptions were copied from action types section (above).
 
 
 
 
 
 
{| class="ts"
 
{| class="ts"
 
|- align="left" style="background-color:#cccccc"
 
|- align="left" style="background-color:#cccccc"
! style="border-bottom: 1px dashed grey" | Type !! style="border-bottom: 1px dashed grey" | Description
+
! style="border-bottom: 1px dashed grey" | Type !! style="border-bottom: 1px dashed grey" | Description !! style="border-bottom: 1px dashed grey" | Available Location(s)
 
|-
 
|-
| '''Executed command on object''' || actions will be executed immediately if the ''executed command (immediate)'' is listed inside of the objects actions.
+
| '''At beginning of scene''' || The action will be executed on scene load. || scenes
 
|-
 
|-
| '''Item dropped''' || actions will be executed immediately if the ''dropped item (immediate)'' action is listed inside of the object actions.
+
| '''At end of scene''' || The action will be executed on scene close. || scenes
 
|-
 
|-
| '''Double click''' || actions will only be executed if the current character reaches the object destination & the ''double click'' action is listed inside of the object actions.
+
| '''Called by other action''' || An action with this execution type is not directly associated with the object. It can be created anywhere and be called at any time via the [[Actionparts#Call.2FQuit_action|call/quit action]] action part. || all action tabs
|-
+
|}
| '''Button hold''' || actions will only be executed if the current character reaches the object destination & the ''button hold'' action is listed inside of the object actions; see [[Game_Tab#Mouse_Properties|mouse properties]].
+
 
|-
+
{{toc}}
| '''Right click''' || actions will only be executed if the current character reaches the object destination & the ''right click'' action is listed inside of the object actions.
 
|-
 
| '''Cursor enters object area''' || actions will be executed when the mouse cursor enters the object area; providing the ''on cursor enters'' action is listed in the objects actions.
 
|-
 
| '''Cursor leaves object area''' || actions will be executed when the mouse cursor leaves the object area; providing the ''on cursor leaves'' action is listed in the objects actions.
 
|-
 
| '''Called by other action''' || this action is not directly associated with the object & can be called at any time via the '''call/quit action''' action par
 
|}{{toc}}
 

Revision as of 11:30, 6 October 2022

The action system is what we use to create the various actions & events that will be performed during the game on characters, self, scene objects, & items. Whenever something "happens" in your game apart from the character just walking around, it is most likely implemented through an action.

Setting up an action

Every action consists of a list of action parts which is processed from top to bottom once the action gets executed. You can choose from an extensive list of action parts covering all aspects of the game (show a text, start an animation, send the character to a certain position, play a sound etc.).

By defining the execution type of an action, you tell the engine which event shall trigger the execution. Provided you develop a classic adventure game, it's the application of a game command (e.g. "Use", "Look") in most cases, but it can also be a double-click, mouse movement, dropping an item etc. All available execution types are listed below. Some actions don't offer the selection of execution type, because their execution event is otherwise defined (start action, global mouse actions, actions in dialogs etc.).

There is no central location in the editor for managing all game actions. Actions are usually tied to the object to which they belong. Wanna look at a chest? – Add an action to your chest object with execution type 'Command Look on object'. The only exception are actions with execution type "Called by other action" which can be created wherever you like. These are also the only actions you can name individually.


Execution Types

Here is a list of the possible execution types, a description & where they can be used. Which types are available depends on where the action is created.


Execution at destination

Type Description Available Location(s)
Executed command (on object/character) The action will be executed when the current character reaches the action object position after the player applied the given Command on the object. If it's a combined command, you have to set the Item you want to combine with the object. If the player stops the character before reaching the destination, the action will not be performed. scene objects, characters
Item dropped The action will be executed when the current character reaches the action object position after the player dropped the given Item on the object. If the player stops the character before reaching the destination, the action will not be performed. scene objects, characters
Double click The action will be executed when the current character reaches the action object position after the player double-clicked on the object. If the player stops the character before reaching the destination, the action will not be performed. scene objects, characters
Button hold The action will be executed when the current character reaches the action object position after the player left-clicked on the object and held the mouse button for a certain amount of time (as defined in the mouse properties). If the player stops the character before reaching the destination, the action will not be performed. scene objects, characters
Right click The action will be executed when the current character reaches the action object position after the player right-clicked on the object. If the player stops the character before reaching the destination, the action will not be performed. scene objects, characters
Middle click The action will be executed when the current character reaches the action object position after the player middle-clicked on the object. If the player stops the character before reaching the destination, the action will not be performed. scene objects, characters


Immediate execution

Type Description Available Location(s)
Executed command (on object/character) The action will be executed immediately when the player applies the given Command on the action object. If it's a combined command, you have to set the Item you want to combine with the object. all action tabs
Executed command <-> The action will be executed immediately when the player combines two items through the given Command (which has to be a combined command). It works in both directions: using item A on item B and vice versa. items
Executed command -> The action will be executed immediately when the player combines two items through the given Command (which has to be a combined command). It works opposite to Executed command: instead of using the given item on the action object, the action is performed when using the action object on the given item. items
Item dropped The action will be executed immediately when the player drops the given Item on the action object. all action tabs
Item dropped <-> The action will be executed when the player drops the given Item on the action object or vice versa. items
Item dropped -> The action will be executed when the player drops the action object on the given Item, so it works opposite to Item dropped. items
Left click The action will be executed immediately when the player left-clicks on the object. scene objects, characters
Double click The action will be executed immediately when the player double-clicks on the object. all action tabs
Button hold The action will be executed immediately when the player left-clicks on the object and holds the mouse button for a certain amount of time (as defined in the mouse properties). all action tabs
Right click The action will be executed immediately when the player right-clicks on the object. all action tabs
Middle click The action will be executed immediately when the player middle-clicks on the object. all action tabs
Cursor enters object area The action will be executed when the mouse cursor enters the object area. all action tabs
Cursor leaves object area The action will be executed when the mouse cursor leaves the object area. all action tabs
Mouse wheel up The action will be executed when the player scrolls the mouse wheel up while hovering over the object. all action tabs
Mouse wheel down The action will be executed when the player scrolls the mouse wheel down while hovering over the object. all action tabs


Other

Type Description Available Location(s)
At beginning of scene The action will be executed on scene load. scenes
At end of scene The action will be executed on scene close. scenes
Called by other action An action with this execution type is not directly associated with the object. It can be created anywhere and be called at any time via the call/quit action action part. all action tabs