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;