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

Table: Difference between revisions

From Board Game Arena
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 39: Line 39:
;Table.setupNewGame
;Table.setupNewGame
:part of template, override, see [[Main game logic: yourgamename.game.php]]
:part of template, override, see [[Main game logic: yourgamename.game.php]]
;Table.getTableOptionsForGame
;Table.getTableOptionsForGame static
:undocumented
:undocumented
;Table.getTableOptions
;Table.getTableOptions
:undocumented, likely return gameoptions (i.e. variants of the games)
:undocumented, likely return gameoptions (i.e. variants of the games)
;Table.getTablePreferencesForGame
;Table.getTablePreferencesForGame static
:undocumented
:undocumented
;Table.getTablePreferences
;Table.getTablePreferences
:undocumented, likely return UI preferences (i.e. display tooltips or not)  
:undocumented, likely return UI preferences (i.e. display tooltips or not)  
;Table.getGameInfosForGame
;Table.getGameInfosForGame static
:undocuments, likely return $gameinfos from gameinfos.inc.php
:undocuments, likely return $gameinfos from gameinfos.inc.php
;Table.getGameOptionsInfos
;Table.getGameOptionsInfos
Line 114: Line 114:
:force to abandon game, normally its called when all players agree, but can be called to force people out when testing alpha or beta games and don't want to deal with update db and such ($this->forceEndOfGame( $reason ))
:force to abandon game, normally its called when all players agree, but can be called to force people out when testing alpha or beta games and don't want to deal with update db and such ($this->forceEndOfGame( $reason ))
;Table.giveExtraTime
;Table.giveExtraTime
:give extra time to a player, usually when turn require multiple player states, see [[Main_game_logic:_yourgamename.game.php#Reflexion_time]]
;Table.checkZombieTurn
;Table.checkZombieTurn
;Table.skipPlayersOutOfTime
;Table.skipPlayersOutOfTime
:this is called by framework, do not use
;Table.onPlayerHasBeenZombified
;Table.onPlayerHasBeenZombified
;Table.forceAbandon
;Table.forceAbandon
;Table.zombieBack
;Table.zombieBack
Line 123: Line 126:
;Table.aiError
;Table.aiError
;Table.say
;Table.say
:this function processes chat message, do not use for game purposes, for word games use dedicated control
;Table.getGameProgression
;Table.getGameProgression
;Table.getStatTypesForGame
:part of template, override to return proper data, see [[Main_game_logic:_yourgamename.game.php]] and [[Your_game_state_machine:_states.inc.php]]
;Table.getStatTypes
;Table.getStatTypesForGame static
;Table.getStatTypes  
:get the $stats_type array defined in stats.inc.php
:get the $stats_type array defined in stats.inc.php
;Table.stat_type_id_to_name
;Table.stat_type_id_to_name
Line 174: Line 179:
;Table.isAsync
;Table.isAsync
:return true if game is turn based, false if realtime, undocumented (why?)
:return true if game is turn based, false if realtime, undocumented (why?)
;Table.getTimeLimits
;Table.getTimeLimits static
:internal framework function, do not call or override
:internal framework function, do not call or override
;Table.getAsyncTimeLimits
;Table.getAsyncTimeLimits
Line 214: Line 219:
== Methods in the APP_DbObject class ==
== Methods in the APP_DbObject class ==


;APP_DbObject.ConnectDb
;APP_DbObject.ConnectDb static
;APP_DbObject.DbQuery
;APP_DbObject.DbQuery static
:main query method, see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database
:main query method, see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database
;APP_DbObject.DbTraceTimeBefore
;APP_DbObject.DbTraceTimeBefore static
;APP_DbObject.DbTraceTimeAfter
;APP_DbObject.DbTraceTimeAfter static
;APP_DbObject.DbGetLastId
;APP_DbObject.DbGetLastId static
;APP_DbObject.DbDumpQueryHistory
;APP_DbObject.DbDumpQueryHistory static
;APP_DbObject.DbAffectedRow
;APP_DbObject.DbAffectedRow static
;APP_DbObject.DbStartTransaction
;APP_DbObject.DbStartTransaction static
;APP_DbObject.DbCommit
;APP_DbObject.DbCommit static
;APP_DbObject.DbRollback
;APP_DbObject.DbRollback static
;APP_DbObject.DbRestartTransaction
;APP_DbObject.DbRestartTransaction static
;APP_DbObject.DbSelect
;APP_DbObject.DbSelect static
;APP_DbObject.CommitAllAndRestart
;APP_DbObject.CommitAllAndRestart static
;APP_DbObject.setDeadlockMode
;APP_DbObject.setDeadlockMode
;APP_DbObject.isDeadlockModeRetry
;APP_DbObject.isDeadlockModeRetry
Line 248: Line 253:
;APP_DbObject.getObjectListFromDB
;APP_DbObject.getObjectListFromDB
:see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database
:see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database
;APP_DbObject.getSelectedDb
;APP_DbObject.getSelectedDb static
;APP_DbObject.sqlParsing
;APP_DbObject.sqlParsing
;APP_DbObject.DbUsePrefix
;APP_DbObject.DbUsePrefix
;APP_DbObject.applyPrefix
;APP_DbObject.applyPrefix
;APP_DbObject.cache_store
;APP_DbObject.cache_store static
;APP_DbObject.cache_add
;APP_DbObject.cache_add static
;APP_DbObject.cache_exists
;APP_DbObject.cache_exists static
;APP_DbObject.cache_fetch
;APP_DbObject.cache_fetch static
;APP_DbObject.cache_delete
;APP_DbObject.cache_delete static
;APP_DbObject.cache_rollback
;APP_DbObject.cache_rollback static
;APP_DbObject.cache_commit
;APP_DbObject.cache_commit static
;APP_DbObject.ensure_enough_time_since_last_action
;APP_DbObject.ensure_enough_time_since_last_action
;APP_DbObject.getMasterNodeDomain
;APP_DbObject.getMasterNodeDomain
Line 269: Line 274:
== Methods in the APP_Object class ==
== Methods in the APP_Object class ==
;APP_Object.watch
;APP_Object.watch
:@deprecated, do not use
:@deprecated, do not use (noop)
;APP_Object.debug
;APP_Object.debug
:see https://en.doc.boardgamearena.com/Practical_debugging
:see https://en.doc.boardgamearena.com/Practical_debugging
Line 280: Line 285:
;APP_Object.dump
;APP_Object.dump
:see https://en.doc.boardgamearena.com/Practical_debugging
:see https://en.doc.boardgamearena.com/Practical_debugging
== Selected static methods in utility modules ==
;bga_rand
:recommended for randomless (dice rolls, etc), see [[Main game logic: yourgamename.game.php#About random and randomness]]
;shuffle_with_keys
:shuffle array with keys (basically shuffle keys and keep linked values), it shuffle argument, does not return anything
;totranslate
:returns its argument, used for MARKING of string for server strings https://en.doc.boardgamearena.com/Translations
;clienttranslate
:returns its argument, used for MARKING of string for client strings https://en.doc.boardgamearena.com/Translations
;_
:this is not the same as self::_, it is also translation function but only can translate mainsite strings, do not use in game code

Revision as of 18:47, 29 September 2021

This is reference for public and protected method defined in Table and its ancestors, this information obtained by using php reflection.

Most of these methods documented on various other wikis, this is just refeference for completeness and in case you run into accidental overloading of undocumented functions...

Its a long list please help with editing this wiki


If you need these method for IDE autocompletion and validation there is unofficial project that has stubs to documented methods:

Class hierarchy

  • APP_Object
    • APP_DbObject
      • APP_GameClass
        • Table - this is a class all games inherit
        • Deck - db handling component for specific schema (deck)

Methods in the Table class

Table.getGameName
part of template, return game name, not to be modified by developer, not document on wiki
Table._
translation wrapper function, see Translations
Table.setTable
undocumented
Table.initTable
undocumented
Table.getAllTableDatas
undocumented
Table.getAllDatas
part of template, override, see Main game logic: yourgamename.game.php
Table.setupNewGameTable
undocumented
Table.setupNewGame
part of template, override, see Main game logic: yourgamename.game.php
Table.getTableOptionsForGame static
undocumented
Table.getTableOptions
undocumented, likely return gameoptions (i.e. variants of the games)
Table.getTablePreferencesForGame static
undocumented
Table.getTablePreferences
undocumented, likely return UI preferences (i.e. display tooltips or not)
Table.getGameInfosForGame static
undocuments, likely return $gameinfos from gameinfos.inc.php
Table.getGameOptionsInfos
undocumented
Table.start
undocumented, likely starts the game, do not call
Table.loadPlayersBasicInfos
very usefull function get players table, see Main game logic: yourgamename.game.php
Table.reloadPlayersBasicInfos
reload players info, see Main game logic: yourgamename.game.php
Table.reattributeColorsBasedOnPreferences
change players colors, see Main game logic: yourgamename.game.php
Table.getBestColorFromColorPrefs
undocumented, do not call, use to pick a color based on preference
Table.initSetupPlayersInfos
undocumented
Table.getPlayersNumber
returns number of players, see Main game logic: yourgamename.game.php
Table.checkAction
check action on server, see Main game logic: yourgamename.game.php
Table.checkGameStart
Table.color_to_color_back
@deprecated, undocumented
Table.initGameStateLabels
Table.setGameStateInitialValue
Set initial state of global, technically same as setGameStateValue see Main_game_logic:_yourgamename.game.php#Use_globals
Table.getGameStateValue
get value of global see Main_game_logic:_yourgamename.game.php#Use_globals
Table.setGameStateValue
set value of global see Main_game_logic:_yourgamename.game.php#Use_globals
Table.incGameStateValue
increment value of global see Main_game_logic:_yourgamename.game.php#Use_globals
Table.is_testmode
@deprecated
Table.testmodedatas
@deprecated
Table.applyTestModeDbFixture
Table.getActivePlayerId
get active player id, see Main_game_logic:_yourgamename.game.php#Game_states_and_active_players
Table.getActivePlayerName
get active player name, see Main_game_logic:_yourgamename.game.php#Game_states_and_active_players
Table.getCurrentPlayerId
get current player id, see Main_game_logic:_yourgamename.game.php#Game_states_and_active_players
Table.getCurrentPlayerName
get currrent player name, see Main_game_logic:_yourgamename.game.php#Game_states_and_active_players
Table.getCurrentPlayerColor
get current player color, see Main_game_logic:_yourgamename.game.php#Game_states_and_active_players
Table.getPlayerNameById
get the name by id, see Main_game_logic:_yourgamename.game.php#Accessing_player_information
Table.getPlayerColorById
get the color by id, see Main_game_logic:_yourgamename.game.php#Accessing_player_information
Table.getPlayerNoById
get 'player_no' (number) by id, see Main_game_logic:_yourgamename.game.php#Accessing_player_information
Table.isCurrentPlayerZombie
Table.getPlayerCount
@deprecated, use getPlayersNumber,
Table.createNextPlayerTable
Table.getNextPlayerTable
Table.createPrevPlayerTable
Table.getPrevPlayerTable
Table.getPlayerAfter
Table.getPlayerBefore
Table.activeNextPlayer
Table.activePrevPlayer
Table.forceEndOfGame
force to abandon game, normally its called when all players agree, but can be called to force people out when testing alpha or beta games and don't want to deal with update db and such ($this->forceEndOfGame( $reason ))
Table.giveExtraTime
give extra time to a player, usually when turn require multiple player states, see Main_game_logic:_yourgamename.game.php#Reflexion_time
Table.checkZombieTurn
Table.skipPlayersOutOfTime
this is called by framework, do not use
Table.onPlayerHasBeenZombified
Table.forceAbandon
Table.zombieBack
Table.aiPlayer
Table.aiNotPlaying
Table.aiError
Table.say
this function processes chat message, do not use for game purposes, for word games use dedicated control
Table.getGameProgression
part of template, override to return proper data, see Main_game_logic:_yourgamename.game.php and Your_game_state_machine:_states.inc.php
Table.getStatTypesForGame static
Table.getStatTypes
get the $stats_type array defined in stats.inc.php
Table.stat_type_id_to_name
Table.initStat
initialize statistic https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Game_statistics
Table.getStat
get statistic https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Game_statistics
Table.setStat
set statistic https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Game_statistics
Table.setStatForAllPlayers
set player statistics for all players, not document, does not check params, have some bad side effects
Table.incStat
inc statistic https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Game_statistics
Table.getStatFromResult
helper function, do not use, should have been private for table class
Table.setStatOnResult
helper function, do not use, should have been private for table class
Table.setStatOnResultForPlayer
helper function, do not use, should have been private for table class
Table.getStandardGameResultObject
helper function, do not use, should have been private for table class
Table.getGameRankInfos
Table.argGameEnd
framework end game function, do not call or override
Table.stGameEnd
framework end game function, do not call or override
Table.stTutorialStart
Table.isSoloGame
return true if game is 1 player game or all other players are AI
Table.notifyAllPlayers
notification function, see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php
Table.notifyPlayer
notification function, see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php
Table.onEndAjaxAction
can be overriden to be executed before end of ajax action, unclear why would anybody need that
Table.checkReturnState
framework internal check action, do not call or override
Table.sendNotifications
framework internal function, do not call or override
Table.getCurrentNotificationNextNo
Table.getNotificationHistory
Table.debugChat
studio only - execute php code from chat, overriding won't work as it is called statically from table class
Table.timeout
studio only - can call from chat console to zombify current player
Table.eliminatePlayer
eliminate player, https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php
Table.isAsync
return true if game is turn based, false if realtime, undocumented (why?)
Table.getTimeLimits static
internal framework function, do not call or override
Table.getAsyncTimeLimits
return time limits for turn based games
Table.checkAsyncActivePlayersChange
framework internal check action, do not call or override
Table.upgradeTableDb
override to perform db upgrade, see game template, also some notes in https://en.doc.boardgamearena.com/Post-release_phase
Table.getReplayPoints
Table.saveReplayPoint
Table.undoAndReplayInit
Table.removeAutoIncrementFromTable
@deprecated
Table.getFieldsListOfTable
Table.undoInit
Table.undoSavepoint
Instruction to save database state after current transaction is complete Main game logic: yourgamename.game.php
Table.doUndoSavePoint
do not call directly
Table.undoRestorePoint
Restore database from save point
Table.showTutorial
do not call directly
Table.seenTutorial
do not call directly
Table.activeTutorial
do not call directly
Table.forceGameTournamendEnd
do not call directly
Table.showCursor

Methods in the APP_GameClass class

APP_GameClass.getNewUnique
APP_GameClass.getNew
APP_GameClass.notifyNow

Methods in the APP_DbObject class

APP_DbObject.ConnectDb static
APP_DbObject.DbQuery static
main query method, see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database
APP_DbObject.DbTraceTimeBefore static
APP_DbObject.DbTraceTimeAfter static
APP_DbObject.DbGetLastId static
APP_DbObject.DbDumpQueryHistory static
APP_DbObject.DbAffectedRow static
APP_DbObject.DbStartTransaction static
APP_DbObject.DbCommit static
APP_DbObject.DbRollback static
APP_DbObject.DbRestartTransaction static
APP_DbObject.DbSelect static
APP_DbObject.CommitAllAndRestart static
APP_DbObject.setDeadlockMode
APP_DbObject.isDeadlockModeRetry
APP_DbObject.enableMultiQueries
APP_DbObject.sendMultiQueries
APP_DbObject.escapeStringForDB
APP_DbObject.getCollectionFromDB
see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database
APP_DbObject.getNonEmptyCollectionFromDB
APP_DbObject.getDoubleKeyCollectionFromDB
see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database
APP_DbObject.getUniqueValueFromDB
APP_DbObject.mysql_fetch_row
APP_DbObject.mysql_fetch_assoc
APP_DbObject.mysql_query
APP_DbObject.getObjectFromDB
see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database
APP_DbObject.getNonEmptyObjectFromDB
see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database
APP_DbObject.getObjectListFromDB
see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database
APP_DbObject.getSelectedDb static
APP_DbObject.sqlParsing
APP_DbObject.DbUsePrefix
APP_DbObject.applyPrefix
APP_DbObject.cache_store static
APP_DbObject.cache_add static
APP_DbObject.cache_exists static
APP_DbObject.cache_fetch static
APP_DbObject.cache_delete static
APP_DbObject.cache_rollback static
APP_DbObject.cache_commit static
APP_DbObject.ensure_enough_time_since_last_action
APP_DbObject.getMasterNodeDomain
APP_DbObject.getMasterNodeUrl
APP_DbObject.masterNodeRequest
APP_DbObject.gameserverNodeRequest
APP_DbObject.gameserverNodeRequestNoTable
APP_DbObject.bgaCallUrl

Methods in the APP_Object class

APP_Object.watch
@deprecated, do not use (noop)
APP_Object.debug
see https://en.doc.boardgamearena.com/Practical_debugging
APP_Object.trace
see https://en.doc.boardgamearena.com/Practical_debugging
APP_Object.warn
see https://en.doc.boardgamearena.com/Practical_debugging
APP_Object.error
see https://en.doc.boardgamearena.com/Practical_debugging
APP_Object.dump
see https://en.doc.boardgamearena.com/Practical_debugging


Selected static methods in utility modules

bga_rand
recommended for randomless (dice rolls, etc), see Main game logic: yourgamename.game.php#About random and randomness
shuffle_with_keys
shuffle array with keys (basically shuffle keys and keep linked values), it shuffle argument, does not return anything
totranslate
returns its argument, used for MARKING of string for server strings https://en.doc.boardgamearena.com/Translations
clienttranslate
returns its argument, used for MARKING of string for client strings https://en.doc.boardgamearena.com/Translations
_
this is not the same as self::_, it is also translation function but only can translate mainsite strings, do not use in game code