from __future__ import annotations from dataclasses import dataclass, field from typing import Dict, Literal Difficulty = Literal["easy","standard","tough","elite","boss"] @dataclass(frozen=True) class EnemyProfile: # Level selection relative to player level_bias: int = 0 # e.g., +2 spawns slightly above player level level_variance: int = 1 # random wiggle (0..variance) min_level: int = 1 max_level: int = 999 # Global power multipliers (applied after base+per-level growth) hp_mult: float = 1.0 dmg_mult: float = 1.0 armor_mult: float = 1.0 speed_mult: float = 1.0 # Optional stat emphasis for auto-building enemy ability scores stat_weights: Dict[str, float] = field(default_factory=dict) # e.g. {"STR":1.2,"DEX":1.1} # Rewards xp_base: int = 10 xp_per_level: int = 5 loot_tier: str = "common"