예제 #1
0
 def client_build_unit(self, pid, tid, vid, uid, buid):
     # print "client",pid, "built unit", tid, "on", vid
     server = Objects.get_controller()
     p = server.players[pid]
     if buid != -1:
         server.build_unit(tid, p, vid=vid, builder=p.units[buid])
     else:
         server.build_unit(tid, p, vid=vid)
     return {}
예제 #2
0
 def client_build_unit(self,pid,tid,vid,uid,buid):
     # print "client",pid, "built unit", tid, "on", vid
     server = Objects.get_controller()
     p = server.players[pid]
     if buid != -1:
         server.build_unit(tid,p,vid=vid,builder=p.units[buid])
     else:
         server.build_unit(tid,p,vid=vid)
     return {}
예제 #3
0
 def client_attack_unit(self,pid,uid,tpid,tuid,path):
     # print "client_attack_unit",pid,uid,tpid,tuid
     #if tuid=-1, it's a vertex,tpid is actually tvid
     server = Objects.get_controller()
     attacker = server.players[pid].units[uid]
     if tuid == -1:
         target = server.map.vertices[str(tpid)]
     else:
         target = server.players[tpid].units[tuid]
     server.attack_unit(target,attacker)
     return {}
예제 #4
0
 def client_attack_unit(self, pid, uid, tpid, tuid, path):
     # print "client_attack_unit",pid,uid,tpid,tuid
     #if tuid=-1, it's a vertex,tpid is actually tvid
     server = Objects.get_controller()
     attacker = server.players[pid].units[uid]
     if tuid == -1:
         target = server.map.vertices[str(tpid)]
     else:
         target = server.players[tpid].units[tuid]
     server.attack_unit(target, attacker)
     return {}
예제 #5
0
    def on_single_player(self):
        Objects.get_server(self.levelName)
        server = Objects.get_controller()

        utils.play_sound("Enter.wav")
        game = Scene(server.map, server)
        game.add(ImageLayer(
                 os.path.join("images", "backgrounds", "notebook-paper.png")), z=BACKGROUND_Z)


        director.push(game)
        menu_player.stop()
        self.game_started = True
예제 #6
0
    def start_game(self):
        constants.MULTIPLAYER = True
        server = Objects.get_controller()
        server.client_start_game()
        if server.serverStarted:
            utils.play_sound("Enter.wav")
            game = Scene(server.map, server)
            menu_player.stop()
            game.add(ImageLayer(
                     os.path.join("images", "backgrounds", "notebook-paper.png")), z=BACKGROUND_Z)
            director.push(game)
            self.game_started = True

        else:
            print "start server first"
예제 #7
0
 def client_connect(self, ip):
     server = Objects.get_controller()
     cur = server.playerList + [server.pid]
     print "connected client of ip: " + ip
     if ip in server.connectedClientsIP.keys():
         # print "client already exist"
         return {"id": server.connectedClientsIP[ip], "cur": cur,"map":server.mapName}
     if len(server.map.players) != 0 and (not server.gameStarted):
         pid = server.map.players.pop()
         server.client_add_player(pid)
         server.connectedClients[pid] = ip
         server.connectedClientsIP[ip] = pid
         server.playerList.append(pid)
         # print "added player",pid
         return {"id": pid, "cur": cur, "map":server.mapName}
     # print "can't add player"
     return {"id": -1, "cur": [],"map":""}
예제 #8
0
 def client_connect(self, ip):
     server = Objects.get_controller()
     cur = server.playerList + [server.pid]
     print "connected client of ip: " + ip
     if ip in server.connectedClientsIP.keys():
         # print "client already exist"
         return {
             "id": server.connectedClientsIP[ip],
             "cur": cur,
             "map": server.mapName
         }
     if len(server.map.players) != 0 and (not server.gameStarted):
         pid = server.map.players.pop()
         server.client_add_player(pid)
         server.connectedClients[pid] = ip
         server.connectedClientsIP[ip] = pid
         server.playerList.append(pid)
         # print "added player",pid
         return {"id": pid, "cur": cur, "map": server.mapName}
     # print "can't add player"
     return {"id": -1, "cur": [], "map": ""}
예제 #9
0
 def client_remove_unit(self,pid,uid):
     # print "client",pid, "remove unit", uid
     server = Objects.get_controller()
     unit = server.players[pid].units[uid]
     server.remove_unit(unit)
     return {}
예제 #10
0
 def client_move_troop(self,pid,uid,vid,path):
     # print "client",pid, "move unit", uid, "on", vid
     server = Objects.get_controller()
     server.move_unit(server.map.vertices[str(vid)],server.players[pid].units[uid],pid)
     return {}
예제 #11
0
 def client_remove_unit(self, pid, uid):
     # print "client",pid, "remove unit", uid
     server = Objects.get_controller()
     unit = server.players[pid].units[uid]
     server.remove_unit(unit)
     return {}
예제 #12
0
 def client_move_troop(self, pid, uid, vid, path):
     # print "client",pid, "move unit", uid, "on", vid
     server = Objects.get_controller()
     server.move_unit(server.map.vertices[str(vid)],
                      server.players[pid].units[uid], pid)
     return {}