fix(rules): harvie - Wis 14 per sheet, Talons primary +2 1d4 (2x), Bite secondary +2 with runtime -5
This commit is contained in:
+44
-43
@@ -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,
|
||||||
@@ -25,48 +25,49 @@
|
|||||||
"ref": 5,
|
"ref": 5,
|
||||||
"will": 2
|
"will": 2
|
||||||
},
|
},
|
||||||
"attacks": [
|
"attacks": [
|
||||||
{
|
{
|
||||||
"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",
|
||||||
"types": [
|
"types": [
|
||||||
"piercing"
|
"piercing"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"damage_bonus": 0,
|
"damage_bonus": 0,
|
||||||
"crit_range": 20,
|
"crit_range": 20,
|
||||||
"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",
|
{
|
||||||
"name": "Claw",
|
"id": "harvie:talons",
|
||||||
"kind": "melee",
|
"name": "Talons",
|
||||||
"attack_bonus": 3,
|
"kind": "melee",
|
||||||
"damage": [
|
"attack_bonus": 2,
|
||||||
{
|
"damage": [
|
||||||
"formula": "1d3",
|
{
|
||||||
"types": [
|
"formula": "1d4",
|
||||||
"slashing"
|
"types": [
|
||||||
]
|
"slashing"
|
||||||
}
|
]
|
||||||
],
|
}
|
||||||
"damage_bonus": 0,
|
],
|
||||||
"crit_range": 20,
|
"damage_bonus": 0,
|
||||||
"crit_mult": 2,
|
"crit_range": 20,
|
||||||
"reach_ft": 5,
|
"crit_mult": 2,
|
||||||
"count": 1,
|
"reach_ft": 5,
|
||||||
"natural": true
|
"count": 2,
|
||||||
}
|
"natural": true
|
||||||
],
|
}
|
||||||
|
],
|
||||||
"source": "fiches_personnages/harvie_sheet.json",
|
"source": "fiches_personnages/harvie_sheet.json",
|
||||||
"features": [
|
"features": [
|
||||||
"Friendly Face",
|
"Friendly Face",
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user