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

Игрок

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

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

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

game instance-attribute

game: MauGame = game

hand instance-attribute

hand: list[MauCard] = []

mention property

mention: str

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

name property

name: str

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

shotgun instance-attribute

shotgun = Shotgun()

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

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

SortedCards dataclass

SortedCards(cover: list[MauCard], uncover: list[MauCard])

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

cover instance-attribute

cover: list[MauCard]

uncover instance-attribute

uncover: list[MauCard]