Files
fairhopper/hopper/models/config.py
2023-05-11 15:08:24 +02:00

51 lines
1.0 KiB
Python

import logging
from dataclasses import dataclass
from typing import List, Optional
from hopper.models.player import Player
from hopper.models.product import Product
@dataclass
class GameSettings:
MOVE_DELAY: float = 0.5 # seconds
PURCHASE_START_DELAY: float = 2 # 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 = "127.0.0.1"
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
products: List[Product] = None
debug: Optional[DebugSettings] = None