feat(combat): expose weapon reference in observation snapshot

This commit is contained in:
2026-09-06 13:46:12 +02:00
parent cd8051f2c4
commit f3d874790a
4 changed files with 284 additions and 2 deletions
+24
View File
@@ -86,6 +86,7 @@ from pathlib import Path
from typing import TYPE_CHECKING
from pf1e_simulator.conditions import CONDITIONS_BY_NAME, Condition
from pf1e_simulator.dice import dice_to_str
from pf1e_simulator.effects import ActiveBuff, ActiveCondition, StatModifier, resolve_modifiers
from pf1e_simulator.loaders.combatant import CombatantLoadError, load_combatant
from pf1e_simulator.models import PREDEFINED_SKILLS
@@ -613,6 +614,29 @@ class CombatEngine:
},
"cmb": self._maneuver_cmb(state),
"cmd": self._maneuver_cmd(state),
"attacks": tuple(
{
"id": attack.id,
"name": attack.name,
"kind": attack.kind,
"attack_bonus": attack.attack_bonus,
"damage": tuple(
{
"formula": dice_to_str(component.formula),
"types": tuple(component.types),
}
for component in attack.damage
),
"damage_bonus": attack.damage_bonus,
"crit_range": attack.crit_range,
"crit_mult": attack.crit_mult,
"reach_ft": attack.reach_ft,
"range_increment_ft": attack.range_increment_ft,
"count": attack.count,
"firearm": attack.firearm,
}
for attack in state.combatant.attacks
),
}
def _pair_snapshot(