Clamp battle save unit stats
This commit is contained in:
@@ -91,6 +91,7 @@ const maxBattleEffectLabelLength = 32;
|
||||
const maxBattleEffectTurns = 9;
|
||||
const maxBattleBuffBonus = 99;
|
||||
const maxBattleStatusPower = 99;
|
||||
const maxBattleUnitStatValue = 999999;
|
||||
const maxStatusKindsPerUnit = 2;
|
||||
const maxBattleItemStockById: Record<string, number> = {
|
||||
bean: 3,
|
||||
@@ -398,6 +399,10 @@ function isValidEffectLabel(value: unknown) {
|
||||
return typeof value === 'string' && value.length > 0 && value.length <= maxBattleEffectLabelLength;
|
||||
}
|
||||
|
||||
function isBattleUnitStatValue(value: unknown) {
|
||||
return isIntegerInRange(value, 0, maxBattleUnitStatValue);
|
||||
}
|
||||
|
||||
function isOptionalBuffArray(value: unknown, options: BattleSaveValidationOptions) {
|
||||
return (
|
||||
value === undefined ||
|
||||
@@ -454,11 +459,11 @@ function isOptionalStatsRecord(value: unknown, options: BattleSaveValidationOpti
|
||||
([unitId, stats]) =>
|
||||
isKnownUnitId(unitId, options) &&
|
||||
isRecord(stats) &&
|
||||
isNonNegativeFiniteNumber(stats.damageDealt) &&
|
||||
isNonNegativeFiniteNumber(stats.damageTaken) &&
|
||||
isNonNegativeFiniteNumber(stats.defeats) &&
|
||||
isNonNegativeFiniteNumber(stats.actions) &&
|
||||
isNonNegativeFiniteNumber(stats.support)
|
||||
isBattleUnitStatValue(stats.damageDealt) &&
|
||||
isBattleUnitStatValue(stats.damageTaken) &&
|
||||
isBattleUnitStatValue(stats.defeats) &&
|
||||
isBattleUnitStatValue(stats.actions) &&
|
||||
isBattleUnitStatValue(stats.support)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user