def client_receive_message(mess, sock): """Run when the client receives a message.""" global clplayer, am_client print >>riskengine.verbosefile, mess, "client received" parts = splitparms(mess) if parts[0] == "draw_army" or parts[0] == "draw_territory": terr = riskengine.territories[parts[1]] terr.armies = int(parts[2]) terr.player = riskengine.players[parts[3]] if parts[0] == "draw_army": riskgui.drawarmy(terr) else: riskgui.drawterritory(terr, int(parts[4])) if parts[0] == "set_armies": riskgui.set_armies(int(parts[1])) if parts[0] == "won_game": riskgui.won_game(parts[1]) if parts[0] == "playersturn": riskgui.playersturn(parts[1]) if parts[0] == "set_status": riskgui.set_status(parts[1]) if parts[0] == "newplayer": riskgui.net_newplayer(parts[1]) if parts[0] == "removeplayer": riskgui.removeplayer(parts[1]) if parts[0] == "relistplayers": riskgui.relistplayers([riskengine.players[p] for p in parts[1:]]) if parts[0] == "set_phase": riskengine.setphase(parts[1]) if parts[0] == "add_card": riskengine.players[parts[3]].cards.append(riskengine.Card(parts[2], parts[1])) if parts[0] == "remove_card": foundcard = 0 for n in riskengine.players[parts[3]].cards: if n.territory == parts[2]: riskengine.players[parts[3]].cards.remove(n) foundcard = 1 break if foundcard == 0: print >>riskengine.verbosefile, "Couldn't find card" print >>riskengine.verbosefile, "players' cards:", riskengine.players[parts[3]].cards # riskengine.players[parts[3]].cards.remove(riskengine.card(parts[2], parts[1])) if parts[0] == "message": riskgui.set_status(parts[2] + " sent message: " + parts[1]) if parts[0] == "leaving": riskgui.show_status_message("The server has left.") serv_sock.close() am_client = 0
def client_receive_message(mess, sock): """Run when the client receives a message.""" global clplayer, am_client print >>riskengine.verbosefile, mess, "client received" parts = splitparms(mess) if parts[0] == "draw_army" or parts[0] == "draw_territory": terr = riskengine.territories[parts[1]] terr.armies = int(parts[2]) terr.player = riskengine.players[parts[3]] if parts[0] == "draw_army": riskgui.drawarmy(terr) else: riskgui.drawterritory(terr, int(parts[4])) if parts[0] == "set_armies": riskgui.set_armies(int(parts[1])) if parts[0] == "won_game": riskgui.won_game(parts[1]) if parts[0] == "playersturn": riskgui.playersturn(parts[1]) if parts[0] == "set_status": riskgui.set_status(parts[1]) if parts[0] == "newplayer": riskgui.net_newplayer(parts[1]) if parts[0] == "removeplayer": riskgui.removeplayer(parts[1]) if parts[0] == "relistplayers": riskgui.relistplayers([riskengine.players[p] for p in parts[1:]]) if parts[0] == "set_phase": riskengine.setphase(parts[1]) if parts[0] == "add_card": riskengine.players[parts[3]].cards.append(riskengine.Card(parts[2], parts[1])) if parts[0] == "remove_card": foundcard = 0 for n in riskengine.players[parts[3]].cards: if n.territory == parts[2]: riskengine.players[parts[3]].cards.remove(n) foundcard = 1 break if foundcard == 0: print >>riskengine.verbosefile, "Couldn't find card" print >>riskengine.verbosefile, "players' cards:", riskengine.players[parts[3]].cards #riskengine.players[parts[3]].cards.remove(riskengine.card(parts[2], parts[1])) if parts[0] == "message": riskgui.set_status(parts[2] + " sent message: " + parts[1]) if parts[0] == "leaving": riskgui.show_status_message("The server has left.") serv_sock.close() am_client = 0
def handle_place(terr, button): """Handle the placing of the armies before a turn.""" if terr.player != currentplayer: return 1 if currentplayer.freeArmies > 0: if button == 3: currentplayer.place_army(terr, min(5, currentplayer.freeArmies)) else: currentplayer.place_army(terr) riskgui.drawarmy(terr) riskgui.set_armies(currentplayer.freeArmies) return 1 else: setphase("Attack") print >>verbosefile, "Attacking" return 0
def handle_place(terr, button): """Handle the placing of the armies before a turn.""" if terr.player != currentplayer: return 1 if currentplayer.freeArmies > 0: if button == 3: currentplayer.place_army(terr, min(5, currentplayer.freeArmies)) else: currentplayer.place_army(terr) riskgui.drawarmy(terr) riskgui.set_armies(currentplayer.freeArmies) return 1 else: if len(currentplayer.cards) >= 5: riskgui.set_status("You must turn in cards to attack") return 1 riskgui.set_status("Moving to Attack") setphase("Attack") print >> verbosefile, "Attacking" return 0
def handle_place(terr, button): """Handle the placing of the armies before a turn.""" if terr.player != currentplayer: return 1 if currentplayer.freeArmies > 0: if button == 3: currentplayer.place_army(terr, min(5, currentplayer.freeArmies)) else: currentplayer.place_army(terr) riskgui.drawarmy(terr) riskgui.set_armies(currentplayer.freeArmies) return 1 else: if len(currentplayer.cards) >= 5: riskgui.set_status("You must turn in cards to attack") return 1 riskgui.set_status("Moving to Attack") setphase("Attack") print >>verbosefile, "Attacking" return 0
def turnincards(player, cards): """Turn in a set of cards.""" global currentcard if risknetwork.turnincards(cards): return if phase != "Place": return for c in cards: if not c in player.cards: return cards.sort(lambda a, b:cmp(a.picture, b.picture)) if not cardset(cards): return for c in cards: if territories[c.territory].player == player: territories[c.territory].armies += 2 riskgui.drawarmy(territories[c.territory]) if currentcard < len(cardvals): player.freeArmies += cardvals[currentcard] else: player.freeArmies += cardvals[-1] + \ incrementval * (currentcard - len(cardvals) + 1) currentcard += 1 for c in cards: allcards.append(c) for ca in player.cards: if c == ca: player.cards.remove(ca) risknetwork.remove_card(ca, currentplayer) riskgui.set_armies(currentplayer.freeArmies)
def turnincards(player, cards): """Turn in a set of cards.""" global currentcard if risknetwork.turnincards(cards): return if phase != "Place": return for c in cards: if not c in player.cards: return cards.sort(lambda a, b: cmp(a.picture, b.picture)) if not cardset(cards): return for c in cards: if territories[c.territory].player == player: territories[c.territory].armies += 2 riskgui.drawarmy(territories[c.territory]) if currentcard < len(cardvals): player.freeArmies += cardvals[currentcard] else: player.freeArmies += cardvals[-1] + \ incrementval * (currentcard - len(cardvals) + 1) currentcard += 1 for c in cards: allcards.append(c) for ca in player.cards: if c == ca: player.cards.remove(ca) risknetwork.remove_card(ca, currentplayer) riskgui.set_armies(currentplayer.freeArmies)