def __init__(self): super(GameServer, self).__init__() self.tcp_server = None self.sequence = 0 self.players = [] self.teams = [ { 'w':0, "p":[] }, { 'w':0, "p":[] }, { 'w':0, "p":[] }, { 'w':0, "p":[] } ] self.loop = loop self.tcp_server = TcpServer("0.0.0.0", 18888) self.tcp_server.on('connect', self.on_connect)
class GameServer(object): """docstring for GameServer""" def __init__(self): super(GameServer, self).__init__() self.tcp_server = None self.sequence = 0 self.players = [] self.teams = [ { 'w':0, "p":[] }, { 'w':0, "p":[] }, { 'w':0, "p":[] }, { 'w':0, "p":[] } ] self.loop = loop self.tcp_server = TcpServer("0.0.0.0", 18888) self.tcp_server.on('connect', self.on_connect) def run(self): self.loop.run() def on_connect(self, connection): GameClient(self, connection) def getStats(self): r = [] for t in self.teams: r.append(t['w']) return r def register(self, client): for i in self.teams: if len(i['p']) == 0: self.sequence += 1 self.players.append(client) i['p'].append(client) client.number = self.sequence client.teamid = self.teams.index(i) break # ok? please? def unregister(self, client): self.teams[client.teamid]['p'].remove(client) self.players.remove(client) for p in self.players: p.removeOpponent(client) def getLevel(self, client): f = open(path.join(config.LEVELS_DIR, '0001.l')) return f.read() # we'd like to know about other def updatePosClient(self, client): for c in self.players: if client.number == c.number: continue client.updateOpponent(c) # other would like to know about us def updateClientPos(self, client): for c in self.players: if client.number == c.number: continue c.updateOpponent(client) def updateFire(self, client): for c in self.players: if client.number == c.number: continue c.updateOpponentFire(client) def updateHit(self, who, by): self.teams[by]['w'] += 1 for c in self.players: c.anyHit(who, by)