@wise-old-man/utils 1.0.8 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{competitions.d.ts → lib/competitions.d.ts} +0 -0
- package/dist/{competitions.js → lib/competitions.js} +2 -2
- package/dist/lib/competitions.js.map +1 -0
- package/dist/{countries.d.ts → lib/countries.d.ts} +0 -0
- package/dist/{countries.js → lib/countries.js} +0 -0
- package/dist/lib/countries.js.map +1 -0
- package/dist/{experience.d.ts → lib/experience.d.ts} +3 -2
- package/dist/{experience.js → lib/experience.js} +4 -2
- package/dist/lib/experience.js.map +1 -0
- package/dist/{groups.d.ts → lib/groups.d.ts} +2 -1
- package/dist/{groups.js → lib/groups.js} +4 -2
- package/dist/lib/groups.js.map +1 -0
- package/dist/{index.d.ts → lib/index.d.ts} +0 -0
- package/dist/{index.js → lib/index.js} +0 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/{metrics.d.ts → lib/metrics.d.ts} +796 -128
- package/dist/{metrics.js → lib/metrics.js} +18 -17
- package/dist/lib/metrics.js.map +1 -0
- package/dist/{numbers.d.ts → lib/numbers.d.ts} +0 -0
- package/dist/{numbers.js → lib/numbers.js} +0 -0
- package/dist/lib/numbers.js.map +1 -0
- package/dist/{periods.d.ts → lib/periods.d.ts} +0 -0
- package/dist/{periods.js → lib/periods.js} +1 -1
- package/dist/lib/periods.js.map +1 -0
- package/dist/{players.d.ts → lib/players.d.ts} +0 -0
- package/dist/{players.js → lib/players.js} +3 -2
- package/dist/lib/players.js.map +1 -0
- package/dist/lib/strings.d.ts +3 -0
- package/dist/{strings.js → lib/strings.js} +1 -7
- package/dist/lib/strings.js.map +1 -0
- package/package.json +12 -4
- package/.prettierrc +0 -7
- package/dist/competitions.js.map +0 -1
- package/dist/countries.js.map +0 -1
- package/dist/experience.js.map +0 -1
- package/dist/groups.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/metrics.js.map +0 -1
- package/dist/numbers.js.map +0 -1
- package/dist/periods.js.map +0 -1
- package/dist/players.js.map +0 -1
- package/dist/strings.d.ts +0 -3
- package/dist/strings.js.map +0 -1
- package/src/competitions.ts +0 -54
- package/src/countries.ts +0 -275
- package/src/experience.ts +0 -77
- package/src/groups.ts +0 -555
- package/src/index.ts +0 -9
- package/src/metrics.ts +0 -629
- package/src/numbers.ts +0 -5
- package/src/periods.ts +0 -67
- package/src/players.ts +0 -76
- package/src/strings.ts +0 -34
- package/tsconfig.json +0 -16
package/src/countries.ts
DELETED
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
const COUNTRIES = [
|
|
2
|
-
{ code: 'AD', name: 'Andorra' },
|
|
3
|
-
{ code: 'AE', name: 'United Arab Emirates' },
|
|
4
|
-
{ code: 'AF', name: 'Afghanistan' },
|
|
5
|
-
{ code: 'AG', name: 'Antigua and Barbuda' },
|
|
6
|
-
{ code: 'AI', name: 'Anguilla' },
|
|
7
|
-
{ code: 'AL', name: 'Albania' },
|
|
8
|
-
{ code: 'AM', name: 'Armenia' },
|
|
9
|
-
{ code: 'AO', name: 'Angola' },
|
|
10
|
-
{ code: 'AQ', name: 'Antarctica' },
|
|
11
|
-
{ code: 'AR', name: 'Argentina' },
|
|
12
|
-
{ code: 'AS', name: 'American Samoa' },
|
|
13
|
-
{ code: 'AT', name: 'Austria' },
|
|
14
|
-
{ code: 'AU', name: 'Australia' },
|
|
15
|
-
{ code: 'AW', name: 'Aruba' },
|
|
16
|
-
{ code: 'AX', name: 'Åland Islands' },
|
|
17
|
-
{ code: 'AZ', name: 'Azerbaijan' },
|
|
18
|
-
{ code: 'BA', name: 'Bosnia and Herzegovina' },
|
|
19
|
-
{ code: 'BB', name: 'Barbados' },
|
|
20
|
-
{ code: 'BD', name: 'Bangladesh' },
|
|
21
|
-
{ code: 'BE', name: 'Belgium' },
|
|
22
|
-
{ code: 'BF', name: 'Burkina Faso' },
|
|
23
|
-
{ code: 'BG', name: 'Bulgaria' },
|
|
24
|
-
{ code: 'BH', name: 'Bahrain' },
|
|
25
|
-
{ code: 'BI', name: 'Burundi' },
|
|
26
|
-
{ code: 'BJ', name: 'Benin' },
|
|
27
|
-
{ code: 'BL', name: 'Saint Barthélemy' },
|
|
28
|
-
{ code: 'BM', name: 'Bermuda' },
|
|
29
|
-
{ code: 'BN', name: 'Brunei Darussalam' },
|
|
30
|
-
{ code: 'BO', name: 'Bolivia' },
|
|
31
|
-
{ code: 'BQ', name: 'Bonaire' },
|
|
32
|
-
{ code: 'BR', name: 'Brazil' },
|
|
33
|
-
{ code: 'BS', name: 'Bahamas' },
|
|
34
|
-
{ code: 'BT', name: 'Bhutan' },
|
|
35
|
-
{ code: 'BV', name: 'Bouvet Island' },
|
|
36
|
-
{ code: 'BW', name: 'Botswana' },
|
|
37
|
-
{ code: 'BY', name: 'Belarus' },
|
|
38
|
-
{ code: 'BZ', name: 'Belize' },
|
|
39
|
-
{ code: 'CA', name: 'Canada' },
|
|
40
|
-
{ code: 'CC', name: 'Cocos (Keeling) Islands' },
|
|
41
|
-
{ code: 'CD', name: 'Congo' },
|
|
42
|
-
{ code: 'CF', name: 'Central African Republic' },
|
|
43
|
-
{ code: 'CG', name: 'Congo' },
|
|
44
|
-
{ code: 'CH', name: 'Switzerland' },
|
|
45
|
-
{ code: 'CI', name: "Côte d'Ivoire" },
|
|
46
|
-
{ code: 'CK', name: 'Cook Islands' },
|
|
47
|
-
{ code: 'CL', name: 'Chile' },
|
|
48
|
-
{ code: 'CM', name: 'Cameroon' },
|
|
49
|
-
{ code: 'CN', name: 'China' },
|
|
50
|
-
{ code: 'CO', name: 'Colombia' },
|
|
51
|
-
{ code: 'CR', name: 'Costa Rica' },
|
|
52
|
-
{ code: 'CU', name: 'Cuba' },
|
|
53
|
-
{ code: 'CV', name: 'Cabo Verde' },
|
|
54
|
-
{ code: 'CW', name: 'Curaçao' },
|
|
55
|
-
{ code: 'CX', name: 'Christmas Island' },
|
|
56
|
-
{ code: 'CY', name: 'Cyprus' },
|
|
57
|
-
{ code: 'CZ', name: 'Czechia' },
|
|
58
|
-
{ code: 'DE', name: 'Germany' },
|
|
59
|
-
{ code: 'DJ', name: 'Djibouti' },
|
|
60
|
-
{ code: 'DK', name: 'Denmark' },
|
|
61
|
-
{ code: 'DM', name: 'Dominica' },
|
|
62
|
-
{ code: 'DO', name: 'Dominican Republic' },
|
|
63
|
-
{ code: 'DZ', name: 'Algeria' },
|
|
64
|
-
{ code: 'EC', name: 'Ecuador' },
|
|
65
|
-
{ code: 'EE', name: 'Estonia' },
|
|
66
|
-
{ code: 'EG', name: 'Egypt' },
|
|
67
|
-
{ code: 'EH', name: 'Western Sahara' },
|
|
68
|
-
{ code: 'ER', name: 'Eritrea' },
|
|
69
|
-
{ code: 'ES', name: 'Spain' },
|
|
70
|
-
{ code: 'ET', name: 'Ethiopia' },
|
|
71
|
-
{ code: 'FI', name: 'Finland' },
|
|
72
|
-
{ code: 'FJ', name: 'Fiji' },
|
|
73
|
-
{ code: 'FK', name: 'Falkland Islands (Malvinas)' },
|
|
74
|
-
{ code: 'FM', name: 'Micronesia (Federated States of)' },
|
|
75
|
-
{ code: 'FO', name: 'Faroe Islands' },
|
|
76
|
-
{ code: 'FR', name: 'France' },
|
|
77
|
-
{ code: 'GA', name: 'Gabon' },
|
|
78
|
-
{ code: 'GB', name: 'United Kingdom' },
|
|
79
|
-
{ code: 'GD', name: 'Grenada' },
|
|
80
|
-
{ code: 'GE', name: 'Georgia' },
|
|
81
|
-
{ code: 'GF', name: 'French Guiana' },
|
|
82
|
-
{ code: 'GG', name: 'Guernsey' },
|
|
83
|
-
{ code: 'GH', name: 'Ghana' },
|
|
84
|
-
{ code: 'GI', name: 'Gibraltar' },
|
|
85
|
-
{ code: 'GL', name: 'Greenland' },
|
|
86
|
-
{ code: 'GM', name: 'Gambia' },
|
|
87
|
-
{ code: 'GN', name: 'Guinea' },
|
|
88
|
-
{ code: 'GP', name: 'Guadeloupe' },
|
|
89
|
-
{ code: 'GQ', name: 'Equatorial Guinea' },
|
|
90
|
-
{ code: 'GR', name: 'Greece' },
|
|
91
|
-
{ code: 'GS', name: 'South Georgia and the South Sandwich Islands' },
|
|
92
|
-
{ code: 'GT', name: 'Guatemala' },
|
|
93
|
-
{ code: 'GU', name: 'Guam' },
|
|
94
|
-
{ code: 'GW', name: 'Guinea-Bissau' },
|
|
95
|
-
{ code: 'GY', name: 'Guyana' },
|
|
96
|
-
{ code: 'HK', name: 'Hong Kong' },
|
|
97
|
-
{ code: 'HM', name: 'Heard Island and McDonald Islands' },
|
|
98
|
-
{ code: 'HN', name: 'Honduras' },
|
|
99
|
-
{ code: 'HR', name: 'Croatia' },
|
|
100
|
-
{ code: 'HT', name: 'Haiti' },
|
|
101
|
-
{ code: 'HU', name: 'Hungary' },
|
|
102
|
-
{ code: 'ID', name: 'Indonesia' },
|
|
103
|
-
{ code: 'IE', name: 'Ireland' },
|
|
104
|
-
{ code: 'IL', name: 'Israel' },
|
|
105
|
-
{ code: 'IM', name: 'Isle of Man' },
|
|
106
|
-
{ code: 'IN', name: 'India' },
|
|
107
|
-
{ code: 'IO', name: 'British Indian Ocean Territory' },
|
|
108
|
-
{ code: 'IQ', name: 'Iraq' },
|
|
109
|
-
{ code: 'IR', name: 'Iran (Islamic Republic of)' },
|
|
110
|
-
{ code: 'IS', name: 'Iceland' },
|
|
111
|
-
{ code: 'IT', name: 'Italy' },
|
|
112
|
-
{ code: 'JE', name: 'Jersey' },
|
|
113
|
-
{ code: 'JM', name: 'Jamaica' },
|
|
114
|
-
{ code: 'JO', name: 'Jordan' },
|
|
115
|
-
{ code: 'JP', name: 'Japan' },
|
|
116
|
-
{ code: 'KE', name: 'Kenya' },
|
|
117
|
-
{ code: 'KG', name: 'Kyrgyzstan' },
|
|
118
|
-
{ code: 'KH', name: 'Cambodia' },
|
|
119
|
-
{ code: 'KI', name: 'Kiribati' },
|
|
120
|
-
{ code: 'KM', name: 'Comoros' },
|
|
121
|
-
{ code: 'KN', name: 'Saint Kitts and Nevis' },
|
|
122
|
-
{ code: 'KP', name: "Korea (Democratic People's Republic of)" },
|
|
123
|
-
{ code: 'KR', name: 'Korea' },
|
|
124
|
-
{ code: 'KW', name: 'Kuwait' },
|
|
125
|
-
{ code: 'KY', name: 'Cayman Islands' },
|
|
126
|
-
{ code: 'KZ', name: 'Kazakhstan' },
|
|
127
|
-
{ code: 'LA', name: "Lao People's Democratic Republic" },
|
|
128
|
-
{ code: 'LB', name: 'Lebanon' },
|
|
129
|
-
{ code: 'LC', name: 'Saint Lucia' },
|
|
130
|
-
{ code: 'LI', name: 'Liechtenstein' },
|
|
131
|
-
{ code: 'LK', name: 'Sri Lanka' },
|
|
132
|
-
{ code: 'LR', name: 'Liberia' },
|
|
133
|
-
{ code: 'LS', name: 'Lesotho' },
|
|
134
|
-
{ code: 'LT', name: 'Lithuania' },
|
|
135
|
-
{ code: 'LU', name: 'Luxembourg' },
|
|
136
|
-
{ code: 'LV', name: 'Latvia' },
|
|
137
|
-
{ code: 'LY', name: 'Libya' },
|
|
138
|
-
{ code: 'MA', name: 'Morocco' },
|
|
139
|
-
{ code: 'MC', name: 'Monaco' },
|
|
140
|
-
{ code: 'MD', name: 'Moldova' },
|
|
141
|
-
{ code: 'ME', name: 'Montenegro' },
|
|
142
|
-
{ code: 'MF', name: 'Saint Martin (French part)' },
|
|
143
|
-
{ code: 'MG', name: 'Madagascar' },
|
|
144
|
-
{ code: 'MH', name: 'Marshall Islands' },
|
|
145
|
-
{ code: 'MK', name: 'North Macedonia' },
|
|
146
|
-
{ code: 'ML', name: 'Mali' },
|
|
147
|
-
{ code: 'MM', name: 'Myanmar' },
|
|
148
|
-
{ code: 'MN', name: 'Mongolia' },
|
|
149
|
-
{ code: 'MO', name: 'Macao' },
|
|
150
|
-
{ code: 'MP', name: 'Northern Mariana Islands' },
|
|
151
|
-
{ code: 'MQ', name: 'Martinique' },
|
|
152
|
-
{ code: 'MR', name: 'Mauritania' },
|
|
153
|
-
{ code: 'MS', name: 'Montserrat' },
|
|
154
|
-
{ code: 'MT', name: 'Malta' },
|
|
155
|
-
{ code: 'MU', name: 'Mauritius' },
|
|
156
|
-
{ code: 'MV', name: 'Maldives' },
|
|
157
|
-
{ code: 'MW', name: 'Malawi' },
|
|
158
|
-
{ code: 'MX', name: 'Mexico' },
|
|
159
|
-
{ code: 'MY', name: 'Malaysia' },
|
|
160
|
-
{ code: 'MZ', name: 'Mozambique' },
|
|
161
|
-
{ code: 'NA', name: 'Namibia' },
|
|
162
|
-
{ code: 'NC', name: 'New Caledonia' },
|
|
163
|
-
{ code: 'NE', name: 'Niger' },
|
|
164
|
-
{ code: 'NF', name: 'Norfolk Island' },
|
|
165
|
-
{ code: 'NG', name: 'Nigeria' },
|
|
166
|
-
{ code: 'NI', name: 'Nicaragua' },
|
|
167
|
-
{ code: 'NL', name: 'Netherlands' },
|
|
168
|
-
{ code: 'NO', name: 'Norway' },
|
|
169
|
-
{ code: 'NP', name: 'Nepal' },
|
|
170
|
-
{ code: 'NR', name: 'Nauru' },
|
|
171
|
-
{ code: 'NU', name: 'Niue' },
|
|
172
|
-
{ code: 'NZ', name: 'New Zealand' },
|
|
173
|
-
{ code: 'OM', name: 'Oman' },
|
|
174
|
-
{ code: 'PA', name: 'Panama' },
|
|
175
|
-
{ code: 'PE', name: 'Peru' },
|
|
176
|
-
{ code: 'PF', name: 'French Polynesia' },
|
|
177
|
-
{ code: 'PG', name: 'Papua New Guinea' },
|
|
178
|
-
{ code: 'PH', name: 'Philippines' },
|
|
179
|
-
{ code: 'PK', name: 'Pakistan' },
|
|
180
|
-
{ code: 'PL', name: 'Poland' },
|
|
181
|
-
{ code: 'PM', name: 'Saint Pierre and Miquelon' },
|
|
182
|
-
{ code: 'PN', name: 'Pitcairn' },
|
|
183
|
-
{ code: 'PR', name: 'Puerto Rico' },
|
|
184
|
-
{ code: 'PS', name: 'Palestine' },
|
|
185
|
-
{ code: 'PT', name: 'Portugal' },
|
|
186
|
-
{ code: 'PW', name: 'Palau' },
|
|
187
|
-
{ code: 'PY', name: 'Paraguay' },
|
|
188
|
-
{ code: 'QA', name: 'Qatar' },
|
|
189
|
-
{ code: 'RE', name: 'Réunion' },
|
|
190
|
-
{ code: 'RO', name: 'Romania' },
|
|
191
|
-
{ code: 'RS', name: 'Serbia' },
|
|
192
|
-
{ code: 'RU', name: 'Russian Federation' },
|
|
193
|
-
{ code: 'RW', name: 'Rwanda' },
|
|
194
|
-
{ code: 'SA', name: 'Saudi Arabia' },
|
|
195
|
-
{ code: 'SB', name: 'Solomon Islands' },
|
|
196
|
-
{ code: 'SC', name: 'Seychelles' },
|
|
197
|
-
{ code: 'SD', name: 'Sudan' },
|
|
198
|
-
{ code: 'SE', name: 'Sweden' },
|
|
199
|
-
{ code: 'SG', name: 'Singapore' },
|
|
200
|
-
{ code: 'SH', name: 'Saint Helena' },
|
|
201
|
-
{ code: 'SI', name: 'Slovenia' },
|
|
202
|
-
{ code: 'SJ', name: 'Svalbard and Jan Mayen' },
|
|
203
|
-
{ code: 'SK', name: 'Slovakia' },
|
|
204
|
-
{ code: 'SL', name: 'Sierra Leone' },
|
|
205
|
-
{ code: 'SM', name: 'San Marino' },
|
|
206
|
-
{ code: 'SN', name: 'Senegal' },
|
|
207
|
-
{ code: 'SO', name: 'Somalia' },
|
|
208
|
-
{ code: 'SR', name: 'Suriname' },
|
|
209
|
-
{ code: 'SS', name: 'South Sudan' },
|
|
210
|
-
{ code: 'ST', name: 'Sao Tome and Principe' },
|
|
211
|
-
{ code: 'SV', name: 'El Salvador' },
|
|
212
|
-
{ code: 'SX', name: 'Sint Maarten (Dutch part)' },
|
|
213
|
-
{ code: 'SY', name: 'Syrian Arab Republic' },
|
|
214
|
-
{ code: 'SZ', name: 'Eswatini' },
|
|
215
|
-
{ code: 'TC', name: 'Turks and Caicos Islands' },
|
|
216
|
-
{ code: 'TD', name: 'Chad' },
|
|
217
|
-
{ code: 'TF', name: 'French Southern Territories' },
|
|
218
|
-
{ code: 'TG', name: 'Togo' },
|
|
219
|
-
{ code: 'TH', name: 'Thailand' },
|
|
220
|
-
{ code: 'TJ', name: 'Tajikistan' },
|
|
221
|
-
{ code: 'TK', name: 'Tokelau' },
|
|
222
|
-
{ code: 'TL', name: 'Timor-Leste' },
|
|
223
|
-
{ code: 'TM', name: 'Turkmenistan' },
|
|
224
|
-
{ code: 'TN', name: 'Tunisia' },
|
|
225
|
-
{ code: 'TO', name: 'Tonga' },
|
|
226
|
-
{ code: 'TR', name: 'Turkey' },
|
|
227
|
-
{ code: 'TT', name: 'Trinidad and Tobago' },
|
|
228
|
-
{ code: 'TV', name: 'Tuvalu' },
|
|
229
|
-
{ code: 'TW', name: 'Taiwan' },
|
|
230
|
-
{ code: 'TZ', name: 'Tanzania' },
|
|
231
|
-
{ code: 'UA', name: 'Ukraine' },
|
|
232
|
-
{ code: 'UG', name: 'Uganda' },
|
|
233
|
-
{ code: 'UM', name: 'United States Minor Outlying Islands' },
|
|
234
|
-
{ code: 'US', name: 'United States of America' },
|
|
235
|
-
{ code: 'UY', name: 'Uruguay' },
|
|
236
|
-
{ code: 'UZ', name: 'Uzbekistan' },
|
|
237
|
-
{ code: 'VA', name: 'Holy See' },
|
|
238
|
-
{ code: 'VC', name: 'Saint Vincent and the Grenadines' },
|
|
239
|
-
{ code: 'VE', name: 'Venezuela (Bolivarian Republic of)' },
|
|
240
|
-
{ code: 'VG', name: 'Virgin Islands (British)' },
|
|
241
|
-
{ code: 'VI', name: 'Virgin Islands (U.S.)' },
|
|
242
|
-
{ code: 'VN', name: 'Viet Nam' },
|
|
243
|
-
{ code: 'VU', name: 'Vanuatu' },
|
|
244
|
-
{ code: 'WF', name: 'Wallis and Futuna' },
|
|
245
|
-
{ code: 'WS', name: 'Samoa' },
|
|
246
|
-
{ code: 'YE', name: 'Yemen' },
|
|
247
|
-
{ code: 'YT', name: 'Mayotte' },
|
|
248
|
-
{ code: 'ZA', name: 'South Africa' },
|
|
249
|
-
{ code: 'ZM', name: 'Zambia' },
|
|
250
|
-
{ code: 'ZW', name: 'Zimbabwe' }
|
|
251
|
-
];
|
|
252
|
-
|
|
253
|
-
const COMMON_ALIASES = [
|
|
254
|
-
{ commonIdentifier: 'UK', trueIdentifier: 'GB' },
|
|
255
|
-
{ commonIdentifier: 'USA', trueIdentifier: 'US' }
|
|
256
|
-
];
|
|
257
|
-
|
|
258
|
-
function findCountry(countryIdentifier: string) {
|
|
259
|
-
return findCountryByCode(countryIdentifier) || findCountryByName(countryIdentifier);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
function findCountryByName(countryName: string) {
|
|
263
|
-
return COUNTRIES.find(c => c.name.toUpperCase() === countryName.toUpperCase());
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
function findCountryByCode(countryCode: string) {
|
|
267
|
-
return COUNTRIES.find(c => c.code === replaceCommonAliases(countryCode.toUpperCase()));
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
function replaceCommonAliases(countryCode: string) {
|
|
271
|
-
if (!countryCode) return null;
|
|
272
|
-
return COMMON_ALIASES.find(ca => ca.commonIdentifier === countryCode)?.trueIdentifier || countryCode;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
export { COUNTRIES, findCountry, findCountryByCode, findCountryByName };
|
package/src/experience.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
// Maximum effective skill level at 13,034,431 experience.
|
|
2
|
-
const MAX_LEVEL = 99;
|
|
3
|
-
|
|
4
|
-
// The maximum virtual skill level for any skill (200M experience).
|
|
5
|
-
const MAX_VIRTUAL_LEVEL = 126;
|
|
6
|
-
|
|
7
|
-
// The maximum skill experience (200M experience).
|
|
8
|
-
const MAX_SKILL_EXP = 200_000_000;
|
|
9
|
-
|
|
10
|
-
// The minimum skill exp for level 99
|
|
11
|
-
const SKILL_EXP_AT_99 = 13034431;
|
|
12
|
-
|
|
13
|
-
// The maximum skill at exactly 99 on all skills
|
|
14
|
-
export const CAPPED_MAX_TOTAL_XP = 23 * SKILL_EXP_AT_99;
|
|
15
|
-
|
|
16
|
-
// Builds a lookup table for each level's required experience
|
|
17
|
-
// exp = XP_FOR_LEVEL[level - 1] || 13m = XP_FOR_LEVEL[98]
|
|
18
|
-
const XP_FOR_LEVEL = (function () {
|
|
19
|
-
let xp = 0;
|
|
20
|
-
const array: number[] = [];
|
|
21
|
-
|
|
22
|
-
for (let level = 1; level <= MAX_VIRTUAL_LEVEL; ++level) {
|
|
23
|
-
array[level - 1] = Math.floor(xp / 4);
|
|
24
|
-
xp += Math.floor(level + 300 * Math.pow(2, level / 7));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return array;
|
|
28
|
-
})();
|
|
29
|
-
|
|
30
|
-
function getExpForLevel(level: number): number {
|
|
31
|
-
if (level < 1 || level > MAX_VIRTUAL_LEVEL) return 0;
|
|
32
|
-
return XP_FOR_LEVEL[level - 1];
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function getLevel(exp: number, virtual = false): number {
|
|
36
|
-
if (exp < 0) {
|
|
37
|
-
return 1;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
let low = 0;
|
|
41
|
-
let high = virtual ? XP_FOR_LEVEL.length - 1 : 98;
|
|
42
|
-
|
|
43
|
-
while (low <= high) {
|
|
44
|
-
const mid = Math.floor(low + (high - low) / 2);
|
|
45
|
-
const xpForLevel = XP_FOR_LEVEL[mid];
|
|
46
|
-
|
|
47
|
-
if (exp < xpForLevel) {
|
|
48
|
-
high = mid - 1;
|
|
49
|
-
} else if (exp > xpForLevel) {
|
|
50
|
-
low = mid + 1;
|
|
51
|
-
} else {
|
|
52
|
-
return mid + 1;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return high + 1;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function getCombatLevel(
|
|
60
|
-
attack: number,
|
|
61
|
-
strength: number,
|
|
62
|
-
defence: number,
|
|
63
|
-
ranged: number,
|
|
64
|
-
magic: number,
|
|
65
|
-
hitpoints: number,
|
|
66
|
-
prayer: number
|
|
67
|
-
) {
|
|
68
|
-
if ([attack, strength, defence, ranged, magic, hitpoints, prayer].some(l => l === 0)) return 0;
|
|
69
|
-
|
|
70
|
-
const baseCombat = 0.25 * (defence + Math.max(hitpoints, 10) + Math.floor(prayer / 2));
|
|
71
|
-
const meleeCombat = 0.325 * (attack + strength);
|
|
72
|
-
const rangeCombat = 0.325 * Math.floor((3 * ranged) / 2);
|
|
73
|
-
const mageCombat = 0.325 * Math.floor((3 * magic) / 2);
|
|
74
|
-
return Math.floor(baseCombat + Math.max(meleeCombat, rangeCombat, mageCombat));
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export { MAX_LEVEL, MAX_VIRTUAL_LEVEL, MAX_SKILL_EXP, getExpForLevel, getLevel, getCombatLevel };
|