c88d8fd6f4
Rename monster.py → combatant.py with _KNOWN_FEATS lookup table that resolves feat name strings to AbilitySpec constants (Power Attack, Iron Will, Toughness, Weapon Focus, etc.). Unknown feats produce minimal AbilitySpec (data preserved for future implementation). Migrate all 8 PC JSONs (data/pcs/) with complete feat/spell lists extracted from Foundry sheets — including traits, racial abilities, and all spells. Monsters (goblin, orc) unchanged (no feats/spells). Update all imports, add backward-compatible aliases (load_monster, MonsterLoadError), update CLI to use load_combatant. Gate: 377 tests, ruff clean, basedpyright clean.
29 lines
582 B
Python
29 lines
582 B
Python
"""Sheet and combatant loaders — the parsing boundary of the simulator."""
|
|
|
|
from pf1e_simulator.loaders.combatant import (
|
|
CombatantLoadError,
|
|
load_combatant,
|
|
load_monster,
|
|
)
|
|
from pf1e_simulator.loaders.foundry import (
|
|
LoadReport,
|
|
SheetLoadError,
|
|
SkippedEntry,
|
|
load_sheet,
|
|
load_sheet_detailed,
|
|
)
|
|
|
|
__all__ = [
|
|
"CombatantLoadError",
|
|
"LoadReport",
|
|
"MonsterLoadError",
|
|
"SheetLoadError",
|
|
"SkippedEntry",
|
|
"load_combatant",
|
|
"load_monster",
|
|
"load_sheet",
|
|
"load_sheet_detailed",
|
|
]
|
|
|
|
MonsterLoadError = CombatantLoadError
|