Source code for yasuki_core.game_pieces.pregame
from dataclasses import dataclass
from pathlib import Path
from yasuki_core.game_pieces.cards import L5RCard
from yasuki_core.paths import DEFAULT_STRONGHOLD, DEFAULT_SENSEI, DEFAULT_WIND
[docs]
@dataclass(frozen=True, slots=True)
class StrongholdCard(L5RCard):
"""A stronghold, placed face-up at setup; ``starting_honor`` is the honor the player begins
the game with and ``starting_hand_size`` is the number of fate cards drawn into the opening
hand."""
starting_honor: int = 0
gold_production: int = 0
province_strength: int = 0
province_count: int = 4
starting_hand_size: int = 5
image_front: Path | None = DEFAULT_STRONGHOLD
[docs]
@dataclass(frozen=True, slots=True)
class SenseiCard(L5RCard):
"""An optional sensei, placed face-up alongside the stronghold at setup. Its ``starting_honor``,
``gold_production``, and ``province_strength`` are deltas folded into the stronghold's
characteristics at setup."""
starting_honor: int = 0
gold_production: int = 0
province_strength: int = 0
image_front: Path | None = DEFAULT_SENSEI
[docs]
@dataclass(frozen=True, slots=True)
class WindCard(L5RCard):
"""An optional wind, a pre-game permanent placed face-up at setup."""
image_front: Path | None = DEFAULT_WIND