diff --git a/src/constants.ts b/src/constants.ts index 6b0e737e1..56027edf1 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -38,6 +38,7 @@ export const MINIGAMES = [ "pvpArena", "soulWars", "riftsClosed", + "colosseumGlory", ] as const; export const CLUES = ["all", "beginner", "easy", "medium", "hard", "elite", "master"] as const; @@ -72,6 +73,7 @@ export const mappedBossNames: [keyof BossRecords, string][] = [ ["kraken", "Kraken"], ["kreeArra", "Kree'Arra"], ["krilTsutsaroth", "K'ril Tsutsaroth"], + ["lunarChests", "Lunar Chests"], ["mimic", "Mimic"], ["nex", "Nex"], ["nightmare", "The Nightmare"], @@ -82,6 +84,7 @@ export const mappedBossNames: [keyof BossRecords, string][] = [ ["scorpia", "Scorpia"], ["scurrius", "Scurrius"], ["skotizo", "Skotizo"], + ["solHeredit", "Sol Heredit"], ["spindel", "Spindel"], ["tempoross", "Tempoross"], ["theGauntlet", "The Gauntlet"], diff --git a/src/meta/types.ts b/src/meta/types.ts index 2e87f31af..cd70ecbe4 100644 --- a/src/meta/types.ts +++ b/src/meta/types.ts @@ -88,6 +88,7 @@ export interface BossRecords { kraken: MinigameScore; kreeArra: MinigameScore; krilTsutsaroth: MinigameScore; + lunarChests: MinigameScore; mimic: MinigameScore; nex: MinigameScore; nightmare: MinigameScore; @@ -98,6 +99,7 @@ export interface BossRecords { scorpia: MinigameScore; scurrius: MinigameScore; skotizo: MinigameScore; + solHeredit: MinigameScore; spindel: MinigameScore; tempoross: MinigameScore; theGauntlet: MinigameScore; diff --git a/src/util/util.ts b/src/util/util.ts index fcb8fbe75..ce640c360 100644 --- a/src/util/util.ts +++ b/src/util/util.ts @@ -56,7 +56,7 @@ export function resolvePlayerFromHiscores(csvData: string, accountType: keyof ty accumulativeIndex += CLUES.length; - for (let i = 0; i < 4; i++) { + for (let i = 0; i < 5; i++) { const minigameKey = MINIGAMES[i + 4]; const minigameData = { rank: Number(data[i + accumulativeIndex][0]), @@ -65,7 +65,7 @@ export function resolvePlayerFromHiscores(csvData: string, accountType: keyof ty resolvedPlayer.minigames[minigameKey] = minigameData; } - accumulativeIndex += 4; + accumulativeIndex += 5; for (let i = 0; i < mappedBossNames.length; i++) { if (!data[i + accumulativeIndex]) continue; diff --git a/test/Hiscores.test.ts b/test/Hiscores.test.ts index cdbd8d3a0..cf826fa83 100644 --- a/test/Hiscores.test.ts +++ b/test/Hiscores.test.ts @@ -11,9 +11,10 @@ test('Hiscores', async () => { expect(koru.bossRecords.dagannothPrime.score).toBeGreaterThanOrEqual(1); expect(koru.bossRecords.dagannothRex.score).toBeGreaterThanOrEqual(1); - const [lynxTitan, zulu, magnaboy, virtualMagnaboy, dmmTournyFaux] = await Promise.all([ + const [lynxTitan, zulu, b0aty, magnaboy, virtualMagnaboy, dmmTournyFaux] = await Promise.all([ Hiscores.fetch('Lynx Titan'), Hiscores.fetch('Zulu'), + Hiscores.fetch('B0aty'), Hiscores.fetch('Magnaboy'), Hiscores.fetch('Magnaboy', { virtualLevels: true }), Hiscores.fetch('Faux', { virtualLevels: true }) @@ -44,6 +45,10 @@ test('Hiscores', async () => { expect(zulu.bossRecords.nex.rank > 1).toBe(true); expect(zulu.bossRecords.nex.score > 150 && zulu.bossRecords.nex.score < 3000).toBe(true); + expect(b0aty.minigames.bountyHunterLegacy.score).toEqual(8) + expect(b0aty.minigames.bountyHunterLegacyRogue.score).toEqual(7) + expect(b0aty.minigames.colosseumGlory.score).toBeGreaterThan(30_000); + expect(magnaboy.clues.all.score).toBe(157); expect(magnaboy.clues.beginner.score).toBe(6);