for i in range(count): card = cards.get(name) if card is not None: cardObject = createCardObject(g, card) c1.append(cardObject) else: print ("Card %s doesn't exist!" % name) random.shuffle(c1) g.create_player("Player1", c1) c2 = [] for count, name in parse_deckfile(sys.argv[2]): for i in range(count): card = cards.get(name) if card is not None: cardObject = createCardObject(g, card) c2.append(cardObject) else: print ("Card %s doesn't exist!" % name) random.shuffle(c2) g.create_player("Player2", c2) g.process_push(MainGameProcess()) input_generator(g) # process_game(g)
class ABGame: def __init__ (self, id): self.id = id self.players = [] self.current_player = None self.current_state = None self.queue = Queue() self.game = None self.solitaire = False self.current_actions = None def remove(self, player): self.players.remove(player) player.user.players.remove(player) if player.client is not None: player.client.setPlayer(None) g_factory.dispatch("http://manaclash.org/game/" + str(self.id) + "/remove", (player.user.login, player.role)) def add(self, player): self.players.append(player) player.user.players.append(player) if player.client is not None: player.client.setPlayer(player) g_factory.dispatch("http://manaclash.org/game/" + str(self.id) + "/add", (player.user.login, player.role)) def start(self): print "game " + str(self.id) + " starting" output = ABOutput(self) self.game = Game(output) self.game.create() c1 = [] for count, name in self.players[0].deck: for i in range(count): card = g_cards.get(name) if card is not None: cardObject = createCardObject(self.game, card) c1.append(cardObject) else: print ("Card %s doesn't exist!" % name) random.shuffle(c1) self.game.create_player(self.players[0].user.login, c1) c2 = [] for count, name in self.players[1].deck: for i in range(count): card = g_cards.get(name) if card is not None: cardObject = createCardObject(self.game, card) c2.append(cardObject) else: print ("Card %s doesn't exist!" % name) random.shuffle(c2) self.game.create_player(self.players[1].user.login, c2) self.game.process_push(MainGameProcess()) self.current_actions = self.game.next(None) self.current_state = ab_game_state(self.game, self.current_actions) # Get the current ab_player by the role self.current_player = None for ab_player in self.players: if ab_player.role == self.current_state["player"]: self.current_player = ab_player g_factory.dispatch("http://manaclash.org/game/" + str(self.id) + "/state", self.current_state) def end(self): g_factory.dispatch("http://manaclash.org/game/" + str(self.id) + "/state", self.current_state) players = self.players[:] for player in players: self.remove(player) self.game = None self.current_state = None self.current_player = None dispatchUsers() dispatchGames() reactor.callLater(1, startDuels)