Перейти к содержанию

Игрок

Представляет игроков, связанных с текущей игровой сессией.

BaseUser dataclass

Python
BaseUser(id: str, name: str, username: str)

Абстрактное представление пользователя.

Представляет собой хранимую о пользователе информацию. Чтобы отвязать пользователя от конкретной реализации.

id instance-attribute

Python
id: str

name instance-attribute

Python
name: str

username instance-attribute

Python
username: str

Player

Python
Player(
    game: MauGame,
    user_id: str,
    user_name: str,
    user_mention: str,
)

Игрок для сессии Mau.

Каждый игрок привязывается к конкретной игровой сессии. Реализует команды для взаимодействия игрока с текущей сессией.

can_play property

Python
can_play: bool

Имеет ли право хода текущий игрок.

game instance-attribute

Python
game: MauGame = game

hand instance-attribute

Python
hand: list[MauCard] = []

mention property

Python
mention: str

Возвращает упоминание игрока для отправки уведомления.

name property

Python
name: str

Возвращает строковое имя игрока.

user_id instance-attribute

Python
user_id = user_id

__eq__

Python
__eq__(other_player: object) -> bool

Сравнивает двух игроков по UID пользователя.

__ne__

Python
__ne__(other_player: object) -> bool

Проверяет что игроки не совпадают.

__str__

Python
__str__() -> str

Представление игрока в строковом виде.

call_bluff

Python
call_bluff() -> None

Проверка предыдущего игрока на блеф.

По правилам, если прошлый игрок блефовал, то он берёт 4 карты. Если же игрок не блефовал, текущий игрок берёт уже 6 карт.

call_take_cards

Python
call_take_cards() -> None

Действия игрока при взятии карты.

В зависимости от правил, можно взять не одну карту, а сразу несколько. Если включен револьвер, то при взятии нескольких карт будет выбор:

  • Брать карты сейчас.
  • Выстрелить, чтобы взял следующий игрок.

count_cost

Python
count_cost() -> int

Считает полную ценность руки пользователя.

cover_cards

Python
cover_cards() -> SortedCards

Возвращает отсортированный список карт из руки пользователя.

Карты делятся на те, которыми он может покрыть и которыми не может покрыть текущую верхнюю карту.

dispatch

Python
dispatch(event_type: GameEvents, data: Any = None) -> None

Отправляет событие в журнал.

Автоматически подставляет игрока и игру. Также можно напрямую вызвать метод или через класс игры.

is_bluffing

Python
is_bluffing() -> bool

Проверяет блефует ли игрок, когда выкидывает дикую карту.

on_join

Python
on_join() -> None

Берёт начальный набор карт для игры.

on_leave

Python
on_leave() -> None

Действия игрока при выходе из игры.

shot

Python
shot() -> bool

Выстрелить из револьвера.

take_cards

Python
take_cards() -> None

Игрок берёт заданное количество карт согласно счётчику.

twist_hand

Python
twist_hand(other_player: Self) -> None

Меняет местами руки для двух игроков.

SortedCards dataclass

Python
SortedCards(
    cover: list[tuple[int, MauCard]],
    uncover: list[tuple[int, MauCard]],
)

Распределяет карты на: покрывающие и не покрывающие.

cover instance-attribute

Python
cover: list[tuple[int, MauCard]]

uncover instance-attribute

Python
uncover: list[tuple[int, MauCard]]