[[:start|Start Page]] >> [[:gamedev|Game Development with the Drag[en]gine]] >> [[gamedev:deigde|Drag[en]gine Integrated Game Development Environment]] >> [[gamedev:deigde:editors:conversation|Conversation Editor]] >> **Conversation Conditions** //**Conversation Conditions**// provide support to evaluate composed conditions for branching actions. Conditions return either //**true**// or //**false**//. The following list describes the available conditions. ====== Actor Command Condition ====== Sends a string command to the actor specified by either index, //**Unique Name**// or //**Alias Name**// and using the returned result as condition result. This is a multi-tool for game developers to query game specific behaviour on actors. The scripting language scripts will deliver the string command as an array or list of strings the actor scripts can parse. The script then return either //**true**// or //**false**// in response. ====== Actor In Conversation Condition ====== Checks if an actor identified by //**Unique Name**// is current part of a conversation, this one or another. This condition is useful to check if an actor can be added to a conversation or not. An example use is with the //**Wait Action**// to wait with adding an actor until he is not locked in a conversation. ====== Actor Parameter Condition ====== Compares a value against an //**Actor Parameter**// in a conversation actor. Actor parameters are named integer parameters conversation actors store in the game scripts. The game scripts define the meaning of actor parameters. This allows conversation scripts to alter behaviour of actors beyond finishing playing back by means of altering integer parameters. The actor is identified by index, //**Unique Name**// or //**Alias Name**//. The //**Operator**// defines how the parameter is checked against the specified //**Test Value**//. The following operators are supported. * //**Equal**//: Evaluates to //**true**// if the parameter value is equal to the test value. * //**Not Equal**//: Evaluates to //**true**// if the parameter value is not equal to the test value. * //**Less**//: Evaluates to //**true**// if the parameter value is less than the test value. * //**Less Equal**//: Evaluates //**true**// if the parameter value is less than or equal to the test value. * //**Greater**//: Evaluates to //**true**// if the parameter value is greater than the test value. * //**Greater Equal**//: Evaluates to //**true**// if the parameter value is greater or equal to the test value. If the parameter has never been accessed before 0 is assumed as the value to use for comparing. ====== Game Command Condition ====== Sends a string command to the conversation playback object using the return value as condition result. This is a multi-tool for game developers to check game specific behaviour on the entire game. The scripting language scripts will deliver the string command as an array or list of strings the conversation playback can parse. The script then return either //**true**// or //**false**// in response. ====== Has Actor Condition ====== Checks if an actor identified by //**Unique Name**// is part of this conversation. This condition is useful to play back certain conversation parts only if an actor is present. ====== Logic Condition ====== Evaluates a list of conditions using the logic comparison of their results as condition result. The //Operator// defines the logic operator to use to combine the results. Supported are the following operators: * //**None**//: Evaluates to //**true**// if none of the conditions evaluate to //**true**//. If there are no conditions evaluates to //**true**//. * //**Any**//: Evaluates to //**true**// if one or more conditions evaluate to //**true**//. If there are no conditions evaluates to //**false**//. * //**All**//: Evaluates to //**true**// if all conditions evaluate to //**true**//. If there are no conditions evaluates to //**false**//. ====== Trigger Condition ====== Checks the state of a //**Game Trigger**//. Game triggers are managed by the game scripts. Using the trigger action a conversation script can trigger game events like //**Trigger Elements**// inside a world (for example a touch sensor). The trigger is identified by the //**Target Name**//. The //**Test Mode**// defines how the trigger state is tested. The trigger can be //**Fired**//, //**Reset**//, //**Pulsed**// and //**Full Reset**//. Triggers have two states: //**Fired**// and //**Ever Fired**//. The fired state indicates if the trigger is in the fired stated right now. The ever fired state indicates if the trigger has ever been fired in his lifetime. The following test modes are supported: * //**Fired**//: Evaluates to //**true**// if the trigger is in the fired state. * //**Not Fired**//: Evaluates to //**true**// if the trigger is in the reset state. * //**Ever Fired**//: Evaluates to //**true**// if the trigger has ever been fired. * //**Never Fired**//: Evaluates to //**true**// if the trigger has never been fired. If the trigger does not exist in the game world it is assume to be in the reset, never fired state. ====== Variable Condition ====== Checks a //**Conversation Variable**//. Works similar to //**Actor Parameter Condition**// but using a variable existing only inside this conversation playback for the duration of the playback. Variables can be accessed after the playback finished as long as the playback instance is not discarded. The same operators are supported.