feat: reward enemy intent counterplay

This commit is contained in:
2026-07-10 11:02:29 +09:00
parent 8214240540
commit 26ef353a7f
3 changed files with 364 additions and 41 deletions

View File

@@ -43,11 +43,14 @@ try {
sortieBonusDamage: 4,
sortiePreventedDamage: 3,
sortieBonusHealing: 2,
sortieExtendedBondTriggers: 1
sortieExtendedBondTriggers: 1,
intentDefeats: 1,
intentLineBreaks: 2,
intentGuardSuccesses: 3
}
}
};
assert(isValidBattleSaveState(validSortieStatsState, options), 'Expected sortie contribution stats to pass validation.');
assert(isValidBattleSaveState(validSortieStatsState, options), 'Expected sortie and counterplay contribution stats to pass validation.');
assert(parseBattleSaveState(JSON.stringify(validState), options)?.battleId === options.expectedBattleId, 'Expected valid JSON save to parse.');
assert(parseBattleSaveState('{', options) === undefined, 'Expected malformed JSON to be ignored.');
assert(parseBattleSaveState('', options) === undefined, 'Expected empty save payload to be ignored.');
@@ -137,6 +140,9 @@ try {
['too high stats value', { battleStats: { 'liu-bei': { ...validState.battleStats['liu-bei'], damageDealt: 1000000 } } }],
['invalid sortie stats value', { battleStats: { 'liu-bei': { ...validState.battleStats['liu-bei'], sortieBonusDamage: -1 } } }],
['too high sortie stats value', { battleStats: { 'liu-bei': { ...validState.battleStats['liu-bei'], sortieExtendedBondTriggers: 1000000 } } }],
['invalid counterplay stats value', { battleStats: { 'liu-bei': { ...validState.battleStats['liu-bei'], intentLineBreaks: -1 } } }],
['invalid counterplay stats precision', { battleStats: { 'liu-bei': { ...validState.battleStats['liu-bei'], intentGuardSuccesses: 1.5 } } }],
['too high counterplay stats value', { battleStats: { 'liu-bei': { ...validState.battleStats['liu-bei'], intentDefeats: 1000000 } } }],
['unknown stats unit id', { battleStats: { 'ghost-unit': validState.battleStats['liu-bei'] } }],
['invalid enemy usable keys', { enemyUsableUseKeys: [1] }],
['malformed enemy usable key', { enemyUsableUseKeys: ['rebel-1:shout'] }],