Difference between revisions of "Conditions and Values"

From The Official Visionaire Studio: Adventure Game Engine Wiki
Line 23: Line 23:
  
  
<strong>Conditions & Values</strong> are a fundamental necessity when it comes to game development as they allow you to dictate the <span class="italic bold">events</span> that can take place, have taken place or have yet to take place. They can also be used in <span class="green italic">if else</span> queries to determine if an event, or multiple events should be allowed to happen based on a conditions value or the integer (number) value of a Value.
+
<strong>Conditions & Values</strong> are a fundamental necessity when it comes to game development as they allow you to dictate the <span class="italic bold">events</span> that can take place, have taken place or have yet to take place. They can also be used in <span class="green italic">if else</span> queries to determine if an event, or multiple events should be allowed to happen based on a conditions value or the integer number of a Value.
  
  
<strong>Conditions</strong> are boolean based & contain either the value of <span class="green">true</span> or <span class="red">false</span>. Besides the obvious use of them in an <span class="green italic">if else</span> query, they can also be linked directly to objects, dialogs & interface buttons via the properties tab for the aforementioned objects, to quickly determine if the object is active (shown) or disabled (hidden); if disabled then all images & animations for the object will be hidden & all actions associated with the object will also be disabled - this is very useful for quickly changing the environment of the scene or any other scenes for that matter, regardless of whether they are a playable scene, cut-scene or a menu.
+
<strong>Conditions</strong> are boolean based & contain either the value of <span class="green">true</span> or <span class="red">false</span>. Besides the obvious use of them in an <span class="green italic">if else</span> query, they can also be linked directly to objects, dialogs & interface buttons via the properties tab for the aforementioned objects, to quickly determine if the object is active (shown) or disabled (hidden); if disabled then all images & animations for the object will be hidden & all actions associated with the object will also be disabled - this is very useful for quickly changing the environment of the scene or any other scenes for that matter, regardless of whether they are a playable scene, cut-scene or menu.
  
  
Line 47: Line 47:
 
File:cond_002.png
 
File:cond_002.png
 
</gallery>
 
</gallery>
 +
 +
 +
<strong>Values</strong> are "string" & integer based & are a lot more flexible than conditions. We can create "string" values, integer values & random integer values between x number (min) & y number (max). We also have multiple options inside of the "set value" action part such as directly setting a new integer value (=), adding to current value (+), subtracting from current value (-), multiplying current value (*) & finally: dividing the current value (/). Having said that; we can't set a new string value via the "set value" action part, nor can we use the string value in an if else query; instead it has to be done via a simple bit of Lua scripting (see below).
 +
 +
 +
<syntaxhighlighting>
 +
local val = getObject("Values[add value name here]") -- store value into a variable
 +
local str = val:getStr(VValueString) -- store linked values "string" value into a variable
 +
 +
val:setValue(VValueString, "add new string value here") -- create a new string value
 +
</syntaxhighlighting>

Revision as of 19:34, 26 August 2013

Values on the other hand are a lot more flexible than conditions as they support both "string" & integer values as well as randomly generated integer values. Values can also be included inside of displayed text via like so:

Example 1: including an integer value into a displayed text; value name: money_total

I currently have $<v=money_total>.

Example 2: including a string value into a displayed text; value name: player_name

You have decided to call your protagonist <vs=player_name>.


Value strings are probably not really much use at the current time due to Visionaire Studio currently lacking true key input methods for text based input & text based puzzles.


Although you can set an initial string value for values you can not edit them via the "set value" action part (I'm not sure why) instead you will need to edit them via a simple bit of Lua scripting inside of an "execute a script" action part.


getObject("Values[insert value name here]"):setValue(VValueString, "insert new string text here")


Conditions & Values are a fundamental necessity when it comes to game development as they allow you to dictate the events that can take place, have taken place or have yet to take place. They can also be used in if else queries to determine if an event, or multiple events should be allowed to happen based on a conditions value or the integer number of a Value.


Conditions are boolean based & contain either the value of true or false. Besides the obvious use of them in an if else query, they can also be linked directly to objects, dialogs & interface buttons via the properties tab for the aforementioned objects, to quickly determine if the object is active (shown) or disabled (hidden); if disabled then all images & animations for the object will be hidden & all actions associated with the object will also be disabled - this is very useful for quickly changing the environment of the scene or any other scenes for that matter, regardless of whether they are a playable scene, cut-scene or menu.


Additional Info

You can create 2 types of conditions:
1. Variable: this is a single condition which contains a boolean value of true or false.
2. Combined: this allows you to link 2 single conditions & set "and", "or" query to link to an object.

Combined conditions can be useful, but I find Values are a lot more flexible when it comes to multiple conditions needing to met for certain events to be performed. The in editor if query system is not as flexible as writing if queries with Lua mind as there is no method for creating the "and" or "or" operators. Also there is no "elseif" which means that for each if you create that there should also be the same amount of end if.



Values are "string" & integer based & are a lot more flexible than conditions. We can create "string" values, integer values & random integer values between x number (min) & y number (max). We also have multiple options inside of the "set value" action part such as directly setting a new integer value (=), adding to current value (+), subtracting from current value (-), multiplying current value (*) & finally: dividing the current value (/). Having said that; we can't set a new string value via the "set value" action part, nor can we use the string value in an if else query; instead it has to be done via a simple bit of Lua scripting (see below).


<syntaxhighlighting> local val = getObject("Values[add value name here]") -- store value into a variable local str = val:getStr(VValueString) -- store linked values "string" value into a variable

val:setValue(VValueString, "add new string value here") -- create a new string value </syntaxhighlighting>