From: Christian Heller Date: Thu, 3 Dec 2020 00:47:13 +0000 (+0100) Subject: Only send out new gamestate every 1/25 second. X-Git-Url: https://plomlompom.com/repos/%22https:/validator.w3.org/blog?a=commitdiff_plain;h=0329d62bfc40ef8d54d9df8f5d9119515a871cf6;p=plomrogue2 Only send out new gamestate every 1/25 second. --- diff --git a/plomrogue/game.py b/plomrogue/game.py index dd9c50a..3c927db 100755 --- a/plomrogue/game.py +++ b/plomrogue/game.py @@ -3,6 +3,7 @@ from plomrogue.io import GameIO from plomrogue.misc import quote from plomrogue.mapping import YX, MapGeometrySquare, MapGeometryHex, Map import string +import datetime @@ -129,6 +130,9 @@ class Game(GameBase): self.player_chars = string.digits + string.ascii_letters self.player_char_i = -1 self.admin_passwords = [] + self.send_gamestate_interval = datetime.timedelta(seconds=0.04) + self.last_send_gamestate = datetime.datetime.now() -\ + self.send_gamestate_interval self.terrains = { '.': 'floor', 'X': 'wall', @@ -261,9 +265,12 @@ class Game(GameBase): self.io.send('PLAY_ERROR ' + quote(str(e)), connection_id) if self.changed: self.turn += 1 - self.send_gamestate() - self.changed = False - self.save() + if self.last_send_gamestate < \ + datetime.datetime.now() -self.send_gamestate_interval: + self.send_gamestate() + self.changed = False + self.save() + self.last_send_gamestate = datetime.datetime.now() def get_command(self, command_name):