mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 12:09:51 +02:00
feat: shells
This commit is contained in:
1 parent
8921f84c38
commit
d01b7cf707
1 file changed
+45
-3
@@ -1,5 +1,9 @@
|
|||||||
|
import { StandardSinglePrice } from "@protos/blitz_static_standard_single_price";
|
||||||
|
import { PenetrationGroup } from "@protos/blitz_static_tank_penetration_group";
|
||||||
import {
|
import {
|
||||||
PenetrationGroupUpgrade,
|
PenetrationGroupUpgrade,
|
||||||
|
ShellUpgrade,
|
||||||
|
ShellUpgrageSingleChange,
|
||||||
StageParameters,
|
StageParameters,
|
||||||
TankAttributeChange_AttributeName,
|
TankAttributeChange_AttributeName,
|
||||||
TankAttributeChange_Modifier,
|
TankAttributeChange_Modifier,
|
||||||
@@ -91,12 +95,50 @@ function patch(change: StageParameters, base: StageParameters) {
|
|||||||
|
|
||||||
basePenetrationGroup.armor = changedPenetrationGroup.armor;
|
basePenetrationGroup.armor = changedPenetrationGroup.armor;
|
||||||
} else {
|
} else {
|
||||||
basePenetrationGroupUpgrades.penetration_groups.push({
|
basePenetrationGroupUpgrades.penetration_groups.push(
|
||||||
...changedPenetrationGroup,
|
PenetrationGroup.create(changedPenetrationGroup)
|
||||||
});
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (change.modules_upgrades.length > 0) {
|
||||||
|
throw new Error("Modules upgrades not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const changedShellUpgrades of change.shells_upgrades) {
|
||||||
|
let baseShellUpgrades = base.shells_upgrades.find(
|
||||||
|
(baseShell) => baseShell.shell_id === changedShellUpgrades.shell_id
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!baseShellUpgrades) {
|
||||||
|
baseShellUpgrades = ShellUpgrade.create({
|
||||||
|
shell_id: changedShellUpgrades.shell_id,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
baseShellUpgrades.shell_type = changedShellUpgrades.shell_type;
|
||||||
|
|
||||||
|
for (const changedShellUpgrade of changedShellUpgrades.changes) {
|
||||||
|
const baseShellUpgrade = baseShellUpgrades.changes.find(
|
||||||
|
(baseShellUpgrade) =>
|
||||||
|
baseShellUpgrade.attribute_name === changedShellUpgrade.attribute_name
|
||||||
|
);
|
||||||
|
|
||||||
|
if (baseShellUpgrade) {
|
||||||
|
baseShellUpgrade.value = changedShellUpgrade.value;
|
||||||
|
} else {
|
||||||
|
baseShellUpgrades.changes.push(
|
||||||
|
ShellUpgrageSingleChange.create(changedShellUpgrade)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
baseShellUpgrades.silver_price =
|
||||||
|
changedShellUpgrades.silver_price === undefined
|
||||||
|
? undefined
|
||||||
|
: StandardSinglePrice.create(changedShellUpgrades.silver_price);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function aggregateStages(
|
export function aggregateStages(
|
||||||
|
|||||||
Reference in new issue
Block a user