|
@@ -14,6 +14,7 @@ class MSG_TYPE(enum.Enum):
|
|
START = 1
|
|
START = 1
|
|
QUIT = 2
|
|
QUIT = 2
|
|
GIVE_CARD = 3
|
|
GIVE_CARD = 3
|
|
|
|
+ CHANGE_NAME = 4
|
|
|
|
|
|
class GAME_STATE(enum.Enum):
|
|
class GAME_STATE(enum.Enum):
|
|
LOBBY = 0
|
|
LOBBY = 0
|
|
@@ -46,6 +47,8 @@ class Game:
|
|
print('action:', action)
|
|
print('action:', action)
|
|
if action == 'start':
|
|
if action == 'start':
|
|
return MSG_TYPE.START
|
|
return MSG_TYPE.START
|
|
|
|
+ elif action == 'set_name':
|
|
|
|
+ return MSG_TYPE.CHANGE_NAME
|
|
elif action == 'quit':
|
|
elif action == 'quit':
|
|
return MSG_TYPE.QUIT
|
|
return MSG_TYPE.QUIT
|
|
return MSG_TYPE.UNKNOWN
|
|
return MSG_TYPE.UNKNOWN
|
|
@@ -63,19 +66,27 @@ class Game:
|
|
else:
|
|
else:
|
|
self.game()
|
|
self.game()
|
|
|
|
|
|
- def process_lobby_message(self, msg):
|
|
|
|
|
|
+ def process_lobby_message(self, client, msg):
|
|
action = self.get_controll_message_action(msg)
|
|
action = self.get_controll_message_action(msg)
|
|
if action == MSG_TYPE.START:
|
|
if action == MSG_TYPE.START:
|
|
self.game_state = GAME_STATE.PLAY
|
|
self.game_state = GAME_STATE.PLAY
|
|
|
|
+ elif action == MSG_TYPE.CHANGE_NAME:
|
|
|
|
+ self.handle_name_change(client, msg)
|
|
elif action == MSG_TYPE.QUIT:
|
|
elif action == MSG_TYPE.QUIT:
|
|
self.game_state = GAME_STATE.QUIT
|
|
self.game_state = GAME_STATE.QUIT
|
|
#elif action == MSG_TYPE.CHAT:
|
|
#elif action == MSG_TYPE.CHAT:
|
|
#broadcast chat...
|
|
#broadcast chat...
|
|
|
|
|
|
|
|
+ def handle_name_change(self, client, msg):
|
|
|
|
+ res = json.loads(msg)
|
|
|
|
+ name = res.get('name')
|
|
|
|
+ print('renaming', self.players[client].name, 'to', name)
|
|
|
|
+ self.players[client].name = name
|
|
|
|
+
|
|
def lobby(self):
|
|
def lobby(self):
|
|
- for client, msg, op in self.ssock.listen():
|
|
|
|
|
|
+ for client, msg, op in self.ssock.listen(): # TODO: convert to json here
|
|
if op == server_socket.SOCKET_OP.DATA_IN:
|
|
if op == server_socket.SOCKET_OP.DATA_IN:
|
|
- self.process_lobby_message(msg)
|
|
|
|
|
|
+ self.process_lobby_message(client, msg)
|
|
elif op == server_socket.SOCKET_OP.NEW_CONNECTION:
|
|
elif op == server_socket.SOCKET_OP.NEW_CONNECTION:
|
|
self.handle_new_connection(client)
|
|
self.handle_new_connection(client)
|
|
elif op == server_socket.SOCKET_OP.HANGUP:
|
|
elif op == server_socket.SOCKET_OP.HANGUP:
|