Compare commits

..
Author SHA1 Message Date
tresabhi 51900f4c80 countdown 2026-10-19 19:22:20 -05:00
TrèsAbhi 989e3d395a Merge pull request #385 from blitzkit/main
Production
2026-10-14 13:15:55 -05:00
24 changed files with 115 additions and 288 deletions

No files matched your search

+47
View File
@@ -0,0 +1,47 @@
# BlitzKit Credits
BlitzKit is a one man band **TrèsAbhi** but I am far from solo. Helpers, in the order of contribution over time:
### S0AP
BlitzKit Discord bot verification, testing, advertisement, and the initial encouragement to create BlitzKit.
### Prince_NA
BlitzKit Discord bot and website testing and general advise.
### Vovko
BlitzKit Discord bot and website rendering pipeline.
### Maddox
Game file decompression.
### Pyogenics
Game 3D model parsing.
### Aeson
Game file layout, general advise, advertisement, and Tankopedia pre-release testing.
### Minitelrose, ChickenMan7777
3-caliber rule edge cases.
### HisRoyalFatness, Synx
Embed UX.
### [OPTML] clan, \_34, xkdkw, Droodles Blitz
Tankopedia pre-release testing.
### GonnaHetzMe
Redacted by request.
### Mark Greene
GitHub contributor on bug fixes and feature additions.
+3 -3
View File
@@ -1,14 +1,14 @@
# BlitzKit 1.29.10
Thank you to [HitJack](https://github.com/Hitjack007) for your contributions this update.
Thank you to [Mark Greene](https://github.com/Hitjack007) for your contributions this update.
## Features
- Combined game mode passive and active abilities into a single dropdown
- Added tier filters to the Guess game [HitJack]
- Added tier filters to the Guess game [Mark Greene]
- Changing tiers will break your streak
## Fixes
- module damage is now properly shown when sorting with it in the tank search [HitJack]
- module damage is now properly shown when sorting with it in the tank search [Mark Greene]
- Duplicate abilities in the tank filters are now removed
+2 -2
View File
@@ -1,6 +1,6 @@
# BlitzKit 1.29.8
Thank you to [HitJack](https://github.com/Hitjack007) for your contributions this update.
Thank you to [Mark Greene](https://github.com/Hitjack007) for your contributions this update.
## Features
@@ -15,5 +15,5 @@ Thank you to [HitJack](https://github.com/Hitjack007) for your contributions thi
## Fixes
- The Tankopedia now smoothly resizes when enlarging on interaction
- Stock turrets now correctly mount the corresponding stock gun [HitJack]
- Stock turrets now correctly mount the corresponding stock gun [Mark Greene]
- The consumable and provision buttons in Compare are no longer tiny
+3 -3
View File
@@ -1,14 +1,14 @@
# BlitzKit 1.29.9
Thank you to [HitJack](https://github.com/Hitjack007) for your contributions this update.
Thank you to [Mark Greene](https://github.com/Hitjack007) for your contributions this update.
## Features
- Reworked tank search filters to be far more compact to make way for new filters
- Added the ability to filter tanks by consumables [HitJack]
- Added the ability to filter tanks by consumables [Mark Greene]
- Added the ability to filter tanks by provisions and game-mode abilities and powers
## Fixes
- Consumable and provision icons in Compare are now properly sized
- Provisions now properly affect terrain resistances [HitJack]
- Provisions now properly affect terrain resistances [Mark Greene]
+5 -5
View File
@@ -1,6 +1,6 @@
# BlitzKit 1.30.7
Thank you to [HitJack](https://github.com/Hitjack007) for your contributions this update.
Thank you to [Mark Greene](https://github.com/Hitjack007) for your contributions this update.
## Features
@@ -8,13 +8,13 @@ Thank you to [HitJack](https://github.com/Hitjack007) for your contributions thi
## Fixes
- Clicking on the armor multiple times with HE no longer crashes BlitzKit [HitJack]
- Ricochets that later intersect with external modules no longer falsely claim a successful damaging penetration [HitJack]
- Clicking on the armor multiple times with HE no longer crashes BlitzKit [Mark Greene]
- Ricochets that later intersect with external modules no longer falsely claim a successful damaging penetration [Mark Greene]
- The lighting animation no longer stops prematurely when BlitzKit is unfocused
- The spot light angle has been increased to more evenly light up larger tanks
- BlitzKit once again uses soft shadows, reducing the pixelated shadows
- Fixed the weird patterns that formed on the tracks of tanks under self-shadows
- Increased the floor size and light decay to create the illusion that the floor is infinite
- Safari no longer crashes when unloading textures for unloaded tanks [HitJack]
- Safari no longer crashes when unloading textures for unloaded tanks [Mark Greene]
- The gun depression transition between two constraints (like often behind tanks) now uses a gentler zoned and can never be 0
- Armor plate names in Static Armor are now properly capitalized in English and translated to other languages [HitJack]
- Armor plate names in Static Armor are now properly capitalized in English and translated to other languages [Mark Greene]
+34 -34
View File
@@ -1,75 +1,75 @@
# BlitzKit 1.32.0
Thank you to [HitJack](https://github.com/Hitjack007) for your contributions this update.
Thank you to [Mark Greene](https://github.com/Hitjack007) for your contributions this update.
## Features
### Tankopedia & Armor
- Added a spall liner button to the Tankopedia beside the other equipment [HitJack]
- Listed track repair times in the Tankopedia [HitJack]
- The penetration chance is now displayed when penetration testing armor [HitJack]
- Added a new setting to disable automatically loading tanks in Tankopedia [HitJack]
- Added a spall liner button to the Tankopedia beside the other equipment [Mark Greene]
- Listed track repair times in the Tankopedia [Mark Greene]
- The penetration chance is now displayed when penetration testing armor [Mark Greene]
- Added a new setting to disable automatically loading tanks in Tankopedia [Mark Greene]
### Tank Performance & Mechanics
- Added Peekaboo DPM [HitJack]
- Added Peekaboo DPM [Mark Greene]
- Your Peekaboo DPM is lower than your normal DPM if your reload is faster than 10s as you'll have to wait for the remaining 10s for you to get unspotted before you can poke and shoot
### Tank Filters
- The test and owned tank filters are now more intuitive as clicking on them now turns the clicked option on instead of off [HitJack]
- The test and owned tank filters are now more intuitive as clicking on them now turns the clicked option on instead of off [Mark Greene]
### Game Compatibility
- Added compatibility for tier XI tanks [HitJack]
- Added compatibility for tier XI tanks [Mark Greene]
## Fixes
### Tankopedia & Armor
- The armor no longer disappears when you turn on Dynamic Armor System [HitJack]
- Camouflage values in Tankopedia are now more descriptive when shooting [HitJack]
- The penetration chance is now displayed when penetration testing armor [HitJack]
- Listed track repair times in the Tankopedia [HitJack]
- Added a spall liner button to the Tankopedia beside the other equipment [HitJack]
- The flags in the Tankopedia tech tree are no longer offset to the top left [HitJack]
- The loading bar below the name of the tanks in Tankopedia is now sufficiently spaced below [HitJack]
- The armor no longer disappears when you turn on Dynamic Armor System [Mark Greene]
- Camouflage values in Tankopedia are now more descriptive when shooting [Mark Greene]
- The penetration chance is now displayed when penetration testing armor [Mark Greene]
- Listed track repair times in the Tankopedia [Mark Greene]
- Added a spall liner button to the Tankopedia beside the other equipment [Mark Greene]
- The flags in the Tankopedia tech tree are no longer offset to the top left [Mark Greene]
- The loading bar below the name of the tanks in Tankopedia is now sufficiently spaced below [Mark Greene]
- Removed the vertical sliver of pixels found to the right of the Equalizer toggle in Tankopedia
### Tank Search & Filters
- The search bar no longer redirects to a seemingly random tank when clicking enter when searching [HitJack]
- Tank search now properly handles the full names of tanks like the Super Pershing [HitJack]
- The tank search now remains consistent in order even when an added filter does not add/remove tanks from the list [HitJack]
- The test and owned tank filters are now more intuitive as clicking on them now turns the clicked option on instead of off [HitJack]
- The search bar no longer redirects to a seemingly random tank when clicking enter when searching [Mark Greene]
- Tank search now properly handles the full names of tanks like the Super Pershing [Mark Greene]
- The tank search now remains consistent in order even when an added filter does not add/remove tanks from the list [Mark Greene]
- The test and owned tank filters are now more intuitive as clicking on them now turns the clicked option on instead of off [Mark Greene]
### Visuals & UI
- Removed the Beta badge from the Equalizer button [HitJack]
- Removed the Beta badge from the Equalizer button [Mark Greene]
- Updated the background image for the Equalizer button to the actual banner of the new game mode
- The contact shadows on the ground no longer grow & darken when switching between tabs [HitJack]
- Additionally, the contact shadows stays visible at low angles [HitJack]
- The contact shadows on the ground no longer grow & darken when switching between tabs [Mark Greene]
- Additionally, the contact shadows stays visible at low angles [Mark Greene]
- The "Help Translate BlitzKit" text on the home page is now properly centered vertically
- The footer now says "Branch" instead of "CDN" [HitJack]
- The game version in the footer now displays a shorthand version instead of the entire version number [HitJack]
- The reload visualizer now displays just 1 decimal place [HitJack]
- Plot controls for the Static armor tab no longer pokes in from the right on non-Static armor tabs in some languages [HitJack]
- Mixer's controllers now scale better on smaller screens [HitJack]
- The list of available tanks in the Playlist is no longer excessively wide [HitJack]
- The footer now says "Branch" instead of "CDN" [Mark Greene]
- The game version in the footer now displays a shorthand version instead of the entire version number [Mark Greene]
- The reload visualizer now displays just 1 decimal place [Mark Greene]
- Plot controls for the Static armor tab no longer pokes in from the right on non-Static armor tabs in some languages [Mark Greene]
- Mixer's controllers now scale better on smaller screens [Mark Greene]
- The list of available tanks in the Playlist is no longer excessively wide [Mark Greene]
### Tank Mechanics & Models
- The gun depression visualizer now properly handles the inherent tilt of tanks like the Minotauro [HitJack]
- When moving the tracks of tanks, the textures no longer move at different rates [HitJack]
- The gun depression visualizer now properly handles the inherent tilt of tanks like the Minotauro [Mark Greene]
- When moving the tracks of tanks, the textures no longer move at different rates [Mark Greene]
### Localization
- Users with a preference on a language are once again redirected to the correct localized pages [HitJack]
- Users with a preference on a language are once again redirected to the correct localized pages [Mark Greene]
### Session & Game Compatibility
- BlitzKit Session now properly handles tanks removed from the game [HitJack]
- BlitzKit Session now properly handles tanks removed from the game [Mark Greene]
## Technical Fixes
@@ -78,7 +78,7 @@ Thank you to [HitJack](https://github.com/Hitjack007) for your contributions thi
- This was the last bug standing in the way of BlitzKit Previews
- Welcome back, BlitzKit Previews!
- Removed some dead code from the BlitzKit model mangler
- The player discovery loop now persists for longer than 1 iteration [HitJack]
- The player discovery loop now persists for longer than 1 iteration [Mark Greene]
- Bun is now forced to run scripts with the `--bun` flag
## Technical Features
@@ -94,5 +94,5 @@ Thank you to [HitJack](https://github.com/Hitjack007) for your contributions thi
- This was the last bug standing in the way of BlitzKit Previews
- Welcome back, BlitzKit Previews!
- Removed some dead code from the BlitzKit model mangler
- The player discovery loop now persists for longer than 1 iteration [HitJack]
- The player discovery loop now persists for longer than 1 iteration [Mark Greene]
- Bun is now forced to run scripts with the `--bun` flag
+5 -2
View File
@@ -1,6 +1,8 @@
{
"credits": {
"title": "BlitzKit is the work of many"
"test": {
"default": "test",
"long": "This is a long test string. You MUST NEVER see this in the UI. My favorite fruit is {fruit} because it has the color of {color}. I like it so much that I will say its name 3 times! {fruit}! {fruit}! {fruit}! Once again, it's {color}, not {not_color}.",
"fox": "The quick brown fox jumps over the lazy dog."
},
"common": {
@@ -994,6 +996,7 @@
"about": {
"title": "About",
"credits": "Credits",
"discord": "Discord",
"github": "GitHub",
"patches": "Patches"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

@@ -3,9 +3,9 @@ import { useEffect, useState, type ReactNode } from "react";
import type { MaybeSkeletonComponentProps } from "../types/maybeSkeletonComponentProps";
import { InlineSkeleton } from "./InlineSkeleton";
const TIME = 1764898200 * 1000;
const TIME = 1792598400 * 1000;
export function Giveaway({ skeleton }: MaybeSkeletonComponentProps) {
export function Countdown({ skeleton }: MaybeSkeletonComponentProps) {
const [timeLeft, setTimeLeft] = useState<number>(TIME - Date.now());
useEffect(() => {
@@ -31,14 +31,14 @@ export function Giveaway({ skeleton }: MaybeSkeletonComponentProps) {
string = (
<>
in{" "}
revealed in{" "}
<Code highContrast>
{hours}h {minutes}m {seconds}s
</Code>
</>
);
} else {
string = "has ended. Come again later!";
string = "have been revealed.";
}
return (
@@ -47,7 +47,7 @@ export function Giveaway({ skeleton }: MaybeSkeletonComponentProps) {
color="gray"
highContrast
style={{ display: "content" }}
href="https://discord.gg/njQdBhNS?event=1446208951136813117"
href="/tanks"
underline="none"
>
<Flex
@@ -56,17 +56,17 @@ export function Giveaway({ skeleton }: MaybeSkeletonComponentProps) {
py="4"
style={{
borderRadius: "var(--radius-3)",
backgroundImage: "url(https://i.imgur.com/LRYmSkg.png)",
backgroundImage: "url(https://i.imgur.com/xgngxoy.png)",
backgroundSize: "cover",
backgroundPosition: "center",
boxSizing: "border-box",
boxShadow: "0 0 var(--space-7) var(--blue-a5)",
boxShadow: "0 0 var(--space-7) var(--white-a2)",
}}
align="center"
gap="5"
>
<img
src="https://i.imgur.com/mvmJQgB.png"
src="https://i.imgur.com/kXV3r3P.png"
style={{
height: "min(15vw, 5rem)",
filter: "drop-shadow(0.5rem 0.5rem 1rem #00000080)",
@@ -75,11 +75,11 @@ export function Giveaway({ skeleton }: MaybeSkeletonComponentProps) {
<Flex direction="column">
<Heading size={{ initial: "4", sm: "6" }}>
Music Box giveaway {!skeleton && string}{" "}
Tier XIs {!skeleton && string}{" "}
{skeleton && <InlineSkeleton width="10rem" />}
</Heading>
<Text size={{ initial: "2", sm: "3" }}>
Join the BlitzKit Discord server event
Get ready to go to the Tankopedia!
</Text>
</Flex>
</Flex>
@@ -1,113 +0,0 @@
---
import { Grid, Heading, Text } from "@radix-ui/themes";
import { credits } from "../config/credits";
import { getStrings } from "../core/i18n/getStrings";
interface Props {
locale: string;
}
const { locale } = Astro.props;
const strings = getStrings(locale);
---
<style>
.credits {
display: flex;
justify-content: center;
padding: var(--space-4);
margin-top: var(--space-4);
.inner {
display: flex;
flex-direction: column;
gap: var(--space-2);
width: 100%;
max-width: 80rem;
.list {
gap: var(--space-5);
.link {
display: contents;
.person {
--profile-size: 5rem;
display: flex;
flex-direction: column;
background-color: var(--gray-3);
padding: var(--space-4);
padding-top: 0;
margin-top: calc(var(--profile-size) / 2);
gap: var(--space-1);
box-shadow: var(--shadow-2);
border-radius: var(--radius-3);
.link:first-child & {
background-color: var(--gray-5);
box-shadow: 0 0 2rem var(--gray-a4);
outline: 1px solid var(--gray-7);
/* background-color: var(--blue-3);
outline: 1px solid var(--blue-5);
box-shadow: 0 0 3rem var(--blue-a3); */
}
img {
border-radius: 50%;
position: relative;
margin-top: calc(var(--profile-size) / -2);
object-fit: cover;
width: var(--profile-size);
height: var(--profile-size);
margin-bottom: var(--space-2);
}
}
}
}
}
}
</style>
<div class="credits">
<div class="inner">
<Heading align="center">{strings.credits.title}</Heading>
<Grid
className="list"
py="4"
columns="repeat(auto-fill, minmax(16rem, 1fr))"
flow="dense"
gap="4"
gapY="8"
>
{
credits.map((person) => (
<a target="_blank" href={person.url} class="link">
<div class="person">
<img src={person.image} />
<Text weight="medium" className="text" color="gray" highContrast>
{person.name}
</Text>
<Text className="text" color="gray" wrap="pretty">
{person.description}
</Text>
</div>
</a>
))
}</Grid
>
</div>
</div>
@@ -84,6 +84,9 @@ const strings = getStrings(locale);
sm: "start",
}}
>
<LinkI18n {locale} href="/docs/about/credits" color="gray">
{strings.website.footer.about.credits}
</LinkI18n>
<Link
href="https://discord.gg/nDt7AjGJQH"
target="_blank"
-113
View File
@@ -1,113 +0,0 @@
interface CreditPeople {
name: string;
description: string;
url?: string;
image: string;
}
export const credits: CreditPeople[] = [
{
name: "TrèsAbhi",
description: "Founder and lead developer",
url: "https://abhi-deep.com/",
image: "https://github.com/tresabhi.png",
},
{
name: "HitJack",
description: "Developer on website",
url: "https://github.com/Hitjack007",
image: "https://github.com/Hitjack007.png",
},
{
name: "aeson000",
description: "Advisor on game and website",
url: "https://discord.gg/WHdER7ZPAD",
image: "/media/users/aeson000.png",
},
{
name: "GonnaHetzMe",
description: "Developer and advisor on back end",
url: "https://github.com/karelpak1",
image: "https://github.com/karelpak1.png",
},
{
name: "ChickenMan7777",
description: "Moderator and former advisor on game mechanics",
url: "https://discord.gg/rEsUbXCqD9",
image: "/media/users/chickenman7777.webp",
},
{
name: "Avenir",
description: "Moderator and elite Advanced Recon Commando",
image: "/media/users/avenir.webp",
},
{
name: "Pyogenics",
description: "Former advisor on back end",
url: "https://github.com/Pyogenics",
image: "https://github.com/Pyogenics.png",
},
{
name: "Prince_NA",
description: "Former advisor on bot and website",
image: "/media/users/prince-na.webp",
},
{
name: "Vovko",
description: "Former advisor on bot",
url: "https://amth.one/",
image: "https://github.com/cufee.png",
},
{
name: "S0AP",
description: "Former advisor and advertiser on bot",
url: "https://discord.gg/3KfH93um3Y",
image: "/media/users/s0ap.webp",
},
{
name: "xkdkw",
description: "Former advisor on bot and website",
image: "/media/users/xkdkw.webp",
},
{
name: "Synx",
description: "Former advisor on bot and website",
url: "https://www.youtube.com/@Synx_Blitz",
image: "/media/users/synx.webp",
},
{
name: "34wotb",
description: "Former advisor on bot",
url: "https://www.twitch.tv/34wotb/",
image: "/media/users/34wotb.jpg",
},
{
name: "HisRoyalFatness",
description: "Former advisor on website",
url: "https://www.youtube.com/@hisroyalfatness",
image: "/media/users/hisroyalfatness.jpg",
},
{
name: "Droodles Blitz",
description: "Former advisor on website",
url: "https://www.youtube.com/@DroodlesBlitz",
image: "/media/users/droodles-blitz.jpg",
},
{
name: "Minitelrose",
description: "Former advisor on game mechanics",
url: "https://wotinspector.com/",
image: "/media/users/minitelrose.webp",
},
{
name: "Maddox",
description: "Game asset decompression",
url: "https://github.com/Maddoxkkm",
image: "https://github.com/Maddoxkkm.png",
},
{
name: "TJ Duff",
description: "Chief executive cheer leader",
image: "/media/users/tj-duff.jpg",
},
];
@@ -5,7 +5,7 @@ import locales from "@blitzkit/i18n/locales.json";
import { literals } from "@blitzkit/i18n/src/literals";
import { Box, Flex, Link } from "@radix-ui/themes";
import { AesonPlug } from "../../../components/AesonPlug";
import CreditsPromo from "../../../components/CreditsPromo.astro";
import { Countdown } from "../../../components/Countdown";
import HomeHero from "../../../components/HomeHero.astro";
import { Plugs } from "../../../components/Plugs";
import ToolCard from "../../../components/ToolCard.astro";
@@ -66,6 +66,8 @@ export const getStaticPaths = mixStaticPaths(_getStaticPaths, () => {
<BaseLayout {locale}>
<HomeHero />
<Countdown client:load />
{
locale !== locales.default && (
<Flex justify="center" pt="4" my="4">
@@ -114,7 +116,5 @@ export const getStaticPaths = mixStaticPaths(_getStaticPaths, () => {
</Flex>
</Flex>
<CreditsPromo {locale} />
<div style={{ flex: 1 }}></div>
</BaseLayout>