- 26 Dec, 2022 2 commits
-
-
Michael Gebhard authored
-
Michael Gebhard authored
-
- 21 Jun, 2019 7 commits
-
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
bots only get one full update when joining to save bandwidth and computation time in json and gzip.
-
Michael Gebhard authored
redraw snake in colour derived from player.id, not current colour. current colour might be different if snake is invincible. invicible: only reset colour if snake is not invincible anymore, instead of whenever 1 'stack' of invincibility ends.
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
failing validation is the only cause of disconnection before RegisterPlayer. In this case we can not use the generic deregisterPlayer since not all parts of the player are yet allocated.
-
- 28 Feb, 2019 1 commit
-
-
Michael Gebhard authored
can not tunnel through solidwall. must return a collision in this case, otherwise move would attempt an out of bounds movement
-
- 21 Feb, 2019 3 commits
-
-
Michael Gebhard authored
-
Michael Gebhard authored
bots do not lose their state during a dialog
-
Michael Gebhard authored
this was a bug introduced when moving the player.reader onto inputKeys, ProcessInput was disabled during dialogs by other means before
-
- 19 Feb, 2019 7 commits
-
-
Michael Gebhard authored
-
Michael Gebhard authored
player.reader provided io.Reader access to readBytes. A dialog which used the reader, first stopped inputLoop, to stop it from taking player.readers input. Then the dialog would read from the reader. This was racy, because inputloop would read all input after a 'start dialog' key, before the loop was stopped, even though this input was meant for the dialog. the reader now only rivals with ProcessInput, which can be synchronously disabled.
-
Michael Gebhard authored
always select disconnect first
-
Michael Gebhard authored
previously rendertargets could react to disconnects in their disconnect function, which was called asynchronously. however the bot's gzip writer does not support concurrent access, so we moved this functionality into a synchronous deregister function.
-
Michael Gebhard authored
-
Michael Gebhard authored
when newplayer is called, the players renderTarget is still nil. readloop can call disconnect asynchronously, which requires player.renderTarget to be set
-
Michael Gebhard authored
instead of using one data interface{} and determine it's type by a type switch, add one struct member for every possible type, this make parsing on the client side simpler, since unmarshalling does not have to be nested anymore
-
- 15 Feb, 2019 13 commits
-
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
bot plugins are not anymore processed by RegisterPlugin but by RegisterPlayer. RegisterPlayer now calls a synchronous initialisation function on the RenderTarget
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
-
Michael Gebhard authored
-
- 14 Feb, 2019 6 commits
-
-
Michael Gebhard authored
-
Michael Gebhard authored
allows clients to play when the board fits into their terminal but the playerlist does not.
-
Michael Gebhard authored
use UpdatePlayerListEntry and add clear functionality to UpdatePlayerListEntry
-
Michael Gebhard authored
if no position is save, give out any empty position. if no position is empty either, return an error and do not spawn a snake
-
Michael Gebhard authored
-
Michael Gebhard authored
-
- 13 Feb, 2019 1 commit
-
-
Michael Gebhard authored
-