Files
fairhopper/hopper/models/config.py
2023-03-30 13:09:23 +02:00

48 lines
941 B
Python

import logging
from dataclasses import dataclass
from typing import List, Optional
from hopper.models.player import Player
@dataclass
class GameSettings:
MOVE_DELAY: float = 0.5 # seconds
@dataclass
class BoardSettings:
WIDTH: int = 21
HEIGHT: int = 21
OBSTACLE_COUNT: int = 10
@dataclass
class InactivityWatchdogSettings:
INACIVITY_TIMEOUT: int = 10 # seconds
KICK_TIMEOUT: int = 60 * 10 # seconds
TICK_INTERVAL: int = 1 # seconds
@dataclass
class WSServerSettings:
HOST: str = "localhost"
PORT: int = 8011
@dataclass
class DebugSettings:
PRINT_BOARD: bool = False
PLAYERS: Optional[List[Player]] = None
@dataclass
class Settings:
game: GameSettings
board: BoardSettings
inacivity_watchdog: InactivityWatchdogSettings
ws_server: WSServerSettings
purchase_timeout: int = 10 # seconds
log_level: int = logging.INFO
debug: Optional[DebugSettings] = None