@d2runewizard/d2s 2.0.36

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.
Files changed (53) hide show
  1. package/README.md +59 -0
  2. package/lib/binary/bitreader.d.ts +22 -0
  3. package/lib/binary/bitreader.js +100 -0
  4. package/lib/binary/bitreader.js.map +1 -0
  5. package/lib/binary/bitwriter.d.ts +21 -0
  6. package/lib/binary/bitwriter.js +118 -0
  7. package/lib/binary/bitwriter.js.map +1 -0
  8. package/lib/binary/constants.d.ts +4 -0
  9. package/lib/binary/constants.js +9 -0
  10. package/lib/binary/constants.js.map +1 -0
  11. package/lib/d2/attribute_enhancer.d.ts +5 -0
  12. package/lib/d2/attribute_enhancer.js +593 -0
  13. package/lib/d2/attribute_enhancer.js.map +1 -0
  14. package/lib/d2/attributes.d.ts +4 -0
  15. package/lib/d2/attributes.js +99 -0
  16. package/lib/d2/attributes.js.map +1 -0
  17. package/lib/d2/constants.d.ts +4 -0
  18. package/lib/d2/constants.js +16 -0
  19. package/lib/d2/constants.js.map +1 -0
  20. package/lib/d2/d2s.d.ts +10 -0
  21. package/lib/d2/d2s.js +106 -0
  22. package/lib/d2/d2s.js.map +1 -0
  23. package/lib/d2/header.d.ts +8 -0
  24. package/lib/d2/header.js +95 -0
  25. package/lib/d2/header.js.map +1 -0
  26. package/lib/d2/items.d.ts +17 -0
  27. package/lib/d2/items.js +728 -0
  28. package/lib/d2/items.js.map +1 -0
  29. package/lib/d2/skills.d.ts +4 -0
  30. package/lib/d2/skills.js +45 -0
  31. package/lib/d2/skills.js.map +1 -0
  32. package/lib/d2/stash.d.ts +3 -0
  33. package/lib/d2/stash.js +196 -0
  34. package/lib/d2/stash.js.map +1 -0
  35. package/lib/d2/types.d.ts +402 -0
  36. package/lib/d2/types.js +15 -0
  37. package/lib/d2/types.js.map +1 -0
  38. package/lib/d2/versions/default_header.d.ts +5 -0
  39. package/lib/d2/versions/default_header.js +721 -0
  40. package/lib/d2/versions/default_header.js.map +1 -0
  41. package/lib/data/parser.d.ts +3 -0
  42. package/lib/data/parser.js +627 -0
  43. package/lib/data/parser.js.map +1 -0
  44. package/lib/data/versions/96_constant_data.d.ts +14427 -0
  45. package/lib/data/versions/96_constant_data.js +5 -0
  46. package/lib/data/versions/96_constant_data.js.map +1 -0
  47. package/lib/data/versions/99_constant_data.d.ts +15572 -0
  48. package/lib/data/versions/99_constant_data.js +5 -0
  49. package/lib/data/versions/99_constant_data.js.map +1 -0
  50. package/lib/index.d.ts +8 -0
  51. package/lib/index.js +47 -0
  52. package/lib/index.js.map +1 -0
  53. package/package.json +46 -0
@@ -0,0 +1,402 @@
1
+ export interface IConfig {
2
+ extendedStash?: boolean;
3
+ sortProperties?: boolean;
4
+ }
5
+ export interface IConstantData {
6
+ classes: any[];
7
+ skills: any[];
8
+ magic_prefixes: any[];
9
+ magic_suffixes: any[];
10
+ rare_names: any[];
11
+ armor_items: any;
12
+ weapon_items: any;
13
+ other_items: any;
14
+ stackables: any;
15
+ properties: any;
16
+ magical_properties: any[];
17
+ runewords: any[];
18
+ set_items: any[];
19
+ unq_items: any[];
20
+ }
21
+ export interface ID2S {
22
+ header: IHeader;
23
+ attributes: IAttributes;
24
+ item_bonuses: IMagicProperty[];
25
+ skills: ISkill[];
26
+ items: IItem[];
27
+ corpse_items: IItem[];
28
+ merc_items: IItem[];
29
+ golem_item: IItem;
30
+ is_dead: number;
31
+ }
32
+ export interface IAttributes {
33
+ [key: string]: number;
34
+ }
35
+ export interface IMenuAppearance {
36
+ graphic: number;
37
+ tint: number;
38
+ }
39
+ export interface ICharMenuAppearance {
40
+ head: IMenuAppearance;
41
+ torso: IMenuAppearance;
42
+ legs: IMenuAppearance;
43
+ right_arm: IMenuAppearance;
44
+ left_arm: IMenuAppearance;
45
+ right_hand: IMenuAppearance;
46
+ left_hand: IMenuAppearance;
47
+ shield: IMenuAppearance;
48
+ special1: IMenuAppearance;
49
+ special2: IMenuAppearance;
50
+ special3: IMenuAppearance;
51
+ special4: IMenuAppearance;
52
+ special5: IMenuAppearance;
53
+ special6: IMenuAppearance;
54
+ special7: IMenuAppearance;
55
+ special8: IMenuAppearance;
56
+ }
57
+ export interface IDifficulty {
58
+ Normal: number;
59
+ Nightmare: number;
60
+ Hell: number;
61
+ }
62
+ export interface INPC {
63
+ intro: boolean;
64
+ congrats: boolean;
65
+ }
66
+ export interface INPCS {
67
+ warriv_act_ii: INPC;
68
+ charsi: INPC;
69
+ warriv_act_i: INPC;
70
+ kashya: INPC;
71
+ akara: INPC;
72
+ gheed: INPC;
73
+ greiz: INPC;
74
+ jerhyn: INPC;
75
+ meshif_act_ii: INPC;
76
+ geglash: INPC;
77
+ lysnader: INPC;
78
+ fara: INPC;
79
+ drogan: INPC;
80
+ alkor: INPC;
81
+ hratli: INPC;
82
+ ashera: INPC;
83
+ cain_act_iii: INPC;
84
+ elzix: INPC;
85
+ malah: INPC;
86
+ anya: INPC;
87
+ natalya: INPC;
88
+ meshif_act_iii: INPC;
89
+ ormus: INPC;
90
+ cain_act_v: INPC;
91
+ qualkehk: INPC;
92
+ nihlathak: INPC;
93
+ }
94
+ export interface IQuest {
95
+ unk15: boolean;
96
+ unk14: boolean;
97
+ done_recently: boolean;
98
+ closed: boolean;
99
+ unk11: boolean;
100
+ unk10: boolean;
101
+ unk9: boolean;
102
+ unk8: boolean;
103
+ consumed_scroll: boolean;
104
+ unk6: boolean;
105
+ unk5: boolean;
106
+ unk4: boolean;
107
+ unk3: boolean;
108
+ is_received: boolean;
109
+ is_completed: boolean;
110
+ is_requirement_completed: boolean;
111
+ }
112
+ export interface IActIQuests {
113
+ introduced: boolean;
114
+ den_of_evil: IQuest;
115
+ sisters_burial_grounds: IQuest;
116
+ tools_of_the_trade: IQuest;
117
+ the_search_for_cain: IQuest;
118
+ the_forgotten_tower: IQuest;
119
+ sisters_to_the_slaughter: IQuest;
120
+ completed: boolean;
121
+ }
122
+ export interface IActIWaypoints {
123
+ rogue_encampement: boolean;
124
+ cold_plains: boolean;
125
+ stony_field: boolean;
126
+ dark_woods: boolean;
127
+ black_marsh: boolean;
128
+ outer_cloister: boolean;
129
+ jail_lvl_1: boolean;
130
+ inner_cloister: boolean;
131
+ catacombs_lvl_2: boolean;
132
+ }
133
+ export interface IActIIQuests {
134
+ introduced: boolean;
135
+ radaments_lair: IQuest;
136
+ the_horadric_staff: IQuest;
137
+ tainted_sun: IQuest;
138
+ arcane_sanctuary: IQuest;
139
+ the_summoner: IQuest;
140
+ the_seven_tombs: IQuest;
141
+ completed: boolean;
142
+ }
143
+ export interface IActIIWaypoints {
144
+ lut_gholein: boolean;
145
+ sewers_lvl_2: boolean;
146
+ dry_hills: boolean;
147
+ halls_of_the_dead_lvl_2: boolean;
148
+ far_oasis: boolean;
149
+ lost_city: boolean;
150
+ palace_cellar_lvl_1: boolean;
151
+ arcane_sanctuary: boolean;
152
+ canyon_of_the_magi: boolean;
153
+ }
154
+ export interface IActIIIQuests {
155
+ introduced: boolean;
156
+ lam_esens_tome: IQuest;
157
+ khalims_will: IQuest;
158
+ blade_of_the_old_religion: IQuest;
159
+ the_golden_bird: IQuest;
160
+ the_blackened_temple: IQuest;
161
+ the_guardian: IQuest;
162
+ completed: boolean;
163
+ }
164
+ export interface IActIIIWaypoints {
165
+ kurast_docks: boolean;
166
+ spider_forest: boolean;
167
+ great_marsh: boolean;
168
+ flayer_jungle: boolean;
169
+ lower_kurast: boolean;
170
+ kurast_bazaar: boolean;
171
+ upper_kurast: boolean;
172
+ travincal: boolean;
173
+ durance_of_hate_lvl_2: boolean;
174
+ }
175
+ export interface IActIVQuests {
176
+ introduced: boolean;
177
+ the_fallen_angel: IQuest;
178
+ terrors_end: IQuest;
179
+ hellforge: IQuest;
180
+ completed: boolean;
181
+ }
182
+ export interface IActIVWaypoints {
183
+ the_pandemonium_fortress: boolean;
184
+ city_of_the_damned: boolean;
185
+ river_of_flame: boolean;
186
+ }
187
+ export interface IActVQuests {
188
+ introduced: boolean;
189
+ siege_on_harrogath: IQuest;
190
+ rescue_on_mount_arreat: IQuest;
191
+ prison_of_ice: IQuest;
192
+ betrayal_of_harrogath: IQuest;
193
+ rite_of_passage: IQuest;
194
+ eve_of_destruction: IQuest;
195
+ completed: boolean;
196
+ }
197
+ export interface IActVWaypoints {
198
+ harrogath: boolean;
199
+ frigid_highlands: boolean;
200
+ arreat_plateau: boolean;
201
+ crystalline_passage: boolean;
202
+ halls_of_pain: boolean;
203
+ glacial_trail: boolean;
204
+ frozen_tundra: boolean;
205
+ the_ancients_way: boolean;
206
+ worldstone_keep_lvl_2: boolean;
207
+ }
208
+ export interface IQuests {
209
+ act_i: IActIQuests;
210
+ act_ii: IActIIQuests;
211
+ act_iii: IActIIIQuests;
212
+ act_iv: IActIVQuests;
213
+ act_v: IActVQuests;
214
+ }
215
+ export interface IWaypoints {
216
+ act_i: IActIWaypoints;
217
+ act_ii: IActIIWaypoints;
218
+ act_iii: IActIIIWaypoints;
219
+ act_iv: IActIVWaypoints;
220
+ act_v: IActVWaypoints;
221
+ }
222
+ export interface INPCData {
223
+ normal: INPCS;
224
+ nm: INPCS;
225
+ hell: INPCS;
226
+ }
227
+ export interface IWaypointData {
228
+ normal: IWaypoints;
229
+ nm: IWaypoints;
230
+ hell: IWaypoints;
231
+ }
232
+ export interface IHeader {
233
+ identifier: string;
234
+ checksum: string;
235
+ name: string;
236
+ status: IStatus;
237
+ class: string;
238
+ created: number;
239
+ last_played: number;
240
+ menu_appearance: ICharMenuAppearance;
241
+ left_skill: string;
242
+ right_skill: string;
243
+ left_swap_skill: string;
244
+ right_swap_skill: string;
245
+ merc_id: string;
246
+ assigned_skills: string[];
247
+ quests_normal: IQuests;
248
+ quests_nm: IQuests;
249
+ quests_hell: IQuests;
250
+ waypoints: IWaypointData;
251
+ npcs: INPCData;
252
+ version: number;
253
+ filesize: number;
254
+ active_arms: number;
255
+ progression: number;
256
+ level: number;
257
+ difficulty: IDifficulty;
258
+ map_id: number;
259
+ dead_merc: number;
260
+ merc_name_id: number;
261
+ merc_type: number;
262
+ merc_experience: number;
263
+ }
264
+ export interface IStatus {
265
+ expansion: boolean;
266
+ died: boolean;
267
+ hardcore: boolean;
268
+ ladder: boolean;
269
+ }
270
+ export interface ISkill {
271
+ id: number;
272
+ points: number;
273
+ name: string;
274
+ }
275
+ export interface IItem {
276
+ identified: number;
277
+ socketed: number;
278
+ new: number;
279
+ is_ear: number;
280
+ starter_item: number;
281
+ simple_item: number;
282
+ ethereal: number;
283
+ personalized: number;
284
+ personalized_name: string;
285
+ given_runeword: number;
286
+ version: string;
287
+ location_id: number;
288
+ equipped_id: number;
289
+ position_x: number;
290
+ position_y: number;
291
+ alt_position_id: number;
292
+ type: string;
293
+ type_id: number;
294
+ type_name: string;
295
+ quest_difficulty: number;
296
+ nr_of_items_in_sockets: number;
297
+ id: number;
298
+ level: number;
299
+ quality: number;
300
+ multiple_pictures: number;
301
+ picture_id: number;
302
+ class_specific: number;
303
+ low_quality_id: number;
304
+ timestamp: number;
305
+ ear_attributes: IEarAttributes;
306
+ defense_rating: number;
307
+ max_durability: number;
308
+ current_durability: number;
309
+ total_nr_of_sockets: number;
310
+ quantity: number;
311
+ magic_prefix: number;
312
+ magic_prefix_name: string;
313
+ magic_suffix: number;
314
+ magic_suffix_name: string;
315
+ runeword_id: number;
316
+ runeword_name: string;
317
+ runeword_attributes: IMagicProperty[];
318
+ set_id: number;
319
+ set_name: string;
320
+ set_list_count: number;
321
+ set_attributes: IMagicProperty[][];
322
+ set_attributes_num_req: number;
323
+ set_attributes_ids_req: number;
324
+ rare_name: string;
325
+ rare_name2: string;
326
+ magical_name_ids: number[] | null[];
327
+ unique_id: number;
328
+ unique_name: string;
329
+ magic_attributes: IMagicProperty[];
330
+ combined_magic_attributes: IMagicProperty[];
331
+ socketed_items: IItem[];
332
+ base_damage: IWeaponDamage;
333
+ reqstr: number;
334
+ reqdex: number;
335
+ inv_width: number;
336
+ inv_height: number;
337
+ inv_file: number;
338
+ inv_transform: number;
339
+ transform_color: string;
340
+ item_quality: EItemQuality;
341
+ categories?: string[];
342
+ file_index: number;
343
+ auto_affix_id: number;
344
+ _unknown_data: {
345
+ b0_3?: Uint8Array;
346
+ b5_10?: Uint8Array;
347
+ b12?: Uint8Array;
348
+ b14_15?: Uint8Array;
349
+ b18_20?: Uint8Array;
350
+ b23?: Uint8Array;
351
+ b25?: Uint8Array;
352
+ b27_31?: Uint8Array;
353
+ plist_flag?: number;
354
+ };
355
+ rare_name_id: number;
356
+ rare_name_id2: number;
357
+ displayed_magic_attributes: IMagicProperty[];
358
+ displayed_runeword_attributes: IMagicProperty[];
359
+ displayed_combined_magic_attributes: IMagicProperty[];
360
+ }
361
+ export interface IWeaponDamage {
362
+ mindam: number;
363
+ maxdam: number;
364
+ twohandmindam: number;
365
+ twohandmaxdam: number;
366
+ }
367
+ export interface IEarAttributes {
368
+ class: number;
369
+ level: number;
370
+ name: string;
371
+ }
372
+ export interface IMagicProperty {
373
+ id: number;
374
+ name: string;
375
+ values: number[];
376
+ description: string;
377
+ visible: boolean;
378
+ op_value: number;
379
+ op_stats: string[];
380
+ }
381
+ export declare enum EStashType {
382
+ shared = 0,
383
+ private = 1
384
+ }
385
+ export interface IStash {
386
+ version: string;
387
+ type: EStashType;
388
+ pageCount: number;
389
+ sharedGold: number;
390
+ hardcore: boolean;
391
+ pages: IStashPage[];
392
+ }
393
+ export interface IStashPage {
394
+ name: string;
395
+ type: number;
396
+ items: IItem[];
397
+ }
398
+ export declare enum EItemQuality {
399
+ normal = 0,
400
+ exceptional = 1,
401
+ elite = 2
402
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EItemQuality = exports.EStashType = void 0;
4
+ var EStashType;
5
+ (function (EStashType) {
6
+ EStashType[EStashType["shared"] = 0] = "shared";
7
+ EStashType[EStashType["private"] = 1] = "private";
8
+ })(EStashType = exports.EStashType || (exports.EStashType = {}));
9
+ var EItemQuality;
10
+ (function (EItemQuality) {
11
+ EItemQuality[EItemQuality["normal"] = 0] = "normal";
12
+ EItemQuality[EItemQuality["exceptional"] = 1] = "exceptional";
13
+ EItemQuality[EItemQuality["elite"] = 2] = "elite";
14
+ })(EItemQuality = exports.EItemQuality || (exports.EItemQuality = {}));
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/d2/types.ts"],"names":[],"mappings":";;;AA4ZA,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,+CAAM,CAAA;IACN,iDAAO,CAAA;AACT,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB;AAiBD,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,mDAAM,CAAA;IACN,6DAAW,CAAA;IACX,iDAAK,CAAA;AACP,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB"}
@@ -0,0 +1,5 @@
1
+ import * as types from "../types";
2
+ import { BitReader } from "../../binary/bitreader";
3
+ import { BitWriter } from "../../binary/bitwriter";
4
+ export declare function readHeader(char: types.ID2S, reader: BitReader, constants: types.IConstantData): void;
5
+ export declare function writeHeader(char: types.ID2S, writer: BitWriter, constants: types.IConstantData): void;