Fixed bedwars
This commit is contained in:
@@ -1,17 +1,61 @@
|
|||||||
export function concatStatArrays(...arrays: number[][]) {
|
import { BedwarsModeStats } from "./hypixel/bedwars"
|
||||||
if (arrays.length === 0) return []
|
|
||||||
|
|
||||||
const indexes = [2, 5, 8]
|
export function concatStatArrays(...stats: BedwarsModeStats[]) {
|
||||||
|
if (stats.length === 0) return []
|
||||||
|
|
||||||
const result = arrays[0].map((v, index) => {
|
const base: BedwarsModeStats = {
|
||||||
if (v < 0) return "?"
|
kills_bedwars: 0,
|
||||||
|
deaths_bedwars: 0,
|
||||||
if (indexes.includes(index) || index === arrays[0].length - 1) {
|
final_kills_bedwars: 0,
|
||||||
return arrays.reduce((sum, array) => sum + array[index], 0) / arrays.length
|
final_deaths_bedwars: 0,
|
||||||
|
wins_bedwars: 0,
|
||||||
|
losses_bedwars: 0,
|
||||||
|
winstreak: -1,
|
||||||
|
beds_broken_bedwars: 0,
|
||||||
|
beds_lost_bedwars: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
return arrays.reduce((sum, array) => sum + array[index], 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
|
||||||
|
}
|
||||||
|
|
||||||
return result
|
const devide = (a: number, b: number) => {
|
||||||
|
if (b === 0) return a
|
||||||
|
return a / b
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,19 @@ type Mode =
|
|||||||
| "underworld_4s"
|
| "underworld_4s"
|
||||||
| "castle"
|
| "castle"
|
||||||
|
|
||||||
export function getBedwarsModeStats(mode: Mode, stats: _BedwarsStats, raw: true): number[]
|
export type BedwarsModeStats = {
|
||||||
|
kills_bedwars: number
|
||||||
|
deaths_bedwars: number
|
||||||
|
final_kills_bedwars: number
|
||||||
|
final_deaths_bedwars: number
|
||||||
|
wins_bedwars: number
|
||||||
|
losses_bedwars: number
|
||||||
|
winstreak: number
|
||||||
|
beds_broken_bedwars: number
|
||||||
|
beds_lost_bedwars: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getBedwarsModeStats(mode: Mode, stats: _BedwarsStats, raw: true): BedwarsModeStats
|
||||||
export function getBedwarsModeStats(mode: Mode, stats: _BedwarsStats, raw?: false): (string | number)[]
|
export function getBedwarsModeStats(mode: Mode, stats: _BedwarsStats, raw?: false): (string | number)[]
|
||||||
export function getBedwarsModeStats(mode: Mode, stats: _BedwarsStats, raw = false) {
|
export function getBedwarsModeStats(mode: Mode, stats: _BedwarsStats, raw = false) {
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
@@ -135,21 +147,17 @@ function devide(num: number, num2: number) {
|
|||||||
|
|
||||||
function bedwarsModeStats(prefix: string, stats: _BedwarsStats, raw = false) {
|
function bedwarsModeStats(prefix: string, stats: _BedwarsStats, raw = false) {
|
||||||
if (raw) {
|
if (raw) {
|
||||||
return [
|
return {
|
||||||
stats[`${prefix}_kills_bedwars`],
|
kills_bedwars: stats[`${prefix}_kills_bedwars`],
|
||||||
stats[`${prefix}_deaths_bedwars`],
|
deaths_bedwars: stats[`${prefix}_deaths_bedwars`],
|
||||||
devide(stats[`${prefix}_kills_bedwars`], stats[`${prefix}_deaths_bedwars`]),
|
final_kills_bedwars: stats[`${prefix}_final_kills_bedwars`],
|
||||||
stats[`${prefix}_final_kills_bedwars`],
|
final_deaths_bedwars: stats[`${prefix}_final_deaths_bedwars`],
|
||||||
stats[`${prefix}_final_deaths_bedwars`],
|
wins_bedwars: stats[`${prefix}_wins_bedwars`],
|
||||||
devide(stats[`${prefix}_final_kills_bedwars`], stats[`${prefix}_final_deaths_bedwars`]),
|
losses_bedwars: stats[`${prefix}_losses_bedwars`],
|
||||||
stats[`${prefix}_wins_bedwars`],
|
winstreak: stats[`${prefix}_winstreak`] ?? -1,
|
||||||
stats[`${prefix}_losses_bedwars`],
|
beds_broken_bedwars: stats[`${prefix}_beds_broken_bedwars`],
|
||||||
devide(stats[`${prefix}_wins_bedwars`], stats[`${prefix}_losses_bedwars`]),
|
beds_lost_bedwars: stats[`${prefix}_beds_lost_bedwars`]
|
||||||
stats[`${prefix}_winstreak`] ?? -1,
|
}
|
||||||
stats[`${prefix}_beds_broken_bedwars`],
|
|
||||||
stats[`${prefix}_beds_lost_bedwars`],
|
|
||||||
devide(stats[`${prefix}_beds_broken_bedwars`], stats[`${prefix}_beds_lost_bedwars`])
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|||||||
Reference in New Issue
Block a user