def observe_started(self, data): Executive.server.gclear() if self.last_game: self.last_game.kill(ForcedKill) self.last_game.get() self.last_game = None tgtid, pldata = data from client.core import PeerPlayer, PlayerList, TheLittleBrother pl = [PeerPlayer.parse(i) for i in pldata] pid = [i.account.userid for i in pl] i = pid.index(tgtid) g = self.game g.players = PlayerList(pl) g.me = g.players[i] g.me.__class__ = TheLittleBrother #g.start() log.info('=======OBSERVE STARTED=======') log.info(g) @g.link_exception def crash(*a): self.event_cb('game_crashed', g) @g.link_value def finish(*a): v = g.get() if not isinstance(v, ForcedKill): self.event_cb('client_game_finished', g) self.event_cb('game_started', g)
def game_started(self, pldata): Executive.server.gclear() if self.last_game: self.last_game.kill(ForcedKill) self.last_game.get() self.last_game = None from client.core import PeerPlayer, TheChosenOne, PlayerList pl = [PeerPlayer.parse(i) for i in pldata] pid = [i.account.userid for i in pl] me = TheChosenOne() i = pid.index(me.account.userid) pl[i] = me g = self.game g.me = me g.players = PlayerList(pl) #g.start() log.info('=======GAME STARTED: %d=======' % g.gameid) log.info(g) @g.link_exception def crash(*a): self.event_cb('game_crashed', g) @g.link_value def finish(*a): v = g.get() if not isinstance(v, ForcedKill): self.event_cb('client_game_finished', g) self.event_cb('game_started', g)
def start_replay(self, rep, event_cb): assert self.state == 'initial' self.state = 'replay' from client.core import PeerPlayer, TheLittleBrother from thb import modes g = modes[rep.game_mode]() self.server = ReplayEndpoint(rep, g) pl = [PeerPlayer.parse(i) for i in rep.users] g.players = BatchList(pl) me = g.players[rep.me_index] me.__class__ = TheLittleBrother me.server = self.server g.me = me g.game_params = rep.game_params g.game_items = rep.game_items log.info('=======REPLAY STARTED=======') # g.start() Starts by UI @g.link_exception def crash(*a): self.state = 'initial' event_cb('game_crashed', g) @g.link_value def finish(*a): self.state = 'initial' v = g.get() if not isinstance(v, ForcedKill): event_cb('client_game_finished', g) event_cb('end_game', g) return g
def game_started(self, data): params, items, pldata = data Executive.server.gclear() if self.last_game: self.last_game.kill(ForcedKill) self.last_game.get() self.last_game = None from client.core import PeerPlayer, TheChosenOne pl = [PeerPlayer.parse(i) for i in pldata] pid = [i.account.userid for i in pl] me = TheChosenOne(Executive.server) me.account = self.account i = pid.index(me.account.userid) pl[i] = me g = self.game g.me = me g.game_params = params g.game_items = items g.players = BatchList(pl) # g.start() Starts by UI log.info('=======GAME STARTED: %d=======' % g.gameid) log.info(g) self.last_game_info = params, items, i, pldata @g.link_exception def crash(*a): self.event_cb('game_crashed', g) @g.link_value def finish(*a): v = g.get() if not isinstance(v, ForcedKill): self.event_cb('client_game_finished', g) self.event_cb('game_started', (g, params, items, pldata, g.players[:]))
def observe_started(self, data): Executive.server.gclear() if self.last_game: self.last_game.kill(ForcedKill) self.last_game.get() self.last_game = None params, items, tgtid, pldata = data from client.core import PeerPlayer, TheLittleBrother pl = [PeerPlayer.parse(i) for i in pldata] pid = [i.account.userid for i in pl] i = pid.index(tgtid) self.last_game_info = params, items, i, pldata g = self.game g.players = BatchList(pl) me = g.players[i] me.__class__ = TheLittleBrother me.server = Executive.server g.me = me g.game_params = params g.game_items = items # g.start() Starts by UI log.info('=======OBSERVE STARTED=======') log.info(g) @g.link_exception def crash(*a): self.event_cb('game_crashed', g) @g.link_value def finish(*a): v = g.get() if not isinstance(v, ForcedKill): self.event_cb('client_game_finished', g) self.event_cb('game_started', (g, params, items, pldata, g.players[:]))