Игрок
Представляет игроков, связанных с текущей игровой сессией.
BaseUser
dataclass
BaseUser(id: str, name: str, username: str)
Абстрактное представление пользователя.
Представляет собой хранимую о пользователе информацию. Чтобы отвязать пользователя от конкретной реализации.
id
instance-attribute
id: str
name
instance-attribute
name: str
username
instance-attribute
username: str
Player
Player(game: MauGame, user_id: str, user_name: str, user_mention: str)
Игрок для сессии Mau.
Каждый игрок привязывается к конкретной игровой сессии. Реализует команды для взаимодействия игрока с текущей сессией.
can_play
property
can_play: bool
Имеет ли право хода текущий игрок.
mention
property
mention: str
Возвращает упоминание игрока для отправки уведомления.
name
property
name: str
Возвращает строковое имя игрока.
user_id
instance-attribute
user_id = user_id
__eq__
__eq__(other_player: object) -> bool
Сравнивает двух игроков по UID пользователя.
__ne__
__ne__(other_player: object) -> bool
Проверяет что игроки не совпадают.
__str__
__str__() -> str
Представление игрока в строковом виде.
call_bluff
call_bluff() -> None
Проверка предыдущего игрока на блеф.
По правилам, если прошлый игрок блефовал, то он берёт 4 карты. Если же игрок не блефовал, текущий игрок берёт уже 6 карт.
call_take_cards
call_take_cards() -> None
Действия игрока при взятии карты.
В зависимости от правил, можно взять не одну карту, а сразу несколько. Если включен револьвер, то при взятии нескольких карт будет выбор:
- Брать карты сейчас.
- Выстрелить, чтобы взял следующий игрок.
count_cost
count_cost() -> int
Считает полную ценность руки пользователя.
cover_cards
cover_cards() -> SortedCards
Возвращает отсортированный список карт из руки пользователя.
Карты делятся на те, которыми он может покрыть и которыми не может покрыть текущую верхнюю карту.
is_bluffing
is_bluffing() -> bool
Проверяет блефует ли игрок, когда выкидывает дикую карту.
on_join
on_join() -> None
Берёт начальный набор карт для игры.
on_leave
on_leave() -> None
Действия игрока при выходе из игры.
push_event
push_event(event_type: GameEvents, data: str = '') -> None
Отправляет событие в журнал.
Автоматически подставляет игрока и игру.
shot
shot() -> bool
Выстрелить из револьвера.
take_cards
take_cards() -> None
Игрок берёт заданное количество карт согласно счётчику.
twist_hand
twist_hand(other_player: Self) -> None
Меняет местами руки для двух игроков.