This is a documentation for Board Game Arena: play board games online !
Your game state machine: states.inc.php: razlika između inačica
 (Created page with " This file describes the game states machine of your game (all the game states properties, and the transitions to get from one state to another).  Important: to understand the...")  | 
				 (→Syntax)  | 
				||
| Redak 47: | Redak 47: | ||
ID=99 is reserved for the last game state of the game (end of the game) (and you must not modify it).  | ID=99 is reserved for the last game state of the game (end of the game) (and you must not modify it).  | ||
=== Game state name ===  | |||
(mandatory)  | |||
The name of a game state is used to identify it in your game logic.  | |||
PHP example:  | |||
<pre>  | |||
// Get current game state  | |||
$state = $this->gamestate->state();  | |||
if( $state['name'] == 'myGameState' )  | |||
{  | |||
...  | |||
}  | |||
</pre>  | |||
JS example:  | |||
<pre>  | |||
        onEnteringState: function( stateName, args )  | |||
        {  | |||
            console.log( 'Entering state: '+stateName );  | |||
            switch( stateName )  | |||
            case 'myGameState':  | |||
                // Do some stuff at the beginning at this game state  | |||
                ....  | |||
                break;  | |||
</pre>  | |||
Inačica od 11. siječnja 2013. u 14:24
This file describes the game states machine of your game (all the game states properties, and the transitions to get from one state to another).
Important: to understand the game state machine, the best is to read this presentation first:
Focus on BGA game state machine
Overall structure
The machine states is described by a PHP associative array.
Example:
$machinestates = array(
    // The initial state. Please do not modify.
    1 => array(
        "name" => "gameSetup",
        "description" => clienttranslate("Game setup"),
        "type" => "manager",
        "action" => "stGameSetup",
        "transitions" => array( "" => 2 )
    ),
    
    // Note: ID=2 => your first state
    2 => array(
    		"name" => "playerTurn",
    		"description" => clienttranslate('${actplayer} must play a card or pass'),
    		"descriptionmyturn" => clienttranslate('${you} must play a card or pass'),
    		"type" => "activeplayer",
    		"possibleactions" => array( "playCard", "pass" ),
    		"transitions" => array( "playCard" => 2, "pass" => 2 )
    ),
Syntax
Game state ID
The keys determine game states IDs (in the example above: 1 and 2).
IDs must be positive integers.
ID=1 is reserved for the first game state and should not be used (and you must not modify it).
ID=99 is reserved for the last game state of the game (end of the game) (and you must not modify it).
Game state name
(mandatory) The name of a game state is used to identify it in your game logic.
PHP example:
// Get current game state
$state = $this->gamestate->state();
if( $state['name'] == 'myGameState' )
{
...
}
JS example:
        onEnteringState: function( stateName, args )
        {
            console.log( 'Entering state: '+stateName );
            
            switch( stateName )
            case 'myGameState':
            
                // Do some stuff at the beginning at this game state
                ....
                
                break;