checkpoint

This commit is contained in:
tresabhi committed 2026-09-23 13:48:50 -05:00
1 parent 750bdd236a
commit 9e26da3205
12 files changed
+27 -42

No files matched your search

+2 -2
View File
@@ -1,2 +1,2 @@
export * from './fetchPB'; export * from "./fetchJSON";
export * from './pbMap'; export * from "./fetchPB";
@@ -11,12 +11,10 @@ export abstract class ServerBlitzKitAPI6 extends ServerBlitzKitAPI5 {
async consumables() { async consumables() {
const consumableDefinitions = ConsumableDefinitions.create(); const consumableDefinitions = ConsumableDefinitions.create();
Object.entries(this.consumablesCommon).forEach(([key, consumable]) => { Object.entries(this.consumablesCommon).forEach(([, consumable]) => {
const entry: Consumable = { const entry: Consumable = {
id: consumable.id, id: consumable.id,
game_mode_exclusive: "gameModeFilter" in consumable, game_mode_exclusive: "gameModeFilter" in consumable,
cooldown: consumable.script.cooldown,
duration: consumable.script.duration,
name: this.getString(consumable.userString), name: this.getString(consumable.userString),
exclude: [], exclude: [],
include: [], include: [],
@@ -3,7 +3,6 @@ import {
ProvisionDefinitions, ProvisionDefinitions,
TankDefinition, TankDefinition,
} from "../../../protos/src/blitzkit"; } from "../../../protos/src/blitzkit";
import { checkConsumableProvisionInclusivity } from "./checkConsumableProvisionInclusivity";
export function availableProvisions( export function availableProvisions(
tank: TankDefinition, tank: TankDefinition,
@@ -1,7 +1,7 @@
--- ---
import { literals } from "@blitzkit/i18n"; import { literals } from "@blitzkit/i18n";
import locales from "@blitzkit/i18n/locales.json"; import locales from "@blitzkit/i18n/locales.json";
import { getStrings } from "../core/i18n/getStrings"; import { api } from "../api/dynamic";
import { Link } from "./Link"; import { Link } from "./Link";
interface Props { interface Props {
@@ -10,7 +10,7 @@ interface Props {
const { locale } = Astro.props; const { locale } = Astro.props;
const strings = getStrings(locale) const strings = await api.strings(locale);
--- ---
<style> <style>
@@ -1,6 +1,6 @@
--- ---
import { api } from "../api/dynamic";
import { tools } from "../constants/tools"; import { tools } from "../constants/tools";
import { getStrings } from "../core/i18n/getStrings";
import { Heading } from "./Heading"; import { Heading } from "./Heading";
import { Section } from "./Section"; import { Section } from "./Section";
import ToolCard from "./ToolCard.astro"; import ToolCard from "./ToolCard.astro";
@@ -13,7 +13,7 @@ interface Props {
const { locale } = Astro.props; const { locale } = Astro.props;
const strings = getStrings(locale); const strings = await api.strings(locale);
--- ---
<Section> <Section>
@@ -1,6 +1,6 @@
--- ---
import { api } from "../api/dynamic";
import { tools } from "../constants/tools"; import { tools } from "../constants/tools";
import { getStrings } from "../core/i18n/getStrings";
import { Heading } from "./Heading"; import { Heading } from "./Heading";
import { Section } from "./Section"; import { Section } from "./Section";
import ToolCard from "./ToolCard.astro"; import ToolCard from "./ToolCard.astro";
@@ -13,7 +13,7 @@ interface Props {
const { locale } = Astro.props; const { locale } = Astro.props;
const strings = getStrings(locale); const strings = await api.strings(locale);
--- ---
<Section> <Section>
@@ -1,6 +1,6 @@
--- ---
import { api } from "../api/dynamic";
import { tools } from "../constants/tools"; import { tools } from "../constants/tools";
import { getStrings } from "../core/i18n/getStrings";
import { Heading } from "./Heading"; import { Heading } from "./Heading";
import { Section } from "./Section"; import { Section } from "./Section";
import ToolCard from "./ToolCard.astro"; import ToolCard from "./ToolCard.astro";
@@ -13,7 +13,7 @@ interface Props {
const { locale } = Astro.props; const { locale } = Astro.props;
const strings = getStrings(locale); const strings = await api.strings(locale);
--- ---
<Section> <Section>
@@ -1,6 +1,6 @@
--- ---
import { api } from "../api/dynamic";
import { tools } from "../constants/tools"; import { tools } from "../constants/tools";
import { getStrings } from "../core/i18n/getStrings";
import { Heading } from "./Heading"; import { Heading } from "./Heading";
import { Section } from "./Section"; import { Section } from "./Section";
import ToolCard from "./ToolCard.astro"; import ToolCard from "./ToolCard.astro";
@@ -12,7 +12,7 @@ interface Props {
} }
const { locale } = Astro.props; const { locale } = Astro.props;
const strings = getStrings(locale); const strings = await api.strings(locale);
--- ---
<Section> <Section>
@@ -1,6 +1,6 @@
--- ---
import { api } from "../api/dynamic";
import { tools } from "../constants/tools"; import { tools } from "../constants/tools";
import { getStrings } from "../core/i18n/getStrings";
import { Heading } from "./Heading"; import { Heading } from "./Heading";
import { Section } from "./Section"; import { Section } from "./Section";
import ToolCard from "./ToolCard.astro"; import ToolCard from "./ToolCard.astro";
@@ -13,7 +13,7 @@ interface Props {
const { locale } = Astro.props; const { locale } = Astro.props;
const strings = getStrings(locale); const strings = await api.strings(locale);
--- ---
<Section> <Section>
@@ -11,6 +11,7 @@ import { vehicleStatusKeys } from "../../tankopedia/tankState";
import type { ComputedCharacteristics } from "../../types/characteristics"; import type { ComputedCharacteristics } from "../../types/characteristics";
import { Heading } from "../Heading"; import { Heading } from "../Heading";
import { IconButton } from "../IconButton"; import { IconButton } from "../IconButton";
import { Tooltip } from "../Tooltip";
import styles from "./index.module.css"; import styles from "./index.module.css";
interface TankopediaLoadoutProps { interface TankopediaLoadoutProps {
@@ -146,7 +147,9 @@ function Consumables({ characteristics }: ConsumablesProps) {
return null; return null;
} }
return <Consumable key={id} id={id} consumable={consumable} />; return (
<Consumable key={id} id={Number(id)} consumable={consumable} />
);
})} })}
</div> </div>
</div> </div>
@@ -154,35 +157,20 @@ function Consumables({ characteristics }: ConsumablesProps) {
} }
interface ConsumableProps { interface ConsumableProps {
id: string; id: number;
consumable: Consumable; consumable: Consumable;
} }
function Consumable({ id, consumable, purchase }: ConsumableProps) { function Consumable({ id, consumable }: ConsumableProps) {
const gameStrings = useGameStrings("ConsumableEntity");
const isSelected = Tankopedia.use((state) => const isSelected = Tankopedia.use((state) =>
state.protagonist.consumables.includes(id), state.protagonist.consumables.includes(id),
); );
const tank = useProtagonist(); const tank = useProtagonist();
const tierPrices = useTierPrices(); const unwrap = useUnwrap();
const price = useMemo(() => {
const { prices } = tierPrices.prices[purchase.price_per_tier_catalog_id];
for (const { tier_catalog_id, unlock_price } of prices) {
if (tier_catalog_id === tank.tank!.tier_catalog_id) {
return unlock_price;
}
}
throw new Error(
`No price found for tier catalog id ${tank.tank!.tier_catalog_id}`,
);
}, [tank.id, purchase.price_per_tier_catalog_id]);
return ( return (
<div className={styles["consumable-wrapper"]}> <div className={styles["consumable-wrapper"]}>
<Tooltip tooltip={gameStrings[consumable!.name_key]}> <Tooltip tooltip={unwrap(consumable.name)}>
<Button <Button
radius="1" radius="1"
variant={isSelected ? "surface" : "soft"} variant={isSelected ? "surface" : "soft"}
@@ -1,6 +1,6 @@
--- ---
import { api } from "../api/dynamic";
import type { Tool } from "../constants/tools"; import type { Tool } from "../constants/tools";
import { getStrings } from "../core/i18n/getStrings";
import { Heading } from "./Heading"; import { Heading } from "./Heading";
import { LinkI18n } from "./LinkI18n"; import { LinkI18n } from "./LinkI18n";
@@ -11,7 +11,7 @@ interface Props {
} }
const { locale, tool, minor } = Astro.props; const { locale, tool, minor } = Astro.props;
const strings = getStrings(locale); const strings = await api.strings(locale);
const toolStrings = const toolStrings =
strings.website.tools[ strings.website.tools[
(tool.strings ?? tool.id) as keyof typeof strings.website.tools (tool.strings ?? tool.id) as keyof typeof strings.website.tools
@@ -2,6 +2,7 @@
import { AstroSeo } from "@astrolib/seo"; import { AstroSeo } from "@astrolib/seo";
import { assertSecret } from "@blitzkit/core"; import { assertSecret } from "@blitzkit/core";
import locales from "@blitzkit/i18n/locales.json"; import locales from "@blitzkit/i18n/locales.json";
import { api } from "../../../api/dynamic";
import { mixStaticPaths } from "../../../astro/mixStaticPaths"; import { mixStaticPaths } from "../../../astro/mixStaticPaths";
import { AesonPlug } from "../../../components/AesonPlug"; import { AesonPlug } from "../../../components/AesonPlug";
import HelpTranslate from "../../../components/HelpTranslate.astro"; import HelpTranslate from "../../../components/HelpTranslate.astro";
@@ -11,7 +12,6 @@ import HomePlayers from "../../../components/HomePlayers.astro";
import HomeTanks from "../../../components/HomeTanks.astro"; import HomeTanks from "../../../components/HomeTanks.astro";
import HomeTechnical from "../../../components/HomeTechnical.astro"; import HomeTechnical from "../../../components/HomeTechnical.astro";
import { tools, type Tool } from "../../../constants/tools"; import { tools, type Tool } from "../../../constants/tools";
import { getStrings } from "../../../core/i18n/getStrings";
import BaseLayout from "../../../layouts/BaseLayout.astro"; import BaseLayout from "../../../layouts/BaseLayout.astro";
import { getStaticPaths as _getStaticPaths } from "../_index"; import { getStaticPaths as _getStaticPaths } from "../_index";
@@ -19,7 +19,7 @@ const MAX_TOOLS_PER_ROW = 2;
const environment = assertSecret(import.meta.env.PUBLIC_ENVIRONMENT); const environment = assertSecret(import.meta.env.PUBLIC_ENVIRONMENT);
const { locale } = Astro.props; const { locale } = Astro.props;
const strings = getStrings(locale); const strings = await api.strings(locale);
const rows: Tool[][] = []; const rows: Tool[][] = [];
for (const id in tools) { for (const id in tools) {