Classify EBINIT unit power tier

This commit is contained in:
gamer147
2026-07-23 10:25:19 -04:00
parent 3c7b3ac3d9
commit 051f33bd8b
5 changed files with 41 additions and 11 deletions

View File

@@ -342,6 +342,10 @@ def test_field_semantics() -> None:
unit_semantics["0x66716/30/17"] == "unit_voice_asset_ids.unused_slot_17",
"populated but unreachable voice slots remain explicit",
)
check(
unit_semantics["0x7843e"] == "unit_power_tier",
"EBINIT's authoring-only power tier joins by semantic name",
)
extract_init.attach_semantic_fields(units, unit_semantics)
unit_by_id = {record["id"]: record for record in units}
check(
@@ -352,6 +356,13 @@ def test_field_semantics() -> None:
unit_by_id[5]["semantic_fields"]["unit_voice_asset_ids.defeated"] == 11523,
"EBINIT records join voice assets by semantic field name",
)
check(
[
unit_by_id[unit_id]["semantic_fields"]["unit_power_tier"]
for unit_id in (2, 3, 4)
] == [2, 4, 6],
"Lily's three forms preserve the correlated 2/4/6 power tiers",
)
stages, meta = extract_init.extract_mixed(
sys4load.load(extract_init.resolve("STINIT"))