Пример #1
0
def removeplayer(player, conqueror):
    """Remove a dead player from the game."""
    global currentplayernum, playerorder
    conqueror.cards += player.cards
    if currentplayernum >= playerorder.index(player):
        currentplayernum -= 1
    riskgui.removeplayer(player.name)
    playerorder.remove(player)
    del players[player.name]
    
    if len(players) == 1: #game over
        riskgui.won_game(players.values()[0].name)
        setphase("PostGame")
Пример #2
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
Пример #3
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
Пример #4
0
def removeplayer(player, conqueror):
    """Remove a dead player from the game."""
    global currentplayernum, playerorder
    for card in player.cards:
        risknetwork.add_card(card, conqueror)
        risknetwork.remove_card(card, player)
    conqueror.cards += player.cards
    if currentplayernum >= playerorder.index(player):
        currentplayernum -= 1
    riskgui.removeplayer(player.name)
    risknetwork.removeplayer(player.name)
    playerorder.remove(player)
    del players[player.name]

    if len(players) == 1:  #game over
        riskgui.won_game(players.values()[0].name)
        setphase("PostGame")