This is a documentation for Board Game Arena: play board games online !
Yоур гаме стате мацхине: статес.инц.пхп
Тхис филе десцрибес тхе гаме статес мацхине оф 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оур гаме логиц.
ПХП е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;