def remove_spectator(self, spec): """Remove spectator from game. :param spec: Spectator -- The spectator to remove. """ index = self.spectators.index(spec) self.spectators.remove(spec) self._update_model_collection('spectators', {'action': 'remove', 'index': index}) Spectator.delete(spec.uid, self._data_store)
def remove_spectator(self, spec): """Remove spectator from game. :param spec: Spectator -- The spectator to remove. """ index = self.spectators.index(spec) self.spectators.remove(spec) self._update_model_collection('spectators', { 'action': 'remove', 'index': index }) Spectator.delete(spec.uid, self._data_store)
def add_spectator(self, user): """Add a spectator to the game. :param user: User -- The spectator's `User` object. :raise: ValueError if `Game` does not allow spectators, or spectator slots have been filled. """ if self.options.spec_mode is Game.SpecMode.NOSPEC: raise ValueError("This game does not allow spectators.") if len(self.spectators) >= self.options.spec_max: raise ValueError("This game has reached the max allowed " "spectators.") self.spectators.append(Spectator(user)) self._update_model_collection('spectators', {'action': 'append'})
def restore(cls, data_store, data_model): kwargs = { 'players': [Player.restore(data_store, x) if x is not DataModel.Null else None for x in data_model.players], 'spectators': [Spectator.restore(data_store, x) for x in data_model.spectators], 'state': data_model.state, 'table': (Table.restore(data_store, data_model.table) if data_model.table is not DataModel.Null else None), 'points': data_model.points, 'options': DotDict(data_model.options) } return super(Game, cls).restore(data_store, data_model, **kwargs)
def restore(cls, data_store, data_model): kwargs = { 'players': [ Player.restore(data_store, x) if x is not DataModel.Null else None for x in data_model.players ], 'spectators': [Spectator.restore(data_store, x) for x in data_model.spectators], 'state': data_model.state, 'table': (Table.restore(data_store, data_model.table) if data_model.table is not DataModel.Null else None), 'points': data_model.points, 'options': DotDict(data_model.options) } return super(Game, cls).restore(data_store, data_model, **kwargs)