feat(combat): add concealment miss chance, sneak attack, and Precise Shot
This commit is contained in:
@@ -1232,7 +1232,7 @@ def test_observation_enriched_condition_definitions_present() -> None:
|
||||
"""Given: an Observation built over any combat
|
||||
When: the top-level dict is inspected
|
||||
Then: condition_definitions is a sorted tuple of (name, {mods, flags,
|
||||
speed_mult}) covering every entry of CONDITIONS_BY_NAME."""
|
||||
speed_mult, miss_chance}) covering every entry of CONDITIONS_BY_NAME."""
|
||||
hero = make_combatant("hero")
|
||||
foe = make_combatant("foe")
|
||||
hero_state = make_state(hero, "players", (0, 0))
|
||||
@@ -1246,10 +1246,11 @@ def test_observation_enriched_condition_definitions_present() -> None:
|
||||
# Sorted by name for determinism.
|
||||
assert [n for n, _ in defs] == sorted(CONDITIONS_BY_NAME)
|
||||
for _name, body in defs:
|
||||
assert set(body) == {"mods", "flags", "speed_mult"}
|
||||
assert set(body) == {"mods", "flags", "speed_mult", "miss_chance"}
|
||||
assert isinstance(body["mods"], list)
|
||||
assert isinstance(body["flags"], list)
|
||||
assert isinstance(body["speed_mult"], float)
|
||||
assert isinstance(body["miss_chance"], int)
|
||||
|
||||
|
||||
def test_observation_enriched_condition_definitions_shaken() -> None:
|
||||
|
||||
Reference in New Issue
Block a user