58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
import { BedwarsModeStats } from "./hypixel/bedwars"
|
|
import { devide } from "./hypixel/general"
|
|
|
|
export function concatBedwarsStats(...stats: BedwarsModeStats[]) {
|
|
if (stats.length === 0) return []
|
|
|
|
const base: BedwarsModeStats = {
|
|
kills_bedwars: 0,
|
|
deaths_bedwars: 0,
|
|
final_kills_bedwars: 0,
|
|
final_deaths_bedwars: 0,
|
|
wins_bedwars: 0,
|
|
losses_bedwars: 0,
|
|
winstreak: -1,
|
|
beds_broken_bedwars: 0,
|
|
beds_lost_bedwars: 0
|
|
}
|
|
|
|
for (const s of stats) {
|
|
base.kills_bedwars += s.kills_bedwars
|
|
base.deaths_bedwars += s.deaths_bedwars
|
|
base.final_kills_bedwars += s.final_kills_bedwars
|
|
base.final_deaths_bedwars += s.final_deaths_bedwars
|
|
base.wins_bedwars += s.wins_bedwars
|
|
base.losses_bedwars += s.losses_bedwars
|
|
if (s.winstreak !== -1) {
|
|
base.winstreak = Math.max(base.winstreak, s.winstreak)
|
|
}
|
|
base.beds_broken_bedwars += s.beds_broken_bedwars
|
|
base.beds_lost_bedwars += s.beds_lost_bedwars
|
|
}
|
|
|
|
const ret = {
|
|
...base,
|
|
winstreak: base.winstreak < 0 ? "?" : base.winstreak,
|
|
kd: devide(base.kills_bedwars, base.deaths_bedwars),
|
|
fkd: devide(base.final_kills_bedwars, base.final_deaths_bedwars),
|
|
wl: devide(base.wins_bedwars, base.losses_bedwars),
|
|
bbl: devide(base.beds_broken_bedwars, base.beds_lost_bedwars)
|
|
}
|
|
|
|
return [
|
|
ret.kills_bedwars,
|
|
ret.deaths_bedwars,
|
|
ret.kd,
|
|
ret.final_kills_bedwars,
|
|
ret.final_deaths_bedwars,
|
|
ret.fkd,
|
|
ret.wins_bedwars,
|
|
ret.losses_bedwars,
|
|
ret.wl,
|
|
ret.winstreak,
|
|
ret.beds_broken_bedwars,
|
|
ret.beds_lost_bedwars,
|
|
ret.bbl
|
|
]
|
|
}
|