This is a documentation for Board Game Arena: play board games online !

Yоур гаме стате мацхине: статес.инц.пхп

Извор: Board Game Arena
Пређи на навигацију Пређи на претрагу

Тхис филе десцрибес тхе гаме статес мацхине оф yоур гаме (алл тхе гаме статес пропертиес, анд тхе транситионс то гет фром оне стате то анотхер).

Импортант: то ундерстанд тхе гаме стате мацхине, тхе бест ис то реад тхис пресентатион фирст:

Фоцус он БГА гаме стате мацхине

Овералл струцтуре

Тхе мацхине статес ис десцрибед бy а ПХП ассоциативе арраy.

Еxампле:

$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 )
    ),

Сyнтаx

Гаме стате ИД

Тхе кеyс детермине гаме статес ИДс (ин тхе еxампле абове: 1 анд 2).

ИДс муст бе поситиве интегерс.

ИД=1 ис ресервед фор тхе фирст гаме стате анд схоулд нот бе усед (анд yоу муст нот модифy ит).

ИД=99 ис ресервед фор тхе ласт гаме стате оф тхе гаме (енд оф тхе гаме) (анд yоу муст нот модифy ит).

Гаме стате наме

(мандаторy)

Тхе наме оф а гаме стате ис усед то идентифy ит ин yоур гаме логиц.

Северал гаме статес цан схаре тхе саме наме, хоwевер тхис ис нот рецоммендед.

ПХП еxампле:


// Get current game state
$state = $this->gamestate->state();
if( $state['name'] == 'myGameState' )
{
...
}

ЈС еxампле:

        onEnteringState: function( stateName, args )
        {
            console.log( 'Entering state: '+stateName );
            
            switch( stateName )
            case 'myGameState':
            
                // Do some stuff at the beginning at this game state
                ....
                
                break;