fix(rules): harvie - Wis 14 per sheet, Talons primary +2 1d4 (2x), Bite secondary +2 with runtime -5

This commit is contained in:
2026-09-16 21:59:29 +02:00
parent feaab5ee41
commit 1c94d48803
2 changed files with 55 additions and 44 deletions
+9 -8
View File
@@ -7,7 +7,7 @@
"dex_score": 15, "dex_score": 15,
"con_score": 12, "con_score": 12,
"int_score": 2, "int_score": 2,
"wis_score": 12, "wis_score": 14,
"cha_score": 6 "cha_score": 6
}, },
"hp_max": 15, "hp_max": 15,
@@ -30,7 +30,7 @@
"id": "harvie:bite", "id": "harvie:bite",
"name": "Bite", "name": "Bite",
"kind": "melee", "kind": "melee",
"attack_bonus": 3, "attack_bonus": 2,
"damage": [ "damage": [
{ {
"formula": "1d4", "formula": "1d4",
@@ -44,16 +44,17 @@
"crit_mult": 2, "crit_mult": 2,
"reach_ft": 5, "reach_ft": 5,
"count": 1, "count": 1,
"natural": true "natural": true,
"secondary": true
}, },
{ {
"id": "harvie:claw", "id": "harvie:talons",
"name": "Claw", "name": "Talons",
"kind": "melee", "kind": "melee",
"attack_bonus": 3, "attack_bonus": 2,
"damage": [ "damage": [
{ {
"formula": "1d3", "formula": "1d4",
"types": [ "types": [
"slashing" "slashing"
] ]
@@ -63,7 +64,7 @@
"crit_range": 20, "crit_range": 20,
"crit_mult": 2, "crit_mult": 2,
"reach_ft": 5, "reach_ft": 5,
"count": 1, "count": 2,
"natural": true "natural": true
} }
], ],
+11 -1
View File
@@ -7,7 +7,7 @@ from pathlib import Path
import pytest import pytest
from pf1e_simulator.dice import DiceExpr from pf1e_simulator.dice import DiceExpr, parse_dice
from pf1e_simulator.loaders.combatant import CombatantLoadError, load_combatant from pf1e_simulator.loaders.combatant import CombatantLoadError, load_combatant
MONSTERS_DIR = Path(__file__).resolve().parents[1] / "data" / "monsters" MONSTERS_DIR = Path(__file__).resolve().parents[1] / "data" / "monsters"
@@ -42,6 +42,16 @@ def test_pc_sheets_golden_spots() -> None:
harvie = load_combatant(PCS_DIR / "harvie.json") harvie = load_combatant(PCS_DIR / "harvie.json")
assert harvie.size == "Small" assert harvie.size == "Small"
assert harvie.speed_fly_ft == 80 assert harvie.speed_fly_ft == 80
# Sheet pins (fiches_personnages/harvie_sheet.json): Wis 14 (Will +2
# implies it), "2x Talons" primary +2 1d4 slashing, Bite secondary -3
# 1d4 piercing (stored as base +2 with the engine's runtime -5).
assert harvie.abilities.wis_score == 14
bite, talons = harvie.attacks
assert (bite.name, bite.attack_bonus, bite.secondary) == ("Bite", 2, True)
assert bite.damage[0].formula == parse_dice("1d4")
assert (talons.name, talons.attack_bonus, talons.count) == ("Talons", 2, 2)
assert talons.damage[0].formula == parse_dice("1d4")
assert talons.damage[0].types == ["slashing"]
oni = load_combatant(PCS_DIR / "oni.json") oni = load_combatant(PCS_DIR / "oni.json")
assert "Pioche" in oni.notes assert "Pioche" in oni.notes