Module server
[hide private]
[frames] | no frames]

Source Code for Module server

 1  from twisted.protocols.amp import AMP 
 2  from twisted.internet.protocol import Factory 
 3   
 4  from commands import * 
 5  from objects import Objects 
6 7 8 -class ClientNote(AMP): # notes sent from client to server, server responses
9 - def __init__(self):
10 super(ClientNote, self).__init__(self)
11 12 @Connect.responder
13 - def client_connect(self, ip):
14 server = Objects.get_controller() 15 cur = server.playerList + [server.pid] 16 print "connected client of ip: " + ip 17 if ip in server.connectedClientsIP.keys(): 18 # print "client already exist" 19 return {"id": server.connectedClientsIP[ip], "cur": cur,"map":server.mapName} 20 if len(server.map.players) != 0 and (not server.gameStarted): 21 pid = server.map.players.pop() 22 server.client_add_player(pid) 23 server.connectedClients[pid] = ip 24 server.connectedClientsIP[ip] = pid 25 server.playerList.append(pid) 26 # print "added player",pid 27 return {"id": pid, "cur": cur, "map":server.mapName} 28 # print "can't add player" 29 return {"id": -1, "cur": [],"map":""}
30 31 @BuildUnit.responder
32 - def client_build_unit(self,pid,tid,vid,uid,buid):
33 # print "client",pid, "built unit", tid, "on", vid 34 server = Objects.get_controller() 35 p = server.players[pid] 36 if buid != -1: 37 server.build_unit(tid,p,vid=vid,builder=p.units[buid]) 38 else: 39 server.build_unit(tid,p,vid=vid) 40 return {}
41 42 @MoveTroop.responder
43 - def client_move_troop(self,pid,uid,vid,path):
44 # print "client",pid, "move unit", uid, "on", vid 45 server = Objects.get_controller() 46 server.move_unit(server.map.vertices[str(vid)],server.players[pid].units[uid],pid) 47 return {}
48 49 @RemoveUnit.responder
50 - def client_remove_unit(self,pid,uid):
51 # print "client",pid, "remove unit", uid 52 server = Objects.get_controller() 53 unit = server.players[pid].units[uid] 54 server.remove_unit(unit) 55 return {}
56 57 @AttackAnimation.responder
58 - def client_attack_unit(self,pid,uid,tpid,tuid,path):
59 # print "client_attack_unit",pid,uid,tpid,tuid 60 #if tuid=-1, it's a vertex,tpid is actually tvid 61 server = Objects.get_controller() 62 attacker = server.players[pid].units[uid] 63 if tuid == -1: 64 target = server.map.vertices[str(tpid)] 65 else: 66 target = server.players[tpid].units[tuid] 67 server.attack_unit(target,attacker) 68 return {}
69
70 -class ClientNoteFactory(Factory):
71 protocol = ClientNote
72 73 74 75 76 # send: 77 # user attack 78 # user research 79 # user move 80 # user construction 81 # user unit special ability 82 # join request 83 84 # receive, do and send 85 # location update in move 86 # end of move 87 # attack progress 88 # destruction of unit 89 # construction progress 90 # construction completion 91 # research progress 92 # research completion 93