Files
COC_API/app/game/models/enemies.py

28 lines
884 B
Python

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"