mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 02:37:05 +02:00
checkpoint
This commit is contained in:
1 parent
750bdd236a
commit
9e26da3205
12 files changed
+27
-42
No files matched your search
@@ -1,2 +1,2 @@
|
||||
export * from './fetchPB';
|
||||
export * from './pbMap';
|
||||
export * from "./fetchJSON";
|
||||
export * from "./fetchPB";
|
||||
@@ -11,12 +11,10 @@ export abstract class ServerBlitzKitAPI6 extends ServerBlitzKitAPI5 {
|
||||
async consumables() {
|
||||
const consumableDefinitions = ConsumableDefinitions.create();
|
||||
|
||||
Object.entries(this.consumablesCommon).forEach(([key, consumable]) => {
|
||||
Object.entries(this.consumablesCommon).forEach(([, consumable]) => {
|
||||
const entry: Consumable = {
|
||||
id: consumable.id,
|
||||
game_mode_exclusive: "gameModeFilter" in consumable,
|
||||
cooldown: consumable.script.cooldown,
|
||||
duration: consumable.script.duration,
|
||||
name: this.getString(consumable.userString),
|
||||
exclude: [],
|
||||
include: [],
|
||||
|
||||
@@ -3,7 +3,6 @@ import {
|
||||
ProvisionDefinitions,
|
||||
TankDefinition,
|
||||
} from "../../../protos/src/blitzkit";
|
||||
import { checkConsumableProvisionInclusivity } from "./checkConsumableProvisionInclusivity";
|
||||
|
||||
export function availableProvisions(
|
||||
tank: TankDefinition,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
import { literals } from "@blitzkit/i18n";
|
||||
import locales from "@blitzkit/i18n/locales.json";
|
||||
import { getStrings } from "../core/i18n/getStrings";
|
||||
import { api } from "../api/dynamic";
|
||||
import { Link } from "./Link";
|
||||
|
||||
interface Props {
|
||||
@@ -10,7 +10,7 @@ interface Props {
|
||||
|
||||
const { locale } = Astro.props;
|
||||
|
||||
const strings = getStrings(locale)
|
||||
const strings = await api.strings(locale);
|
||||
---
|
||||
|
||||
<style>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
import { api } from "../api/dynamic";
|
||||
import { tools } from "../constants/tools";
|
||||
import { getStrings } from "../core/i18n/getStrings";
|
||||
import { Heading } from "./Heading";
|
||||
import { Section } from "./Section";
|
||||
import ToolCard from "./ToolCard.astro";
|
||||
@@ -13,7 +13,7 @@ interface Props {
|
||||
|
||||
const { locale } = Astro.props;
|
||||
|
||||
const strings = getStrings(locale);
|
||||
const strings = await api.strings(locale);
|
||||
---
|
||||
|
||||
<Section>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
import { api } from "../api/dynamic";
|
||||
import { tools } from "../constants/tools";
|
||||
import { getStrings } from "../core/i18n/getStrings";
|
||||
import { Heading } from "./Heading";
|
||||
import { Section } from "./Section";
|
||||
import ToolCard from "./ToolCard.astro";
|
||||
@@ -13,7 +13,7 @@ interface Props {
|
||||
|
||||
const { locale } = Astro.props;
|
||||
|
||||
const strings = getStrings(locale);
|
||||
const strings = await api.strings(locale);
|
||||
---
|
||||
|
||||
<Section>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
import { api } from "../api/dynamic";
|
||||
import { tools } from "../constants/tools";
|
||||
import { getStrings } from "../core/i18n/getStrings";
|
||||
import { Heading } from "./Heading";
|
||||
import { Section } from "./Section";
|
||||
import ToolCard from "./ToolCard.astro";
|
||||
@@ -13,7 +13,7 @@ interface Props {
|
||||
|
||||
const { locale } = Astro.props;
|
||||
|
||||
const strings = getStrings(locale);
|
||||
const strings = await api.strings(locale);
|
||||
---
|
||||
|
||||
<Section>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
import { api } from "../api/dynamic";
|
||||
import { tools } from "../constants/tools";
|
||||
import { getStrings } from "../core/i18n/getStrings";
|
||||
import { Heading } from "./Heading";
|
||||
import { Section } from "./Section";
|
||||
import ToolCard from "./ToolCard.astro";
|
||||
@@ -12,7 +12,7 @@ interface Props {
|
||||
}
|
||||
|
||||
const { locale } = Astro.props;
|
||||
const strings = getStrings(locale);
|
||||
const strings = await api.strings(locale);
|
||||
---
|
||||
|
||||
<Section>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
import { api } from "../api/dynamic";
|
||||
import { tools } from "../constants/tools";
|
||||
import { getStrings } from "../core/i18n/getStrings";
|
||||
import { Heading } from "./Heading";
|
||||
import { Section } from "./Section";
|
||||
import ToolCard from "./ToolCard.astro";
|
||||
@@ -13,7 +13,7 @@ interface Props {
|
||||
|
||||
const { locale } = Astro.props;
|
||||
|
||||
const strings = getStrings(locale);
|
||||
const strings = await api.strings(locale);
|
||||
---
|
||||
|
||||
<Section>
|
||||
|
||||
@@ -11,6 +11,7 @@ import { vehicleStatusKeys } from "../../tankopedia/tankState";
|
||||
import type { ComputedCharacteristics } from "../../types/characteristics";
|
||||
import { Heading } from "../Heading";
|
||||
import { IconButton } from "../IconButton";
|
||||
import { Tooltip } from "../Tooltip";
|
||||
import styles from "./index.module.css";
|
||||
|
||||
interface TankopediaLoadoutProps {
|
||||
@@ -146,7 +147,9 @@ function Consumables({ characteristics }: ConsumablesProps) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return <Consumable key={id} id={id} consumable={consumable} />;
|
||||
return (
|
||||
<Consumable key={id} id={Number(id)} consumable={consumable} />
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
@@ -154,35 +157,20 @@ function Consumables({ characteristics }: ConsumablesProps) {
|
||||
}
|
||||
|
||||
interface ConsumableProps {
|
||||
id: string;
|
||||
id: number;
|
||||
consumable: Consumable;
|
||||
}
|
||||
|
||||
function Consumable({ id, consumable, purchase }: ConsumableProps) {
|
||||
const gameStrings = useGameStrings("ConsumableEntity");
|
||||
function Consumable({ id, consumable }: ConsumableProps) {
|
||||
const isSelected = Tankopedia.use((state) =>
|
||||
state.protagonist.consumables.includes(id),
|
||||
);
|
||||
const tank = useProtagonist();
|
||||
const tierPrices = useTierPrices();
|
||||
|
||||
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]);
|
||||
const unwrap = useUnwrap();
|
||||
|
||||
return (
|
||||
<div className={styles["consumable-wrapper"]}>
|
||||
<Tooltip tooltip={gameStrings[consumable!.name_key]}>
|
||||
<Tooltip tooltip={unwrap(consumable.name)}>
|
||||
<Button
|
||||
radius="1"
|
||||
variant={isSelected ? "surface" : "soft"}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
import { api } from "../api/dynamic";
|
||||
import type { Tool } from "../constants/tools";
|
||||
import { getStrings } from "../core/i18n/getStrings";
|
||||
import { Heading } from "./Heading";
|
||||
import { LinkI18n } from "./LinkI18n";
|
||||
|
||||
@@ -11,7 +11,7 @@ interface Props {
|
||||
}
|
||||
|
||||
const { locale, tool, minor } = Astro.props;
|
||||
const strings = getStrings(locale);
|
||||
const strings = await api.strings(locale);
|
||||
const toolStrings =
|
||||
strings.website.tools[
|
||||
(tool.strings ?? tool.id) as keyof typeof strings.website.tools
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import { AstroSeo } from "@astrolib/seo";
|
||||
import { assertSecret } from "@blitzkit/core";
|
||||
import locales from "@blitzkit/i18n/locales.json";
|
||||
import { api } from "../../../api/dynamic";
|
||||
import { mixStaticPaths } from "../../../astro/mixStaticPaths";
|
||||
import { AesonPlug } from "../../../components/AesonPlug";
|
||||
import HelpTranslate from "../../../components/HelpTranslate.astro";
|
||||
@@ -11,7 +12,6 @@ import HomePlayers from "../../../components/HomePlayers.astro";
|
||||
import HomeTanks from "../../../components/HomeTanks.astro";
|
||||
import HomeTechnical from "../../../components/HomeTechnical.astro";
|
||||
import { tools, type Tool } from "../../../constants/tools";
|
||||
import { getStrings } from "../../../core/i18n/getStrings";
|
||||
import BaseLayout from "../../../layouts/BaseLayout.astro";
|
||||
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 { locale } = Astro.props;
|
||||
const strings = getStrings(locale);
|
||||
const strings = await api.strings(locale);
|
||||
const rows: Tool[][] = [];
|
||||
|
||||
for (const id in tools) {
|
||||
|
||||
Reference in new issue
Block a user