Merge pull request #106 from evanw555/add-collections-titans

Add Collections Logged, Royal Titans
This commit is contained in:
Max Swartwout
2025-02-24 19:06:56 -05:00
committed by GitHub
8 changed files with 619 additions and 568 deletions

View File

@@ -92,17 +92,18 @@ Activities consist of all levels of clue scrolls as well as minigames and bosses
### Minigames
| Minigame | Param |
| ------------------------------- | :---------------: |
| Bounty Hunter (Legacy - Rogue) | `rogueBH` |
| Bounty Hunter (Legacy - Hunter) | `hunterBH` |
| Bounty Hunter (Rogue) | `rogueBHV2` |
| Bounty Hunter (Hunter) | `hunterBHV2` |
| LMS - Rank | `lastManStanding` |
| PvP Arena - Rank | `pvpArena` |
| Soul Wars Zeal | `soulWarsZeal` |
| Rifts closed | `riftsClosed` |
| Colosseum Glory | `colosseumGlory` |
| Minigame | Param |
| ------------------------------- | :-----------------: |
| Bounty Hunter (Legacy - Rogue) | `rogueBH` |
| Bounty Hunter (Legacy - Hunter) | `hunterBH` |
| Bounty Hunter (Rogue) | `rogueBHV2` |
| Bounty Hunter (Hunter) | `hunterBHV2` |
| LMS - Rank | `lastManStanding` |
| PvP Arena - Rank | `pvpArena` |
| Soul Wars Zeal | `soulWarsZeal` |
| Rifts closed | `riftsClosed` |
| Colosseum Glory | `colosseumGlory` |
| Collections Logged | `collectionsLogged` |
### Points
@@ -164,6 +165,7 @@ Activities consist of all levels of clue scrolls as well as minigames and bosses
| The Corrupted Gauntlet | `corruptedGauntlet` |
| The Hueycoatl | `hueycoatl` |
| The Leviathan | `leviathan` |
| The Royal Titans | `royalTitans` |
| The Whisperer | `whisperer` |
| Theatre Of Blood | `theatreOfBlood` |
| Theatre Of Blood: Hard Mode | `theatreOfBloodHardMode` |
@@ -205,6 +207,8 @@ Activities consist of all levels of clue scrolls as well as minigames and bosses
pvpArena: {},
soulWarsZeal: {},
riftsClosed: {},
colosseumGlory: {},
collectionsLogged: {},
bosses: {}
}
}

View File

@@ -1,106 +1,108 @@
2130,2277,1102428578
22624,99,32956104
3574,99,47147957
1226,99,200000000
1454,99,180249986
3112,99,155438899
2533,99,17520811
2078,99,84629930
150276,99,13378420
23833,99,19182079
61715,99,13456926
24604,99,16672148
19900,99,19161337
53450,99,14082613
12063,99,16553015
32871,99,14985851
39747,99,13346314
8390,99,15771711
55848,99,14322777
1723,99,52832158
2107,99,101923913
5301,99,22739376
20087,99,18044758
1301,99,18031495
2210,2277,1150073045
23988,99,33320012
3114,99,51215128
1203,99,200000000
1372,99,196290925
3458,99,159426771
2746,99,17744970
2031,99,91566360
161852,99,13386665
25801,99,19461878
64826,99,13473417
26528,99,16672481
20829,99,19483653
58378,99,14103220
13188,99,16573909
36283,99,15061037
17137,99,14670565
8751,99,16169665
60803,99,14390315
1718,99,57850681
2117,99,110369178
5540,99,22739567
22326,99,18052465
1467,99,18050183
-1,-1
-1,-1
32847,10
16567,3
147262,8
101823,7
382,9739
1265,825
131,6000
2401,1606
43386,311
799,460
945,537
5531,5516
38135,10
19368,3
146220,8
100923,7
433,9802
1542,825
158,6000
2572,1606
47979,311
1081,460
880,600
4258,6785
-1,-1
7538,14780
6781,1060
6880,43487
3193,2192
2932,4796
123,6789
37,111
44605,143
4023,1830
238149,5
47139,293
98811,58
10766,2657
200557,34
1735,692
23548,215
43337,116
61439,287
2859,2000
53841,106
18420,1078
23824,1062
18418,1088
85908,25
6077,1320
21980,1228
76561,477
774,3642
7917,281
2313,2046
52832,580
64296,2899
4205,1740
2681,1444
3424,324
523,48
35420,626
4162,749
5046,500
1218,217
21243,379
40733,249
53931,91
4870,1245
174877,29
2122,49
3471,1569
50947,273
236110,7
102423,201
2344,21039
10174,666
665,2072
23177,310
1967,419
8495,3066
122123,37
240,1537
7756,7
140561,8
4736,2113
249,7096
89194,51
15067,2780
975929,62
196393,25
227062,340
7596,14780
8124,1060
10438,43487
1114,1155
3497,2192
3204,4796
1087,984
2230,2328
51533,143
4243,1830
256985,5
54424,293
114691,58
11700,2657
211708,34
1779,736
24958,215
46504,116
66096,287
3133,2000
26682,198
19337,1078
25021,1062
19290,1088
89474,25
7535,1320
23251,1228
82016,477
876,3642
7073,310
2476,2046
55411,580
68801,2899
4608,1740
3079,1444
8344,324
540,53
38395,626
4176,749
5519,500
1394,217
26127,379
49730,249
57206,91
6106,1245
185920,29
3232,49
4276,1569
57314,273
256794,7
113862,201
1969,538
12346,671
5606,149
550,2450
25557,310
1391,538
9325,3066
131996,37
214,1720
8902,7
148385,8
6120,2113
287,7096
97368,51
15591,2780
1000405,67
213696,25
240082,340
1 2130 2210 2277 1102428578 1150073045
2 22624 23988 99 32956104 33320012
3 3574 3114 99 47147957 51215128
4 1226 1203 99 200000000 200000000
5 1454 1372 99 180249986 196290925
6 3112 3458 99 155438899 159426771
7 2533 2746 99 17520811 17744970
8 2078 2031 99 84629930 91566360
9 150276 161852 99 13378420 13386665
10 23833 25801 99 19182079 19461878
11 61715 64826 99 13456926 13473417
12 24604 26528 99 16672148 16672481
13 19900 20829 99 19161337 19483653
14 53450 58378 99 14082613 14103220
15 12063 13188 99 16553015 16573909
16 32871 36283 99 14985851 15061037
17 39747 17137 99 13346314 14670565
18 8390 8751 99 15771711 16169665
19 55848 60803 99 14322777 14390315
20 1723 1718 99 52832158 57850681
21 2107 2117 99 101923913 110369178
22 5301 5540 99 22739376 22739567
23 20087 22326 99 18044758 18052465
24 1301 1467 99 18031495 18050183
25 -1 -1 -1
26 -1 -1 -1
27 32847 38135 10
28 16567 19368 3
29 147262 146220 8
30 101823 100923 7
31 382 433 9739 9802
32 1265 1542 825
33 131 158 6000
34 2401 2572 1606
35 43386 47979 311
36 799 1081 460
37 945 880 537 600
38 5531 4258 5516 6785
39 -1 -1 -1
40 7538 7596 14780
41 6781 8124 1060
42 6880 10438 43487
43 3193 1114 2192 1155
44 2932 3497 4796 2192
45 123 3204 6789 4796
46 37 1087 111 984
47 44605 2230 143 2328
48 4023 51533 1830 143
49 238149 4243 5 1830
50 47139 256985 293 5
51 98811 54424 58 293
52 10766 114691 2657 58
53 200557 11700 34 2657
54 1735 211708 692 34
55 23548 1779 215 736
56 43337 24958 116 215
57 61439 46504 287 116
58 2859 66096 2000 287
59 53841 3133 106 2000
60 18420 26682 1078 198
61 23824 19337 1062 1078
62 18418 25021 1088 1062
63 85908 19290 25 1088
64 6077 89474 1320 25
65 21980 7535 1228 1320
66 76561 23251 477 1228
67 774 82016 3642 477
68 7917 876 281 3642
69 2313 7073 2046 310
70 52832 2476 580 2046
71 64296 55411 2899 580
72 4205 68801 1740 2899
73 2681 4608 1444 1740
74 3424 3079 324 1444
75 523 8344 48 324
76 35420 540 626 53
77 4162 38395 749 626
78 5046 4176 500 749
79 1218 5519 217 500
80 21243 1394 379 217
81 40733 26127 249 379
82 53931 49730 91 249
83 4870 57206 1245 91
84 174877 6106 29 1245
85 2122 185920 49 29
86 3471 3232 1569 49
87 50947 4276 273 1569
88 236110 57314 7 273
89 102423 256794 201 7
90 2344 113862 21039 201
91 10174 1969 666 538
92 665 12346 2072 671
93 23177 5606 310 149
94 1967 550 419 2450
95 8495 25557 3066 310
96 122123 1391 37 538
97 240 9325 1537 3066
98 7756 131996 7 37
99 140561 214 8 1720
100 4736 8902 2113 7
101 249 148385 7096 8
102 89194 6120 51 2113
103 15067 287 2780 7096
104 975929 97368 62 51
105 196393 15591 25 2780
106 227062 1000405 340 67
107 213696 25
108 240082 340

File diff suppressed because it is too large Load Diff

View File

@@ -103,6 +103,7 @@ test('Parse CSV to json', () => {
37,225
25,1110
7827,43249
1114,1155
382,2780
944,3000
561,398429
@@ -152,6 +153,7 @@ test('Parse CSV to json', () => {
2870,6
891,9102
2871,7
5606,149
2872,8
6984,138
23,923141
@@ -208,6 +210,7 @@ test('Parse CSV to json', () => {
soulWarsZeal: { rank: 37, score: 225 },
riftsClosed: { rank: 25, score: 1110 },
colosseumGlory: { rank: 7827, score: 43249 },
collectionsLogged: { rank: 1114, score: 1155 },
clues: {
all: { rank: 32, score: 12148 },
beginner: { rank: 3105, score: 76 },
@@ -267,6 +270,7 @@ test('Parse CSV to json', () => {
corruptedGauntlet: { rank: 2870, score: 6 },
hueycoatl: { rank: 891, score: 9102 },
leviathan: { rank: 2871, score: 7 },
royalTitans: { rank: 5606, score: 149 },
whisperer: { rank: 2872, score: 8 },
theatreOfBlood: { rank: 6984, score: 138 },
theatreOfBloodHardMode: { rank: 23, score: 923141 },

View File

@@ -59,7 +59,7 @@
{
"id": 8,
"name": "Cooking",
"rank": 154,
"rank": 149,
"level": 99,
"xp": 200000000
},
@@ -108,7 +108,7 @@
{
"id": 15,
"name": "Mining",
"rank": 24,
"rank": 23,
"level": 99,
"xp": 200000000
},
@@ -157,7 +157,7 @@
{
"id": 22,
"name": "Hunter",
"rank": 4,
"rank": 3,
"level": 99,
"xp": 200000000
},
@@ -209,7 +209,7 @@
{
"id": 6,
"name": "Clue Scrolls (all)",
"rank": 832420,
"rank": 937868,
"score": 22
},
{
@@ -233,7 +233,7 @@
{
"id": 10,
"name": "Clue Scrolls (hard)",
"rank": 517091,
"rank": 578038,
"score": 22
},
{
@@ -280,387 +280,399 @@
},
{
"id": 18,
"name": "Abyssal Sire",
"name": "Collections Logged",
"rank": -1,
"score": -1
},
{
"id": 19,
"name": "Alchemical Hydra",
"name": "Abyssal Sire",
"rank": -1,
"score": -1
},
{
"id": 20,
"name": "Amoxliatl",
"name": "Alchemical Hydra",
"rank": -1,
"score": -1
},
{
"id": 21,
"name": "Araxxor",
"name": "Amoxliatl",
"rank": -1,
"score": -1
},
{
"id": 22,
"name": "Artio",
"name": "Araxxor",
"rank": -1,
"score": -1
},
{
"id": 23,
"name": "Barrows Chests",
"name": "Artio",
"rank": -1,
"score": -1
},
{
"id": 24,
"name": "Bryophyta",
"name": "Barrows Chests",
"rank": -1,
"score": -1
},
{
"id": 25,
"name": "Callisto",
"name": "Bryophyta",
"rank": -1,
"score": -1
},
{
"id": 26,
"name": "Calvar'ion",
"name": "Callisto",
"rank": -1,
"score": -1
},
{
"id": 27,
"name": "Cerberus",
"name": "Calvar'ion",
"rank": -1,
"score": -1
},
{
"id": 28,
"name": "Chambers of Xeric",
"name": "Cerberus",
"rank": -1,
"score": -1
},
{
"id": 29,
"name": "Chambers of Xeric: Challenge Mode",
"name": "Chambers of Xeric",
"rank": -1,
"score": -1
},
{
"id": 30,
"name": "Chaos Elemental",
"name": "Chambers of Xeric: Challenge Mode",
"rank": -1,
"score": -1
},
{
"id": 31,
"name": "Chaos Fanatic",
"name": "Chaos Elemental",
"rank": -1,
"score": -1
},
{
"id": 32,
"name": "Commander Zilyana",
"name": "Chaos Fanatic",
"rank": -1,
"score": -1
},
{
"id": 33,
"name": "Corporeal Beast",
"name": "Commander Zilyana",
"rank": -1,
"score": -1
},
{
"id": 34,
"name": "Crazy Archaeologist",
"name": "Corporeal Beast",
"rank": -1,
"score": -1
},
{
"id": 35,
"name": "Dagannoth Prime",
"name": "Crazy Archaeologist",
"rank": -1,
"score": -1
},
{
"id": 36,
"name": "Dagannoth Rex",
"name": "Dagannoth Prime",
"rank": -1,
"score": -1
},
{
"id": 37,
"name": "Dagannoth Supreme",
"name": "Dagannoth Rex",
"rank": -1,
"score": -1
},
{
"id": 38,
"name": "Deranged Archaeologist",
"name": "Dagannoth Supreme",
"rank": -1,
"score": -1
},
{
"id": 39,
"name": "Duke Sucellus",
"name": "Deranged Archaeologist",
"rank": -1,
"score": -1
},
{
"id": 40,
"name": "General Graardor",
"name": "Duke Sucellus",
"rank": -1,
"score": -1
},
{
"id": 41,
"name": "Giant Mole",
"name": "General Graardor",
"rank": -1,
"score": -1
},
{
"id": 42,
"name": "Grotesque Guardians",
"name": "Giant Mole",
"rank": -1,
"score": -1
},
{
"id": 43,
"name": "Hespori",
"name": "Grotesque Guardians",
"rank": -1,
"score": -1
},
{
"id": 44,
"name": "Kalphite Queen",
"name": "Hespori",
"rank": -1,
"score": -1
},
{
"id": 45,
"name": "King Black Dragon",
"name": "Kalphite Queen",
"rank": -1,
"score": -1
},
{
"id": 46,
"name": "Kraken",
"name": "King Black Dragon",
"rank": -1,
"score": -1
},
{
"id": 47,
"name": "Kree'Arra",
"name": "Kraken",
"rank": -1,
"score": -1
},
{
"id": 48,
"name": "K'ril Tsutsaroth",
"name": "Kree'Arra",
"rank": -1,
"score": -1
},
{
"id": 49,
"name": "Lunar Chests",
"name": "K'ril Tsutsaroth",
"rank": -1,
"score": -1
},
{
"id": 50,
"name": "Mimic",
"name": "Lunar Chests",
"rank": -1,
"score": -1
},
{
"id": 51,
"name": "Nex",
"name": "Mimic",
"rank": -1,
"score": -1
},
{
"id": 52,
"name": "Nightmare",
"name": "Nex",
"rank": -1,
"score": -1
},
{
"id": 53,
"name": "Phosani's Nightmare",
"name": "Nightmare",
"rank": -1,
"score": -1
},
{
"id": 54,
"name": "Obor",
"name": "Phosani's Nightmare",
"rank": -1,
"score": -1
},
{
"id": 55,
"name": "Phantom Muspah",
"name": "Obor",
"rank": -1,
"score": -1
},
{
"id": 56,
"name": "Sarachnis",
"name": "Phantom Muspah",
"rank": -1,
"score": -1
},
{
"id": 57,
"name": "Scorpia",
"name": "Sarachnis",
"rank": -1,
"score": -1
},
{
"id": 58,
"name": "Scurrius",
"name": "Scorpia",
"rank": -1,
"score": -1
},
{
"id": 59,
"name": "Skotizo",
"name": "Scurrius",
"rank": -1,
"score": -1
},
{
"id": 60,
"name": "Sol Heredit",
"name": "Skotizo",
"rank": -1,
"score": -1
},
{
"id": 61,
"name": "Spindel",
"name": "Sol Heredit",
"rank": -1,
"score": -1
},
{
"id": 62,
"name": "Tempoross",
"name": "Spindel",
"rank": -1,
"score": -1
},
{
"id": 63,
"name": "The Gauntlet",
"name": "Tempoross",
"rank": -1,
"score": -1
},
{
"id": 64,
"name": "The Corrupted Gauntlet",
"name": "The Gauntlet",
"rank": -1,
"score": -1
},
{
"id": 65,
"name": "The Hueycoatl",
"name": "The Corrupted Gauntlet",
"rank": -1,
"score": -1
},
{
"id": 66,
"name": "The Leviathan",
"name": "The Hueycoatl",
"rank": -1,
"score": -1
},
{
"id": 67,
"name": "The Whisperer",
"name": "The Leviathan",
"rank": -1,
"score": -1
},
{
"id": 68,
"name": "Theatre of Blood",
"name": "The Royal Titans",
"rank": -1,
"score": -1
},
{
"id": 69,
"name": "Theatre of Blood: Hard Mode",
"name": "The Whisperer",
"rank": -1,
"score": -1
},
{
"id": 70,
"name": "Thermonuclear Smoke Devil",
"name": "Theatre of Blood",
"rank": -1,
"score": -1
},
{
"id": 71,
"name": "Tombs of Amascut",
"name": "Theatre of Blood: Hard Mode",
"rank": -1,
"score": -1
},
{
"id": 72,
"name": "Tombs of Amascut: Expert Mode",
"name": "Thermonuclear Smoke Devil",
"rank": -1,
"score": -1
},
{
"id": 73,
"name": "TzKal-Zuk",
"name": "Tombs of Amascut",
"rank": -1,
"score": -1
},
{
"id": 74,
"name": "TzTok-Jad",
"rank": 251,
"score": 186
"name": "Tombs of Amascut: Expert Mode",
"rank": -1,
"score": -1
},
{
"id": 75,
"name": "Vardorvis",
"name": "TzKal-Zuk",
"rank": -1,
"score": -1
},
{
"id": 76,
"name": "Venenatis",
"rank": -1,
"score": -1
"name": "TzTok-Jad",
"rank": 317,
"score": 186
},
{
"id": 77,
"name": "Vet'ion",
"name": "Vardorvis",
"rank": -1,
"score": -1
},
{
"id": 78,
"name": "Vorkath",
"name": "Venenatis",
"rank": -1,
"score": -1
},
{
"id": 79,
"name": "Wintertodt",
"name": "Vet'ion",
"rank": -1,
"score": -1
},
{
"id": 80,
"name": "Zalcano",
"name": "Vorkath",
"rank": -1,
"score": -1
},
{
"id": 81,
"name": "Wintertodt",
"rank": -1,
"score": -1
},
{
"id": 82,
"name": "Zalcano",
"rank": -1,
"score": -1
},
{
"id": 83,
"name": "Zulrah",
"rank": -1,
"score": -1
}
]
}
}

View File

@@ -45,7 +45,8 @@ import {
FORMATTED_SOUL_WARS,
FORMATTED_RIFTS_CLOSED,
FORMATTED_DEADMAN_POINTS,
FORMATTED_COLOSSEUM_GLORY
FORMATTED_COLOSSEUM_GLORY,
FORMATTED_COLLECTIONS_LOGGED
} from './utils';
/**
@@ -164,6 +165,7 @@ export function parseJsonStats(json: HiscoresResponse): Stats {
const soulWarsZeal = getActivity(FORMATTED_SOUL_WARS);
const riftsClosed = getActivity(FORMATTED_RIFTS_CLOSED);
const colosseumGlory = getActivity(FORMATTED_COLOSSEUM_GLORY);
const collectionsLogged = getActivity(FORMATTED_COLLECTIONS_LOGGED);
const stats: Stats = {
skills,
@@ -175,6 +177,7 @@ export function parseJsonStats(json: HiscoresResponse): Stats {
soulWarsZeal,
riftsClosed,
colosseumGlory,
collectionsLogged,
clues,
bosses
};
@@ -224,8 +227,14 @@ export function parseStats(csv: string): Stats {
const [leaguePoints, deadmanPoints] = activityObjects.splice(0, 2);
const bhObjects = activityObjects.splice(0, BH_MODES.length);
const clueObjects = activityObjects.splice(0, CLUES.length);
const [lastManStanding, pvpArena, soulWarsZeal, riftsClosed, colosseumGlory] =
activityObjects.splice(0, 5);
const [
lastManStanding,
pvpArena,
soulWarsZeal,
riftsClosed,
colosseumGlory,
collectionsLogged
] = activityObjects.splice(0, 6);
const bossObjects = activityObjects.splice(0, BOSSES.length);
const skills: Skills = skillObjects.reduce<Skills>((prev, curr, index) => {
@@ -262,6 +271,7 @@ export function parseStats(csv: string): Stats {
soulWarsZeal,
riftsClosed,
colosseumGlory,
collectionsLogged,
clues,
bosses
};

View File

@@ -116,6 +116,7 @@ export type Boss =
| 'corruptedGauntlet'
| 'hueycoatl'
| 'leviathan'
| 'royalTitans'
| 'whisperer'
| 'theatreOfBlood'
| 'theatreOfBloodHardMode'
@@ -153,6 +154,7 @@ export type ActivityName =
| 'eliteClues'
| 'masterClues'
| 'colosseumGlory'
| 'collectionsLogged'
| Boss;
export interface Stats {
@@ -172,6 +174,7 @@ export interface Stats {
soulWarsZeal: Activity;
riftsClosed: Activity;
colosseumGlory: Activity;
collectionsLogged: Activity;
bosses: Bosses;
}
export type Modes = { [M in Gamemode]?: Stats };

View File

@@ -123,6 +123,7 @@ export const BOSSES: Boss[] = [
'corruptedGauntlet',
'hueycoatl',
'leviathan',
'royalTitans',
'whisperer',
'theatreOfBlood',
'theatreOfBloodHardMode',
@@ -158,6 +159,7 @@ export const ACTIVITIES: ActivityName[] = [
'soulWarsZeal',
'riftsClosed',
'colosseumGlory',
'collectionsLogged',
...BOSSES
];
@@ -215,6 +217,7 @@ export const FORMATTED_BOSS_NAMES: FormattedBossNames = {
corruptedGauntlet: 'The Corrupted Gauntlet',
hueycoatl: 'The Hueycoatl',
leviathan: 'The Leviathan',
royalTitans: 'The Royal Titans',
whisperer: 'The Whisperer',
theatreOfBlood: 'Theatre of Blood',
theatreOfBloodHardMode: 'Theatre of Blood: Hard Mode',
@@ -295,6 +298,7 @@ export const FORMATTED_LEAGUE_POINTS = 'League Points';
export const FORMATTED_DEADMAN_POINTS = 'Deadman Points';
export const FORMATTED_RIFTS_CLOSED = 'Rifts closed';
export const FORMATTED_COLOSSEUM_GLORY = 'Colosseum Glory';
export const FORMATTED_COLLECTIONS_LOGGED = 'Collections Logged';
export const INVALID_FORMAT_ERROR = 'Invalid hiscores format';
export const PLAYER_NOT_FOUND_ERROR = 'Player not found';