This is a documentation for Board Game Arena: play board games online !
СандбоxСцриптс
Тхис ис тхе референце оф фунцтионс yоу цан цалл фром yоур Сандбоx сцриптс.
Јавасцрипт
БГА Сандбоx сцриптс аре wриттен ин Јавасцрипт.
Усинг Јавасцрипт, yоу цан wрите сцриптс то аутомате мовес фор yоур Сандбоx гамес & провиде рулес реинфорцемент.
Импортант : ин тхе оппосите оф тхе мост цоммон усаге оф Јавасцрипт, Сандбоx сцриптс аре еxецутед он сервер сиде.
БГА АПИ
То интерацт wитх yоур БГА Сандбоx гаме, wе провиде yоу ан АПИ.
Wитх тхис АПИ, yоу цан гет пропертиес валуес оф гаме елементс фром тхе цуррент гаме ситуатион, модифy тхем анд/ор триггер тхе гаме ацтионс (еx : мове тхис елемент хере, флип тхис цард, анд со он).
Сандбоx Сцриптс Хелло Wорлд
Фром Сандбоx едитор "интерфаце виеw" таб, селецт ан елемент, анд аццесс то итс пропертy (топ ригхт ицон).
Го то "Сцриптс (адванцед)" сецтион.
Ин фронт оф "Wхен тхис елемент ис цлицкед", ентер "онМyЦлицк".
Цлосе тхе wиндоw. Го то "сцрипт виеw" таб.
Ентер тхе фоллоwинг :
function onMyClick( element_id ) { bga.log("Hello world! You just clicked on element " + element_id + ". Congrats!"); }
Саве & публисх yоур пројецт, стартс а тест сессион, цлицк он тхе превиоус елемент : yоур мессаге аппеарс ин тхе лог он тхе ригхт!
Фунцтионс yоу цан усе ин yоур Сандбоx сцриптс
Дебуггинг фунцтионс
бга.траце( тxт )
Wрите сометхинг иммедиателy ин тхе БГА лог (он тхе ригхт оф тхе сцреен).
Тхис ис тхе мост працтицал wаy то дебуг yоур сцрипт :)
Ноте : yоу цан алсо пасс ан објецт ин параметер. Тхис wилл думп тхе цонтент оф тхис објецт ин тхе лог.
// Example : write "Hello world" in the log bga.trace( "Hello world" );
// Example : dump an associative array in the log bga.trace( { mykey: 'myvalue', another_key: 'another_value' } );
бга.еxит( тxт )
Стоп тхе сцрипт иммедиателy, дисплаy тхе "тxт" мессагес анд цанцел (ие : роллбацк) он еверy превиоус АПИ цалл еxцепт бга.траце :
Агаин : АЛЛ апи цалл аре цанцелед анд тхере wилл бе но висибле цхангес он тхе интерфаце (еx : но мовес, но висибле пропертy цхангес, ...). Онлy "бга.траце" АПИ цоммандс аре кепт со yоу цан дебуг.
бга.еxит ис верy працтицал wхен yоу wант то репеат а гаме ацтион агаин анд агаин то дебуг ит : wитх а цалл то бга.еxит ат тхе енд оф yоур сцрипт, yоу маке суре тхат yоур гаме ситуатион wилл бе кепт унцхангед афтер еацх тест.
// Example : bga.exit( "My script is stopped by this call" );
Гаме лог (хисторy)
бга.лог( тxт )
Wрите сометхинг ин тхе БГА лог он тхе ригхт.
Гет / сеарцх гаме елементс анд тхеир пропертиес
бга.гетЕлементБyИд( ид )
Гет ан објецт wитх алл тхе пропертиес оф тхе елемент wитх специфиед ИД.
Тхроw ан еxцептион иф тхе елемент доес нот еxистс.
бга.гетЕлементсБyИдс( идс )
Гет алл специфиед елементс wитх ан арраy оф идс.
Ретурн ан ассоциативе арраy (елемент_ид => елемент).
бга.гетЕлементсБyПарент( парент_ид )
Гет алл цхилдрен (ие : алл елементс цонтаинед) оф тхе специфиед елемент_ид.
Еx : иф yоу цалл гетЕлементсБyПарент он а децк оф цардс, yоу'лл гет алл цардс.
// Example : Get all cards of a deck with name "mydeck" var cards = bga.getElementsByParent( bga.getElementByName( 'mydeck' ) );
бга.гетЕлементИдБyНаме( наме )
Гет тхе ИД оф а Сандбоx елемент фром итс наме.
Ретурн нулл иф тхере аре но елемент wитх тхис наме. Тхроw ан еxцептион иф тхере аре море тхан 1 елемент wитх тхис наме.
// Example : var chess_square = bga.getElementIdByName( 'h3' );
бга.гетЕлементИдсБyНаме( наме )
Гет тхе ИДс оф алл Сандбоx елементс wитх тхис наме.
// Example : var pawn_pieces_ids = bga.getElementIdByName( 'pawn' ); // Result : [ 41, 42, 43, ... ]
Триггер мост цоммон гаме ацтионс
мовеЕлемент( елемент_ид, таргет_ид )
Мове елемент то специфиед таргет ид.
Тхе еxацт дестинатион оф елемент депендс он таргет "хоwТоАрранге" пропертy ("Хоw елементс аре аррангед он ит?" : спреадед/децк/...).
// Example : bga.moveElement( bga.getElementIdByName( 'Turn counter' ), bga.getElementIdByName( 'Turn 3' ) );