mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
feat: more patchnotes
This commit is contained in:
1 parent
9dcf7441c9
commit
cd8083ae30
1 file changed
+120
@@ -1,14 +1,21 @@
|
|||||||
import {
|
import {
|
||||||
availableProvisions,
|
availableProvisions,
|
||||||
|
createDefaultProvisions,
|
||||||
|
createDefaultSkills,
|
||||||
fetchConsumableDefinitions,
|
fetchConsumableDefinitions,
|
||||||
fetchEquipmentDefinitions,
|
fetchEquipmentDefinitions,
|
||||||
|
fetchModelDefinitions,
|
||||||
fetchProvisionDefinitions,
|
fetchProvisionDefinitions,
|
||||||
|
fetchSkillDefinitions,
|
||||||
fetchTankDefinitions,
|
fetchTankDefinitions,
|
||||||
TankDefinition,
|
TankDefinition,
|
||||||
} from "@blitzkit/core";
|
} from "@blitzkit/core";
|
||||||
import { checkConsumableProvisionInclusivity } from "@blitzkit/core/src/blitzkit/checkConsumableProvisionInclusivity";
|
import { checkConsumableProvisionInclusivity } from "@blitzkit/core/src/blitzkit/checkConsumableProvisionInclusivity";
|
||||||
|
import strings from "@blitzkit/i18n/strings/en.json";
|
||||||
import { writeFile } from "fs/promises";
|
import { writeFile } from "fs/promises";
|
||||||
import { isEqual } from "lodash-es";
|
import { isEqual } from "lodash-es";
|
||||||
|
import { tankCharacteristics } from "../../website/src/core/blitzkit/tankCharacteristics";
|
||||||
|
import { genericDefaultEquipmentMatrix } from "../../website/src/stores/duel/constants";
|
||||||
|
|
||||||
const domain = "https://opentest.blitzkit.app";
|
const domain = "https://opentest.blitzkit.app";
|
||||||
|
|
||||||
@@ -17,12 +24,16 @@ const currentTankDefinitions = await fetchTankDefinitions();
|
|||||||
const currentConsumableDefinitions = await fetchConsumableDefinitions();
|
const currentConsumableDefinitions = await fetchConsumableDefinitions();
|
||||||
const currentProvisionDefinitions = await fetchProvisionDefinitions();
|
const currentProvisionDefinitions = await fetchProvisionDefinitions();
|
||||||
const currentEquipmentDefinitions = await fetchEquipmentDefinitions();
|
const currentEquipmentDefinitions = await fetchEquipmentDefinitions();
|
||||||
|
const currentSkillDefinitions = await fetchSkillDefinitions();
|
||||||
|
const currentModelDefinitions = await fetchModelDefinitions();
|
||||||
|
|
||||||
import.meta.env.PUBLIC_ASSET_BASE = "https://blitzkit.github.io/assets-preview";
|
import.meta.env.PUBLIC_ASSET_BASE = "https://blitzkit.github.io/assets-preview";
|
||||||
const previewTankDefinitions = await fetchTankDefinitions();
|
const previewTankDefinitions = await fetchTankDefinitions();
|
||||||
const previewConsumableDefinitions = await fetchConsumableDefinitions();
|
const previewConsumableDefinitions = await fetchConsumableDefinitions();
|
||||||
const previewProvisionDefinitions = await fetchProvisionDefinitions();
|
const previewProvisionDefinitions = await fetchProvisionDefinitions();
|
||||||
const previewEquipmentDefinitions = await fetchEquipmentDefinitions();
|
const previewEquipmentDefinitions = await fetchEquipmentDefinitions();
|
||||||
|
const previewSkillDefinitions = await fetchSkillDefinitions();
|
||||||
|
const previewModelDefinitions = await fetchModelDefinitions();
|
||||||
|
|
||||||
let notes = "# BlitzKit OpenTest Patch Notes\n\n";
|
let notes = "# BlitzKit OpenTest Patch Notes\n\n";
|
||||||
|
|
||||||
@@ -71,6 +82,14 @@ if (changedTanks.length > 0) {
|
|||||||
const previewTurret = preview.turrets.at(-1)!;
|
const previewTurret = preview.turrets.at(-1)!;
|
||||||
const currentGun = currentTurret.guns.at(-1)!;
|
const currentGun = currentTurret.guns.at(-1)!;
|
||||||
const previewGun = previewTurret.guns.at(-1)!;
|
const previewGun = previewTurret.guns.at(-1)!;
|
||||||
|
const currentShell = currentGun.shells[0];
|
||||||
|
const previewShell = previewGun.shells[0];
|
||||||
|
const currentEngine = current.engines.at(-1)!;
|
||||||
|
const previewEngine = preview.engines.at(-1)!;
|
||||||
|
const currentTracks = current.tracks.at(-1)!;
|
||||||
|
const previewTracks = preview.tracks.at(-1)!;
|
||||||
|
const currentTankModel = currentModelDefinitions.models[current.id];
|
||||||
|
const previewTankModel = previewModelDefinitions.models[preview.id];
|
||||||
|
|
||||||
const currentConsumables = Object.values(
|
const currentConsumables = Object.values(
|
||||||
currentConsumableDefinitions.consumables
|
currentConsumableDefinitions.consumables
|
||||||
@@ -145,6 +164,82 @@ if (changedTanks.length > 0) {
|
|||||||
)
|
)
|
||||||
.map((id) => currentEquipmentDefinitions.equipments[id]);
|
.map((id) => currentEquipmentDefinitions.equipments[id]);
|
||||||
|
|
||||||
|
const currentCharacteristics = tankCharacteristics(
|
||||||
|
{
|
||||||
|
tank: current,
|
||||||
|
gun: currentGun,
|
||||||
|
shell: currentShell,
|
||||||
|
applyDynamicArmor: false,
|
||||||
|
applyReactiveArmor: false,
|
||||||
|
applySpallLiner: false,
|
||||||
|
assaultDistance: 0,
|
||||||
|
crewSkills: createDefaultSkills(currentSkillDefinitions),
|
||||||
|
camouflage: true,
|
||||||
|
consumables: [],
|
||||||
|
engine: currentEngine,
|
||||||
|
provisions: createDefaultProvisions(
|
||||||
|
current,
|
||||||
|
currentGun,
|
||||||
|
currentProvisionDefinitions
|
||||||
|
),
|
||||||
|
equipmentMatrix: genericDefaultEquipmentMatrix,
|
||||||
|
stockEngine: current.engines[0],
|
||||||
|
stockGun: current.turrets[0].guns[0],
|
||||||
|
stockTrack: current.tracks[0],
|
||||||
|
stockTurret: current.turrets[0],
|
||||||
|
track: currentTracks,
|
||||||
|
turret: currentTurret,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
equipmentDefinitions: currentEquipmentDefinitions,
|
||||||
|
provisionDefinitions: currentProvisionDefinitions,
|
||||||
|
tankModelDefinition: currentTankModel,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
const previewCharacteristics = tankCharacteristics(
|
||||||
|
{
|
||||||
|
tank: preview,
|
||||||
|
gun: previewGun,
|
||||||
|
shell: previewShell,
|
||||||
|
applyDynamicArmor: false,
|
||||||
|
applyReactiveArmor: false,
|
||||||
|
applySpallLiner: false,
|
||||||
|
assaultDistance: 0,
|
||||||
|
crewSkills: createDefaultSkills(previewSkillDefinitions),
|
||||||
|
camouflage: true,
|
||||||
|
consumables: [],
|
||||||
|
engine: previewEngine,
|
||||||
|
provisions: createDefaultProvisions(
|
||||||
|
preview,
|
||||||
|
previewGun,
|
||||||
|
previewProvisionDefinitions
|
||||||
|
),
|
||||||
|
equipmentMatrix: genericDefaultEquipmentMatrix,
|
||||||
|
stockEngine: preview.engines[0],
|
||||||
|
stockGun: preview.turrets[0].guns[0],
|
||||||
|
stockTrack: preview.tracks[0],
|
||||||
|
stockTurret: preview.turrets[0],
|
||||||
|
track: previewTracks,
|
||||||
|
turret: previewTurret,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
equipmentDefinitions: previewEquipmentDefinitions,
|
||||||
|
provisionDefinitions: previewProvisionDefinitions,
|
||||||
|
tankModelDefinition: previewTankModel,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
const changedCharacteristics: string[] = [];
|
||||||
|
|
||||||
|
for (const key in currentCharacteristics) {
|
||||||
|
const characteristicKey = key as keyof typeof currentCharacteristics;
|
||||||
|
if (
|
||||||
|
currentCharacteristics[characteristicKey] !==
|
||||||
|
previewCharacteristics[characteristicKey]
|
||||||
|
) {
|
||||||
|
changedCharacteristics.push(characteristicKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// notes += `- [${preview.name.locales.en}](${domain}/tanks/${preview.slug})\n`;
|
// notes += `- [${preview.name.locales.en}](${domain}/tanks/${preview.slug})\n`;
|
||||||
notes += `- ${preview.name.locales.en}\n`;
|
notes += `- ${preview.name.locales.en}\n`;
|
||||||
|
|
||||||
@@ -184,6 +279,31 @@ if (changedTanks.length > 0) {
|
|||||||
].join(", ");
|
].join(", ");
|
||||||
notes += `\n`;
|
notes += `\n`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (changedCharacteristics.length > 0) {
|
||||||
|
notes += ` - Characteristics:\n`;
|
||||||
|
|
||||||
|
for (const characteristicUntyped of changedCharacteristics) {
|
||||||
|
const characteristic =
|
||||||
|
characteristicUntyped as keyof typeof currentCharacteristics;
|
||||||
|
const name =
|
||||||
|
strings.website.tools.tankopedia.characteristics.values[
|
||||||
|
characteristic
|
||||||
|
];
|
||||||
|
const before = currentCharacteristics[characteristic];
|
||||||
|
const after = previewCharacteristics[characteristic];
|
||||||
|
|
||||||
|
notes += ` - ${
|
||||||
|
typeof before === "number" && typeof after === "number"
|
||||||
|
? after > before
|
||||||
|
? "⬆️"
|
||||||
|
: "🔻"
|
||||||
|
: "✏️"
|
||||||
|
} ${name}: \`${
|
||||||
|
typeof before === "number" ? before.toFixed(2) : before
|
||||||
|
}\` → \`${typeof after === "number" ? after.toFixed(2) : after}\`\n`;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user