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):
|
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):
|
async def on_message(self, msg):
|
||||||
if "match_data" not in msg:
|
if "match_data" not in msg:
|
||||||
print(f"[{self.label}] {msg}")
|
print(f"[{self.label}] {msg}")
|
||||||
@@ -92,7 +103,10 @@ class PlayerWebSocketHandler(WebSocketHandler):
|
|||||||
|
|
||||||
md = msg["match_data"]
|
md = msg["match_data"]
|
||||||
op = int(md.get("op_code", 0))
|
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:
|
if op == 1:
|
||||||
print(f"[{self.label}] MOVE -> {payload}")
|
print(f"[{self.label}] MOVE -> {payload}")
|
||||||
@@ -275,13 +289,9 @@ TEST_SCENARIOS = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
# Create players
|
# Initialize players (login + connect + start listener)
|
||||||
p1 = PlayerWebSocketHandler("player_one_123456", "P1")
|
p1 = await PlayerWebSocketHandler.setup_player("player_one_123456")
|
||||||
p2 = PlayerWebSocketHandler("player_two_123456", "P2")
|
p2 = await PlayerWebSocketHandler.setup_player("player_two_123456")
|
||||||
|
|
||||||
# Connect
|
|
||||||
await p1.connect()
|
|
||||||
await p2.connect()
|
|
||||||
|
|
||||||
# Start listeners
|
# Start listeners
|
||||||
p1.start_listener()
|
p1.start_listener()
|
||||||
@@ -291,6 +301,8 @@ async def main():
|
|||||||
match_id = await p1.create_match()
|
match_id = await p1.create_match()
|
||||||
await p2.join_match(match_id)
|
await p2.join_match(match_id)
|
||||||
|
|
||||||
|
print(f"\n✅ Match ready: {match_id}\n")
|
||||||
|
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
|
|
||||||
for test_scenario in TEST_SCENARIOS:
|
for test_scenario in TEST_SCENARIOS:
|
||||||
|
|||||||
Reference in New Issue
Block a user