Coverage for client/parts/room.py : 100%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# -*- coding: utf-8 -*-
2from __future__ import annotations
4# -- stdlib --
5from typing import TYPE_CHECKING, Any
6import logging
8# -- third party --
9# -- own --
10from utils.events import EventHub
11import wire
13# -- typing --
14if TYPE_CHECKING:
15 from client.core import Core # noqa: F401
18# -- code --
19log = logging.getLogger('client.parts.Room')
20STOP = EventHub.STOP_PROPAGATION
23class Room(object):
24 def __init__(self, core: Core):
25 self.core = core
27 # ---- Reactions -----
29 # ----- Public Method -----
30 def create(self, name: str, mode: str, flags: wire.CreateRoomFlags) -> None:
31 core = self.core
32 core.server.write(wire.CreateRoom(name=name, mode=mode, flags=flags))
34 def join(self, gid: int, slot: int = None) -> None:
35 core = self.core
36 core.server.write(wire.JoinRoom(gid=gid, slot=slot))
38 def leave(self):
39 core = self.core
40 core.server.write(wire.LeaveRoom())
42 def get_ready(self):
43 core = self.core
44 core.server.write(wire.GetReady())
46 def cancel_ready(self):
47 core = self.core
48 core.server.write(wire.CancelReady())
50 def change_location(self, loc: int):
51 core = self.core
52 core.server.write(wire.ChangeLocation(loc=loc))
54 def get_room_users(self, gid: int):
55 core = self.core
56 core.server.write(wire.GetRoomUsers(gid=gid))
58 def set_game_param(self, gid: int, key: str, value: Any):
59 core = self.core
60 core.server.write(wire.SetGameParam(gid=gid, key=key, value=value))
62 def use_item(self, sku: str):
63 core = self.core
64 core.server.write(wire.UseItem(sku=sku))
66 def invite(self, uid: int):
67 core = self.core
68 core.server.write(wire.Invite(uid=uid))
70 def kick(self, uid: int):
71 core = self.core
72 core.server.write(wire.Kick(uid=uid))