def __init__(self): self.deck = Deck() self.destroyedCards = [] self.players = PlayerQueue() #coins dispersed self.treasury = 50 - 2 * self.players.numPlayers() #50 is starting amt #deck shuffled self.deck.shuffle()
def tax(self, player, parts): if self.getCoins(player, parts, 3): self.broadcast_message("{} called TAX, the Duke ability, and will get 3 coins. Other players type \"/challenge\" or \"/pass\" to continue.\n".format(player.name)) def failFunc(handler, passers, player): player.coins += 3 handler.cg.treasury -= 3 handler.broadcast_message("No challengers, {} has gained 3 coins.\n".format(player.name)) handler.broadcast_message(handler.cg.players.advanceTurn()) def successFunc(handler, challengers, player): card = player.checkForCard('Duke') if card != -1: #player exchanges Duke with deck handler.cg.deck.swapCard(player, card) #player gets 3 coins player.coins += 3 handler.cg.treasury -= 3 #challenger loses a card target = challengers[0] handler.destroy(player, target, 0) handler.broadcast_message("Challenge failed! {0} reveals a Duke from his hand, exchanges it with the deck, and still gains 3 coins. {1} loses a card.\n".format(player.name, target.name)) else: #player loses a card handler.broadcast_message("Challenge succeeded! {0} loses a card.\n".format(player.name)) handler.broadcast_message(handler.cg.players.advanceTurn()) #TODO: Challenge vote given Tax voteQueue = PlayerQueue() for voter in self.cg.players.listPlayers(): if not (voter.name == player.name): voteQueue.addPlayer(player) passThreshold = (1 - self.cg.players.numPlayers()) * 100 successArgs = [player] failArgs = [player] challenge = Vote(self, voteQueue, "challenge", 20, passThreshold, successFunc, successArgs, failFunc, failArgs)