mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-22 03:07:04 +02:00
feat: start on final design
This commit is contained in:
1 parent
298b89b227
commit
afa0cfaeef
21 files changed
+178
-116
No files matched your search
@@ -23,22 +23,11 @@ export interface AllStats {
|
||||
dropped_capture_points: number;
|
||||
}
|
||||
|
||||
export interface SupplementaryStatsRandom {
|
||||
type: 'random';
|
||||
export interface SupplementaryStats {
|
||||
WN8?: number;
|
||||
tier?: number;
|
||||
}
|
||||
|
||||
export interface SupplementaryStatsRating {
|
||||
type: 'rating';
|
||||
score: number;
|
||||
delta: number;
|
||||
}
|
||||
|
||||
export type SupplementaryStats =
|
||||
| SupplementaryStatsRandom
|
||||
| SupplementaryStatsRating;
|
||||
|
||||
export interface ClanStats {
|
||||
spotted: number;
|
||||
max_frags_tank_id: number;
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
export function normalizeLeagueIcon(url: string) {
|
||||
return url.startsWith('http') ? url : `https:${url}`;
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
export function emblemIdToURL(emblemId: number) {
|
||||
export function emblemURL(emblemId: number) {
|
||||
return `https://wotblitz-gc.gcdn.co/icons/clanEmblems1x/clan-icon-v2-${emblemId}.png`;
|
||||
}
|
||||
@@ -1,18 +1,21 @@
|
||||
import { RatingPlayer } from '../../commands/ratingLeaderboard';
|
||||
import { RatingStats } from '../blitz/getAccountInfo';
|
||||
import { BkrlComprehensive1Entry, BkrlMinimalEntry } from '../streams/bkrl';
|
||||
import { BkrlSuperset1Entry } from '../streams/bkrl';
|
||||
|
||||
export function deltaBkrlBlitzStats(
|
||||
a: BkrlComprehensive1Entry,
|
||||
b: RatingStats,
|
||||
a: BkrlSuperset1Entry,
|
||||
b1: RatingStats,
|
||||
b2: RatingPlayer,
|
||||
) {
|
||||
return {
|
||||
battles: b.battles - a.battles,
|
||||
damageDealt: b.damage_dealt - a.damageDealt,
|
||||
damageReceived: b.damage_received - a.damageReceived,
|
||||
hits: b.hits - a.hits,
|
||||
kills: b.frags - a.kills,
|
||||
shots: b.shots - a.shots,
|
||||
survived: b.survived_battles - a.survived,
|
||||
wins: b.wins - a.wins,
|
||||
} satisfies Omit<BkrlComprehensive1Entry, keyof BkrlMinimalEntry>;
|
||||
battles: b1.battles - a.battles,
|
||||
damageDealt: b1.damage_dealt - a.damageDealt,
|
||||
damageReceived: b1.damage_received - a.damageReceived,
|
||||
hits: b1.hits - a.hits,
|
||||
kills: b1.frags - a.kills,
|
||||
shots: b1.shots - a.shots,
|
||||
survived: b1.survived_battles - a.survived,
|
||||
wins: b1.wins - a.wins,
|
||||
score: b2.score - a.score,
|
||||
} satisfies Omit<BkrlSuperset1Entry, 'id'>;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { TreeType } from '../../components/Tanks';
|
||||
import { SupplementaryStatsRandom } from '../blitz/getAccountInfo';
|
||||
import { SupplementaryStats } from '../blitz/getAccountInfo';
|
||||
import { tankDefinitions } from '../blitzkrieg/tankDefinitions';
|
||||
import { DiffedTankStats } from '../blitzstars/getStatsInPeriod';
|
||||
import { tankAverages } from '../blitzstars/tankAverages';
|
||||
@@ -51,7 +51,6 @@ export async function filterStats(
|
||||
0,
|
||||
);
|
||||
const supplementary = {
|
||||
type: 'random',
|
||||
WN8:
|
||||
filteredOrder.reduce<number>(
|
||||
(accumulator, id) =>
|
||||
@@ -70,7 +69,7 @@ export async function filterStats(
|
||||
: accumulator,
|
||||
0,
|
||||
) / battlesOfTanksWithTankDefinition,
|
||||
} satisfies SupplementaryStatsRandom;
|
||||
} satisfies SupplementaryStats;
|
||||
|
||||
return { stats, supplementary, filteredOrder };
|
||||
}
|
||||
@@ -3,7 +3,7 @@ import { ReadStream, WriteStream } from './buffer';
|
||||
|
||||
export enum BkrlFormat {
|
||||
Minimal,
|
||||
Comprehensive1,
|
||||
Superset1,
|
||||
}
|
||||
|
||||
export interface BkrlMinimalEntry {
|
||||
@@ -11,7 +11,7 @@ export interface BkrlMinimalEntry {
|
||||
score: number;
|
||||
}
|
||||
|
||||
export interface BkrlComprehensive1Entry {
|
||||
export interface BkrlSuperset1Entry {
|
||||
id: number;
|
||||
score: number;
|
||||
|
||||
@@ -34,8 +34,8 @@ export type BkrlDiscriminatedEntries =
|
||||
entries: BkrlMinimalEntry[];
|
||||
}
|
||||
| {
|
||||
format: BkrlFormat.Comprehensive1;
|
||||
entries: BkrlComprehensive1Entry[];
|
||||
format: BkrlFormat.Superset1;
|
||||
entries: BkrlSuperset1Entry[];
|
||||
};
|
||||
|
||||
export class BkrlReadStream extends ReadStream {
|
||||
@@ -61,9 +61,9 @@ export class BkrlReadStream extends ReadStream {
|
||||
};
|
||||
}
|
||||
|
||||
case BkrlFormat.Comprehensive1: {
|
||||
case BkrlFormat.Superset1: {
|
||||
return {
|
||||
format: BkrlFormat.Comprehensive1,
|
||||
format: BkrlFormat.Superset1,
|
||||
entries: times(
|
||||
header.count,
|
||||
() =>
|
||||
@@ -82,7 +82,7 @@ export class BkrlReadStream extends ReadStream {
|
||||
hits: this.uint32(),
|
||||
|
||||
kills: this.uint32(),
|
||||
}) satisfies BkrlComprehensive1Entry,
|
||||
}) satisfies BkrlSuperset1Entry,
|
||||
),
|
||||
};
|
||||
}
|
||||
@@ -123,7 +123,7 @@ export class BkrlWriteStream extends WriteStream {
|
||||
break;
|
||||
}
|
||||
|
||||
case BkrlFormat.Comprehensive1: {
|
||||
case BkrlFormat.Superset1: {
|
||||
discriminatedEntries.entries.forEach((entry) => {
|
||||
this.uint32(entry.id);
|
||||
this.uint16(entry.score);
|
||||
|
||||
Reference in new issue
Block a user