From 3d48ef3c8078aa11fc28815af2e85ca6a711d415 Mon Sep 17 00:00:00 2001 From: Wickedness Date: Sun, 5 Jul 2026 14:47:24 +0900 Subject: [PATCH] Restrict battle item stocks to allies --- scripts/verify-battle-save-normalization.mjs | 1 + src/game/state/battleSaveState.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/scripts/verify-battle-save-normalization.mjs b/scripts/verify-battle-save-normalization.mjs index 8af8b6d..5e713c4 100644 --- a/scripts/verify-battle-save-normalization.mjs +++ b/scripts/verify-battle-save-normalization.mjs @@ -101,6 +101,7 @@ try { ['invalid item stock count', { itemStocks: { 'liu-bei': { bean: -1 } } }], ['too many item stock count', { itemStocks: { 'liu-bei': { bean: 4, wine: 2 } } }], ['unknown item stock unit id', { itemStocks: { 'ghost-unit': { bean: 1 } } }], + ['enemy item stock unit id', { itemStocks: { 'rebel-1': { bean: 1 } } }], ['unknown item stock item id', { itemStocks: { 'liu-bei': { phantomItem: 1 } } }], ['invalid buff turns', { battleBuffs: [{ ...validState.battleBuffs[0], turns: 0 }] }], ['too many buff turns', { battleBuffs: [{ ...validState.battleBuffs[0], turns: 10 }] }], diff --git a/src/game/state/battleSaveState.ts b/src/game/state/battleSaveState.ts index 1acf2b8..c16440c 100644 --- a/src/game/state/battleSaveState.ts +++ b/src/game/state/battleSaveState.ts @@ -430,6 +430,7 @@ function isOptionalItemStockRecord(value: unknown, options: BattleSaveValidation return Object.entries(value).every( ([unitId, stocks]) => isKnownUnitId(unitId, options) && + (!options.validAllyUnitIds || options.validAllyUnitIds.has(unitId)) && isRecord(stocks) && Object.keys(stocks).length <= itemReferenceLimit(options) && Object.entries(stocks).every(