Cap max bond experience gains
This commit is contained in:
@@ -961,8 +961,9 @@ function normalizeBondLevel(value: unknown) {
|
||||
return Math.min(100, normalizeNonNegativeInteger(value));
|
||||
}
|
||||
|
||||
function normalizeBondExp(value: unknown) {
|
||||
return Math.min(99, normalizeNonNegativeInteger(value));
|
||||
function normalizeBondExpForLevel(level: number, value: unknown) {
|
||||
const exp = normalizeNonNegativeInteger(value);
|
||||
return Math.min(exp, level >= 100 ? 100 : 99);
|
||||
}
|
||||
|
||||
function normalizeCampaignTimestamp(value: unknown) {
|
||||
@@ -1164,7 +1165,7 @@ function normalizeCampaignBondProgressSnapshot(value: unknown): CampaignBondProg
|
||||
id,
|
||||
title,
|
||||
level,
|
||||
exp: normalizeBondExp(value.exp),
|
||||
exp: normalizeBondExpForLevel(level, value.exp),
|
||||
battleExp: normalizeNonNegativeInteger(value.battleExp)
|
||||
};
|
||||
}
|
||||
@@ -1391,7 +1392,7 @@ function normalizeCampBondSnapshot(value: unknown): CampBondSnapshot | undefined
|
||||
title,
|
||||
unitIds: [unitIds[0], unitIds[1]] as [string, string],
|
||||
level,
|
||||
exp: normalizeBondExp(value.exp),
|
||||
exp: normalizeBondExpForLevel(level, value.exp),
|
||||
battleExp: normalizeNonNegativeInteger(value.battleExp)
|
||||
};
|
||||
}
|
||||
@@ -1466,12 +1467,18 @@ function readLatestSlottedCampaignState() {
|
||||
}
|
||||
|
||||
function advanceBond(bond: CampBondSnapshot, amount: number) {
|
||||
bond.battleExp += amount;
|
||||
bond.exp += amount;
|
||||
while (bond.exp >= 100) {
|
||||
bond.exp -= 100;
|
||||
bond.level = Math.min(100, bond.level + 1);
|
||||
const gained = normalizeNonNegativeInteger(amount);
|
||||
if (gained <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
bond.battleExp += gained;
|
||||
let exp = bond.exp + gained;
|
||||
while (bond.level < 100 && exp >= 100) {
|
||||
exp -= 100;
|
||||
bond.level += 1;
|
||||
}
|
||||
bond.exp = bond.level >= 100 ? Math.min(exp, 100) : exp;
|
||||
}
|
||||
|
||||
function createBattleSettlement(report: FirstBattleReport, reserveTraining: CampaignReserveTrainingSnapshot[] = []): CampaignBattleSettlement {
|
||||
|
||||
Reference in New Issue
Block a user