setup player
This commit is contained in:
28
game_flow.py
28
game_flow.py
@@ -85,6 +85,17 @@ class WebSocketHandler(object):
|
||||
|
||||
|
||||
class PlayerWebSocketHandler(WebSocketHandler):
|
||||
@classmethod
|
||||
async def setup_player(
|
||||
cls,
|
||||
name: str
|
||||
) -> 'PlayerWebSocketHandler':
|
||||
"""Create WS handler, login, connect, start listener."""
|
||||
handler = cls(name, name)
|
||||
handler.login()
|
||||
await handler.connect()
|
||||
return handler
|
||||
|
||||
async def on_message(self, msg):
|
||||
if "match_data" not in msg:
|
||||
print(f"[{self.label}] {msg}")
|
||||
@@ -92,7 +103,10 @@ class PlayerWebSocketHandler(WebSocketHandler):
|
||||
|
||||
md = msg["match_data"]
|
||||
op = int(md.get("op_code", 0))
|
||||
payload = json.loads(base64.b64decode(md["data"]).decode())
|
||||
data = md.get("data")
|
||||
if not data:
|
||||
return
|
||||
payload = json.loads(base64.b64decode(data).decode())
|
||||
|
||||
if op == 1:
|
||||
print(f"[{self.label}] MOVE -> {payload}")
|
||||
@@ -275,13 +289,9 @@ TEST_SCENARIOS = [
|
||||
]
|
||||
|
||||
async def main():
|
||||
# Create players
|
||||
p1 = PlayerWebSocketHandler("player_one_123456", "P1")
|
||||
p2 = PlayerWebSocketHandler("player_two_123456", "P2")
|
||||
|
||||
# Connect
|
||||
await p1.connect()
|
||||
await p2.connect()
|
||||
# Initialize players (login + connect + start listener)
|
||||
p1 = await PlayerWebSocketHandler.setup_player("player_one_123456")
|
||||
p2 = await PlayerWebSocketHandler.setup_player("player_two_123456")
|
||||
|
||||
# Start listeners
|
||||
p1.start_listener()
|
||||
@@ -291,6 +301,8 @@ async def main():
|
||||
match_id = await p1.create_match()
|
||||
await p2.join_match(match_id)
|
||||
|
||||
print(f"\n✅ Match ready: {match_id}\n")
|
||||
|
||||
await asyncio.sleep(1)
|
||||
|
||||
for test_scenario in TEST_SCENARIOS:
|
||||
|
||||
Reference in New Issue
Block a user