@paintswap/estfor-definitions 0.1.30 → 0.1.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.
package/src/types.ts CHANGED
@@ -1,452 +1,464 @@
1
- export enum BoostType {
2
- NONE,
3
- ANY_XP,
4
- COMBAT_XP,
5
- NON_COMBAT_XP,
6
- GATHERING,
7
- ABSENCE,
8
- }
9
-
10
- export enum Skill {
11
- NONE,
12
- COMBAT,
13
- MELEE,
14
- RANGE,
15
- MAGIC,
16
- DEFENCE,
17
- HEALTH,
18
- MINING,
19
- WOODCUTTING,
20
- FISHING,
21
- SMITHING,
22
- THIEVING,
23
- CRAFTING,
24
- COOKING,
25
- FIREMAKING,
26
- }
27
-
28
- export enum EquipPosition {
29
- NONE,
30
- HEAD,
31
- NECK,
32
- BODY,
33
- ARMS,
34
- LEGS,
35
- FEET,
36
- SPARE1,
37
- SPARE2,
38
- LEFT_HAND,
39
- RIGHT_HAND,
40
- BOTH_HANDS,
41
- ARROW_SATCHEL,
42
- MAGIC_BAG,
43
- FOOD,
44
- AUX, // wood, seeds etc..
45
- BOOST_VIAL,
46
- }
47
-
48
- export class Attire {
49
- head: u16 = 0
50
- neck: u16 = 0
51
- body: u16 = 0
52
- arms: u16 = 0
53
- legs: u16 = 0
54
- feet: u16 = 0
55
- ring: u16 = 0
56
- reserved1: u16 = 0
57
- queueId: u64 = 0
58
- }
59
-
60
- export enum ActionQueueStatus {
61
- NONE,
62
- APPEND,
63
- KEEP_LAST_IN_PROGRESS,
64
- }
65
-
66
- export enum CombatStyle {
67
- NONE,
68
- ATTACK,
69
- DEFENCE,
70
- }
71
-
72
- export class Equipment {
73
- itemTokenId: u16 = 0
74
- amount: u16 = 0
75
- }
76
-
77
- export class QueuedActionInput {
78
- attire: Attire = new Attire()
79
- actionId: u32 = 0
80
- regenerateId: u16 = 0 // Food (combat), maybe something for non-combat later
81
- choiceId: u32 = 0 // Melee/Arrow/Magic (combat), logs, ore (non-combat)
82
- choiceId1: u32 = 0 // Reserved (TBD)
83
- choiceId2: u32 = 0 // Reserved (TBD)
84
- combatStyle: CombatStyle = CombatStyle.NONE
85
- timespan: u32 = 0 // How long to queue the action for
86
- rightHandEquipmentTokenId: u16 = 0
87
- leftHandEquipmentTokenId: u16 = 0
88
- skill: Skill = Skill.NONE
89
- }
90
-
91
- export class ActionInfo {
92
- skill: Skill = Skill.NONE
93
- isAvailable: boolean = true
94
- isDynamic: boolean = false
95
- actionChoiceRequired: boolean = false
96
- xpPerHour: u32 = 0
97
- numSpawned: u32 = 0
98
- minXP: u32 = 0
99
- handItemTokenIdRangeMin: u16 = 0
100
- handItemTokenIdRangeMax: u16 = 0
101
- successPercent: u8 = 0
102
- }
103
-
104
- export class GuaranteedReward {
105
- itemTokenId: u16 = 0
106
- rate: u32 = 0 // base 100, 2 decimal places
107
- }
108
-
109
- export class RandomReward {
110
- itemTokenId: i32 = 0
111
- chance: u16 = 0 // out of 65335
112
- amount: u8 = 0
113
- }
114
-
115
- export class ActionInput {
116
- actionId: u32 = 0
117
- info: ActionInfo = new ActionInfo()
118
- guaranteedRewards: GuaranteedReward[] = []
119
- randomRewards: RandomReward[] = []
120
- combatStats: CombatStats = new CombatStats()
121
- }
122
-
123
- // Contains everything you need to create an item
124
- export class InputItem {
125
- combatStats: CombatStats = new CombatStats()
126
- nonCombatStats: NonCombatStats = new NonCombatStats()
127
- tokenId: u16 = 0
128
- equipPosition: EquipPosition = EquipPosition.NONE
129
- // Can this be transferred to another player?
130
- isTransferable: boolean = true
131
- // Minimum requirements in this skill
132
- skill: Skill = Skill.NONE
133
- minXP: u32 = 0
134
- // Food
135
- healthRestored: u32 = 0
136
- // Boost
137
- boostType: BoostType = BoostType.NONE
138
- boostValue: u16 = 0 // Varies, could be the % increase
139
- boostDuration: u32 = 0 // How long the effect of the boost last
140
- // uri
141
- metadataURI: string = ''
142
- // name of the item
143
- name: string = ''
144
- }
145
-
146
- export class CombatStats {
147
- melee: i16 = 0
148
- magic: i16 = 0
149
- range: i16 = 0
150
- meleeDefence: i16 = 0
151
- magicDefence: i16 = 0
152
- rangeDefence: i16 = 0
153
- health: i16 = 0
154
- }
155
-
156
- export class NonCombatStats {
157
- skill: Skill = Skill.NONE
158
- diff: u32 = 0
159
- }
160
-
161
- export const emptyCombatStats = new CombatStats()
162
- export const emptyNonCombatStats = new NonCombatStats()
163
- export const defaultInputItem = new InputItem()
164
- export const noAttire = new Attire()
165
-
166
- export class PendingOutput {
167
- consumed: Equipment[] = []
168
- produced: Equipment[] = []
169
- producedPastRandomRewards: Equipment[] = []
170
- producedXPRewards: Equipment[] = []
171
- xpGained: u32 = 0
172
- died: boolean = false
173
- }
174
-
175
- export class PendingFlags {
176
- includeLoot: boolean = true // Guaranteed loot from actions, and random loot if claiming quite late
177
- includePastRandomRewards: boolean = true // This is random loot from previous actions
178
- includeXPRewards: boolean = true // Passing any xp thresholds gives you extra rewards
179
- }
180
-
181
- export class XPThresholdRewardInput {
182
- xpThreshold: i32 = 0
183
- equipments: Equipment[] = []
184
- }
185
-
186
- export class XPThresholdReward {
187
- id: string = '' // XP for the reward
188
- xp: string = '' // same as id
189
- rewardItemAmounts: string[] = []
190
- rewardItemTokenIds: string[] = []
191
- }
192
-
193
- export class Player {
194
- id: string = '0'
195
- tokenId: string = '0'
196
- avatarId: string = '1'
197
- owner: string = ''
198
- name: string = ''
199
- lastTimestamp: string = '0'
200
- mintedNumber: string = '0' // Will be unique, use for sorting
201
- mintedTimestamp: string = '0'
202
- isActive: boolean = false // Is this player the active one for the owner
203
- numActivities: u32 = 0 // Not used yet
204
- pendingRandomRewards: string[] = [] // Timestamps for any rewards which are waiting on the next seed
205
- speedMultiplier: u32 = 1
206
-
207
- /* Action XP */
208
- woodcuttingXP: string = '0'
209
- firemakingXP: string = '0'
210
- fishingXP: string = '0'
211
- cookingXP: string = '0'
212
- miningXP: string = '0'
213
- smithingXP: string = '0'
214
- craftingXP: string = '0'
215
- thievingXP: string = '0'
216
- totalXP: string = '0'
217
-
218
- /* Combat XP */
219
- healthXP: string = '0'
220
- meleeXP: string = '0'
221
- defenceXP: string = '0'
222
- magicXP: string = '0'
223
- rangeXP: string = '0'
224
-
225
- /** Ranks */
226
- woodcuttingRank: u32 = 0
227
- firemakingRank: u32 = 0
228
- fishingRank: u32 = 0
229
- cookingRank: u32 = 0
230
- miningRank: u32 = 0
231
- smithingRank: u32 = 0
232
- craftingRank: u32 = 0
233
- thievingRank: u32 = 0
234
- meleeRank: u32 = 0
235
- magicRank: u32 = 0
236
- rangeRank: u32 = 0
237
- defenceRank: u32 = 0
238
- healthRank: u32 = 0
239
- combinedRank: u32 = 0
240
-
241
- /* Boost */
242
- boostStartTime: u64 = 0
243
- boostDuration: u32 = 0
244
- boostVal: u8 = 0
245
- boostType: BoostType
246
- boostItemTokenId: u16 = 0
247
- }
248
-
249
- export class User {
250
- id: string = '0'
251
- totalSold: string = '0'
252
- totalBought: string = '0'
253
- numPlayers: u32 = 0
254
- }
255
-
256
- export class GlobalPlayerStats {
257
- totalPlayers: string = '0'
258
- }
259
-
260
- export enum ActivityType {
261
- Buy,
262
- Sell,
263
- ActionPartiallyFinished,
264
- ActionFinished,
265
- PendingRandomRewardsClaimed, // This is only if claimed separately
266
- }
267
-
268
- export enum Direction {
269
- Consumed,
270
- Produced,
271
- }
272
-
273
- export class Activity {
274
- id: string = ''
275
- type: string = '' // ActivityType
276
- itemTokenIds: u16[] = []
277
- amounts: string[] = []
278
- directions: string[] = [] // Direction
279
- prices: string[] = []
280
- actionId: string = ''
281
- queueId: string = ''
282
- timestamp: string = ''
283
- hash: string = ''
284
- playerId: string = '0'
285
- user: string = ''
286
- }
287
-
288
- export class ActivityInfo {
289
- id: string = ''
290
- numActivities: string = ''
291
- }
292
-
293
- export class LastFullEquipment {
294
- id: string = '0' // playerId
295
- playerId: string = '0'
296
- user: string = ''
297
- actionId: u32 = 0
298
- regenerateId: u16 = 0
299
- choiceId: u32 = 0
300
- choiceId1: u32 = 0
301
- choiceId2: u32 = 0
302
- rightHandEquipmentTokenId: u16 = 0
303
- leftHandEquipmentTokenId: u16 = 0
304
- startTime: string = ''
305
- timespan: u32 = 0
306
- isValid: boolean = true
307
- skill: Skill = Skill.NONE
308
-
309
- headEquipped: u16 = 0
310
- neckEquipped: u16 = 0
311
- bodyEquipped: u16 = 0
312
- armsEquipped: u16 = 0
313
- legsEquipped: u16 = 0
314
- feetEquipped: u16 = 0
315
- ringEquipped: u16 = 0
316
- timestamp: string = '0'
317
- }
318
-
319
- export class QueuedAction {
320
- id: string = '' // queueId
321
- actionId: u32 = 0
322
- playerId: string = ''
323
- regenerateId: u16 = 0
324
- choiceId: u32 = 0
325
- choiceId1: u32 = 0
326
- choiceId2: u32 = 0
327
- rightHandEquipmentTokenId: u16 = 0
328
- leftHandEquipmentTokenId: u16 = 0
329
- startTime: string = ''
330
- timespan: u32 = 0
331
- isValid: boolean = true
332
- skill: Skill = Skill.NONE
333
- combatStyle: CombatStyle = CombatStyle.NONE
334
-
335
- headEquipped: u16 = 0
336
- neckEquipped: u16 = 0
337
- bodyEquipped: u16 = 0
338
- armsEquipped: u16 = 0
339
- legsEquipped: u16 = 0
340
- feetEquipped: u16 = 0
341
- ringEquipped: u16 = 0
342
- }
343
-
344
- export class Item {
345
- id: string = '0'
346
- tokenId: u16 = 0
347
- melee: i16 = 0
348
- magic: i16 = 0
349
- range: i16 = 0
350
- meleeDefence: i16 = 0
351
- magicDefence: i16 = 0
352
- rangeDefence: i16 = 0
353
- health: i16 = 0
354
- totalQuantity: string = '0'
355
- equipPosition: u16 = 0
356
- healthRestored: u32 = 0
357
- skill1: Skill = Skill.NONE
358
- skillDiff1: u8 = 0
359
- boostType: BoostType = BoostType.NONE
360
- boostValue: u16 = 0
361
- boostDuration: u32 = 0
362
- // Minimum requirements for equipping
363
- skill: Skill = Skill.NONE
364
- minXP: string = '0'
365
- name: string = ''
366
- }
367
-
368
- export class UserItemNFT {
369
- id: string = ''
370
- user: string = ''
371
- tokenId: u16 = 0
372
- amount: string = ''
373
- item: Item = new Item()
374
- }
375
-
376
- export class ShopItem {
377
- id: string = ''
378
- tokenId: u16 = 0
379
- price: string = '0'
380
- }
381
-
382
- export class ActionChoiceInput {
383
- skill: Skill = Skill.NONE
384
- diff: u32 = 0
385
- rate: u16 = 0
386
- xpPerHour: u32 = 0
387
- minXP: u32 = 0
388
- inputTokenId1: u16 = 0
389
- num1: u16 = 0
390
- inputTokenId2: u16 = 0
391
- num2: u16 = 0
392
- inputTokenId3: u16 = 0
393
- num3: u16 = 0
394
- outputTokenId: u16 = 0
395
- outputNum: u8 = 1
396
- successPercent: u8 = 100
397
- }
398
-
399
- export class ActionChoice {
400
- id: string = ''
401
- actionId: u32 = 0
402
- skill: Skill = Skill.NONE
403
- diff: u32 = 0
404
- rate: u16 = 0
405
- xpPerHour: u32 = 0
406
- minXP: u32 = 0
407
- inputTokenId1: u16 = 0
408
- num1: u16 = 0
409
- inputTokenId2: u16 = 0
410
- num2: u16 = 0
411
- inputTokenId3: u16 = 0
412
- num3: u16 = 0
413
- outputTokenId: u16 = 0
414
- outputNum: u8 = 1
415
- successPercent: u8 = 100
416
- }
417
-
418
- export class Action {
419
- id: string = ''
420
- actionId: u32 = 0
421
- skill: Skill = Skill.NONE
422
- xpPerHour: u32 = 0
423
- numSpawned: u32 = 0
424
- minXP: string = '0'
425
-
426
- guaranteedRewardItemTokenIds: u32[] = []
427
- guaranteedRewardRates: u32[] = []
428
- randomChanceItemTokenIds: u32[] = []
429
- randomChanceRates: u32[] = []
430
-
431
- handItemTokenIdRangeMin: u32 = 0
432
- handItemTokenIdRangeMax: u32 = 0
433
- isAvailable: boolean = false
434
- isDynamic: boolean = false
435
- actionChoiceRequired: boolean = false
436
- successPercent: i8 = 100
437
-
438
- /* Combat Stats */
439
- melee: i16 = 0
440
- magic: i16 = 0
441
- range: i16 = 0
442
- rangeDefence: i16 = 0
443
- meleeDefence: i16 = 0
444
- magicDefence: i16 = 0
445
- health: i16 = 0
446
- }
447
-
448
- export class RandomWords {
449
- lastRequestedTimestamp: string = ''
450
- lastRandomWordsReceived: string = '' // Bytes
451
- hasLastRequestedRandomWordsBeenReceived: boolean = false
452
- }
1
+ export enum BoostType {
2
+ NONE,
3
+ ANY_XP,
4
+ COMBAT_XP,
5
+ NON_COMBAT_XP,
6
+ GATHERING,
7
+ ABSENCE,
8
+ }
9
+
10
+ export enum Skill {
11
+ NONE,
12
+ COMBAT,
13
+ MELEE,
14
+ RANGE,
15
+ MAGIC,
16
+ DEFENCE,
17
+ HEALTH,
18
+ MINING,
19
+ WOODCUTTING,
20
+ FISHING,
21
+ SMITHING,
22
+ THIEVING,
23
+ CRAFTING,
24
+ COOKING,
25
+ FIREMAKING,
26
+ }
27
+
28
+ export enum EquipPosition {
29
+ NONE,
30
+ HEAD,
31
+ NECK,
32
+ BODY,
33
+ ARMS,
34
+ LEGS,
35
+ FEET,
36
+ SPARE1,
37
+ SPARE2,
38
+ LEFT_HAND,
39
+ RIGHT_HAND,
40
+ BOTH_HANDS,
41
+ ARROW_SATCHEL,
42
+ MAGIC_BAG,
43
+ FOOD,
44
+ AUX, // wood, seeds etc..
45
+ BOOST_VIAL,
46
+ }
47
+
48
+ export class Attire {
49
+ head: u16 = 0
50
+ neck: u16 = 0
51
+ body: u16 = 0
52
+ arms: u16 = 0
53
+ legs: u16 = 0
54
+ feet: u16 = 0
55
+ ring: u16 = 0
56
+ reserved1: u16 = 0
57
+ queueId: u64 = 0
58
+ }
59
+
60
+ export enum ActionQueueStatus {
61
+ NONE,
62
+ APPEND,
63
+ KEEP_LAST_IN_PROGRESS,
64
+ }
65
+
66
+ export enum CombatStyle {
67
+ NONE,
68
+ ATTACK,
69
+ DEFENCE,
70
+ }
71
+
72
+ export class Equipment {
73
+ itemTokenId: u16 = 0
74
+ amount: u16 = 0
75
+ }
76
+
77
+ export class QueuedActionInput {
78
+ attire: Attire = new Attire()
79
+ actionId: u32 = 0
80
+ regenerateId: u16 = 0 // Food (combat), maybe something for non-combat later
81
+ choiceId: u32 = 0 // Melee/Arrow/Magic (combat), logs, ore (non-combat)
82
+ choiceId1: u32 = 0 // Reserved (TBD)
83
+ choiceId2: u32 = 0 // Reserved (TBD)
84
+ combatStyle: CombatStyle = CombatStyle.NONE
85
+ timespan: u32 = 0 // How long to queue the action for
86
+ rightHandEquipmentTokenId: u16 = 0
87
+ leftHandEquipmentTokenId: u16 = 0
88
+ skill: Skill = Skill.NONE
89
+ }
90
+
91
+ export class ActionInfo {
92
+ skill: Skill = Skill.NONE
93
+ isAvailable: boolean = true
94
+ isDynamic: boolean = false
95
+ actionChoiceRequired: boolean = false
96
+ xpPerHour: u32 = 0
97
+ numSpawned: u32 = 0
98
+ minXP: u32 = 0
99
+ handItemTokenIdRangeMin: u16 = 0
100
+ handItemTokenIdRangeMax: u16 = 0
101
+ successPercent: u8 = 0
102
+ }
103
+
104
+ export class GuaranteedReward {
105
+ itemTokenId: u16 = 0
106
+ rate: u32 = 0 // base 100, 2 decimal places
107
+ }
108
+
109
+ export class RandomReward {
110
+ itemTokenId: i32 = 0
111
+ chance: u16 = 0 // out of 65335
112
+ amount: u8 = 0
113
+ }
114
+
115
+ export class ActionInput {
116
+ actionId: u32 = 0
117
+ info: ActionInfo = new ActionInfo()
118
+ guaranteedRewards: GuaranteedReward[] = []
119
+ randomRewards: RandomReward[] = []
120
+ combatStats: CombatStats = new CombatStats()
121
+ }
122
+
123
+ // Contains everything you need to create an item
124
+ export class InputItem {
125
+ combatStats: CombatStats = new CombatStats()
126
+ nonCombatStats: NonCombatStats = new NonCombatStats()
127
+ tokenId: u16 = 0
128
+ equipPosition: EquipPosition = EquipPosition.NONE
129
+ // Can this be transferred to another player?
130
+ isTransferable: boolean = true
131
+ // Minimum requirements in this skill
132
+ skill: Skill = Skill.NONE
133
+ minXP: u32 = 0
134
+ // Food
135
+ healthRestored: u32 = 0
136
+ // Boost
137
+ boostType: BoostType = BoostType.NONE
138
+ boostValue: u16 = 0 // Varies, could be the % increase
139
+ boostDuration: u32 = 0 // How long the effect of the boost last
140
+ // uri
141
+ metadataURI: string = ''
142
+ // name of the item
143
+ name: string = ''
144
+ }
145
+
146
+ export class CombatStats {
147
+ melee: i16 = 0
148
+ magic: i16 = 0
149
+ range: i16 = 0
150
+ meleeDefence: i16 = 0
151
+ magicDefence: i16 = 0
152
+ rangeDefence: i16 = 0
153
+ health: i16 = 0
154
+ }
155
+
156
+ export class NonCombatStats {
157
+ skill: Skill = Skill.NONE
158
+ diff: u32 = 0
159
+ }
160
+
161
+ export const emptyCombatStats = new CombatStats()
162
+ export const emptyNonCombatStats = new NonCombatStats()
163
+ export const defaultInputItem = new InputItem()
164
+ export const noAttire = new Attire()
165
+
166
+ export class PendingOutput {
167
+ consumed: Equipment[] = []
168
+ produced: Equipment[] = []
169
+ producedPastRandomRewards: Equipment[] = []
170
+ producedXPRewards: Equipment[] = []
171
+ xpGained: u32 = 0
172
+ died: boolean = false
173
+ }
174
+
175
+ export class PendingFlags {
176
+ includeLoot: boolean = true // Guaranteed loot from actions, and random loot if claiming quite late
177
+ includePastRandomRewards: boolean = true // This is random loot from previous actions
178
+ includeXPRewards: boolean = true // Passing any xp thresholds gives you extra rewards
179
+ }
180
+
181
+ export class XPThresholdRewardInput {
182
+ xpThreshold: i32 = 0
183
+ equipments: Equipment[] = []
184
+ }
185
+
186
+ export class XPThresholdReward {
187
+ id: string = '' // XP for the reward
188
+ xp: string = '' // same as id
189
+ rewardItemAmounts: string[] = []
190
+ rewardItemTokenIds: string[] = []
191
+ }
192
+
193
+ export class Player {
194
+ id: string = '0'
195
+ tokenId: string = '0'
196
+ avatarId: string = '1'
197
+ owner: string = ''
198
+ name: string = ''
199
+ lastTimestamp: string = '0'
200
+ mintedNumber: string = '0' // Will be unique, use for sorting
201
+ mintedTimestamp: string = '0'
202
+ isActive: boolean = false // Is this player the active one for the owner
203
+ numActivities: u32 = 0 // Not used yet
204
+ pendingRandomRewards: string[] = [] // Timestamps for any rewards which are waiting on the next seed
205
+ speedMultiplier: u32 = 1
206
+
207
+ /* Action XP */
208
+ woodcuttingXP: string = '0'
209
+ firemakingXP: string = '0'
210
+ fishingXP: string = '0'
211
+ cookingXP: string = '0'
212
+ miningXP: string = '0'
213
+ smithingXP: string = '0'
214
+ craftingXP: string = '0'
215
+ thievingXP: string = '0'
216
+ totalXP: string = '0'
217
+
218
+ /* Combat XP */
219
+ healthXP: string = '0'
220
+ meleeXP: string = '0'
221
+ defenceXP: string = '0'
222
+ magicXP: string = '0'
223
+ rangeXP: string = '0'
224
+
225
+ /** Ranks */
226
+ woodcuttingRank: u32 = 0
227
+ firemakingRank: u32 = 0
228
+ fishingRank: u32 = 0
229
+ cookingRank: u32 = 0
230
+ miningRank: u32 = 0
231
+ smithingRank: u32 = 0
232
+ craftingRank: u32 = 0
233
+ thievingRank: u32 = 0
234
+ meleeRank: u32 = 0
235
+ magicRank: u32 = 0
236
+ rangeRank: u32 = 0
237
+ defenceRank: u32 = 0
238
+ healthRank: u32 = 0
239
+ combinedRank: u32 = 0
240
+
241
+ /* Boost */
242
+ boostStartTime: u64 = 0
243
+ boostDuration: u32 = 0
244
+ boostVal: u8 = 0
245
+ boostType: BoostType
246
+ boostItemTokenId: u16 = 0
247
+ }
248
+
249
+ export class User {
250
+ id: string = '0'
251
+ totalSold: string = '0'
252
+ totalBought: string = '0'
253
+ numPlayers: u32 = 0
254
+ }
255
+
256
+ export class GlobalPlayerStats {
257
+ totalPlayers: string = '0'
258
+ totalAvatars: string[] = []
259
+ }
260
+
261
+ export enum ActivityType {
262
+ Buy,
263
+ Sell,
264
+ ActionPartiallyFinished,
265
+ ActionFinished,
266
+ XPThresholdReward,
267
+ DailyReward,
268
+ WeeklyReward,
269
+ PendingRandomRewardsClaimed,
270
+ }
271
+
272
+ export enum Direction {
273
+ Consumed,
274
+ Produced,
275
+ }
276
+
277
+ export enum ActivityUndertaker {
278
+ Player,
279
+ User,
280
+ }
281
+
282
+ export class Activity {
283
+ id: string = ''
284
+ type: string = '' // ActivityType
285
+ itemTokenIds: u16[] = []
286
+ amounts: string[] = []
287
+ directions: string[] = [] // Direction
288
+ prices: string[] = []
289
+ actionId: string = ''
290
+ queueId: string = ''
291
+ timestamp: string = ''
292
+ hash: string = ''
293
+ playerId: string = '0'
294
+ user: string = ''
295
+ undertaker: string = '' // ActivityUndertaker
296
+ }
297
+
298
+ export class ActivityInfo {
299
+ id: string = ''
300
+ numActivities: string = ''
301
+ }
302
+
303
+ export class LastFullEquipment {
304
+ id: string = '0' // playerId
305
+ playerId: string = '0'
306
+ user: string = ''
307
+ actionId: u32 = 0
308
+ regenerateId: u16 = 0
309
+ choiceId: u32 = 0
310
+ choiceId1: u32 = 0
311
+ choiceId2: u32 = 0
312
+ rightHandEquipmentTokenId: u16 = 0
313
+ leftHandEquipmentTokenId: u16 = 0
314
+ startTime: string = ''
315
+ timespan: u32 = 0
316
+ isValid: boolean = true
317
+ skill: Skill = Skill.NONE
318
+
319
+ headEquipped: u16 = 0
320
+ neckEquipped: u16 = 0
321
+ bodyEquipped: u16 = 0
322
+ armsEquipped: u16 = 0
323
+ legsEquipped: u16 = 0
324
+ feetEquipped: u16 = 0
325
+ ringEquipped: u16 = 0
326
+ timestamp: string = '0'
327
+ }
328
+
329
+ export class QueuedAction {
330
+ id: string = '' // queueId
331
+ actionId: u32 = 0
332
+ playerId: string = ''
333
+ regenerateId: u16 = 0
334
+ choiceId: u32 = 0
335
+ choiceId1: u32 = 0
336
+ choiceId2: u32 = 0
337
+ rightHandEquipmentTokenId: u16 = 0
338
+ leftHandEquipmentTokenId: u16 = 0
339
+ startTime: string = ''
340
+ timespan: u32 = 0
341
+ originalStartTime: string = ''
342
+ originalTimespan: u32 = 0
343
+ isValid: boolean = true
344
+ skill: Skill = Skill.NONE
345
+ combatStyle: CombatStyle = CombatStyle.NONE
346
+
347
+ headEquipped: u16 = 0
348
+ neckEquipped: u16 = 0
349
+ bodyEquipped: u16 = 0
350
+ armsEquipped: u16 = 0
351
+ legsEquipped: u16 = 0
352
+ feetEquipped: u16 = 0
353
+ ringEquipped: u16 = 0
354
+ }
355
+
356
+ export class Item {
357
+ id: string = '0'
358
+ tokenId: u16 = 0
359
+ melee: i16 = 0
360
+ magic: i16 = 0
361
+ range: i16 = 0
362
+ meleeDefence: i16 = 0
363
+ magicDefence: i16 = 0
364
+ rangeDefence: i16 = 0
365
+ health: i16 = 0
366
+ totalQuantity: string = '0'
367
+ equipPosition: u16 = 0
368
+ healthRestored: u32 = 0
369
+ skill1: Skill = Skill.NONE
370
+ skillDiff1: u8 = 0
371
+ boostType: BoostType = BoostType.NONE
372
+ boostValue: u16 = 0
373
+ boostDuration: u32 = 0
374
+ // Minimum requirements for equipping
375
+ skill: Skill = Skill.NONE
376
+ minXP: string = '0'
377
+ name: string = ''
378
+ }
379
+
380
+ export class UserItemNFT {
381
+ id: string = ''
382
+ user: string = ''
383
+ tokenId: u16 = 0
384
+ amount: string = ''
385
+ item: Item = new Item()
386
+ }
387
+
388
+ export class ShopItem {
389
+ id: string = ''
390
+ tokenId: u16 = 0
391
+ price: string = '0'
392
+ }
393
+
394
+ export class ActionChoiceInput {
395
+ skill: Skill = Skill.NONE
396
+ diff: u32 = 0
397
+ rate: u16 = 0
398
+ xpPerHour: u32 = 0
399
+ minXP: u32 = 0
400
+ inputTokenId1: u16 = 0
401
+ num1: u16 = 0
402
+ inputTokenId2: u16 = 0
403
+ num2: u16 = 0
404
+ inputTokenId3: u16 = 0
405
+ num3: u16 = 0
406
+ outputTokenId: u16 = 0
407
+ outputNum: u8 = 1
408
+ successPercent: u8 = 100
409
+ }
410
+
411
+ export class ActionChoice {
412
+ id: string = ''
413
+ actionId: u32 = 0
414
+ skill: Skill = Skill.NONE
415
+ diff: u32 = 0
416
+ rate: u16 = 0
417
+ xpPerHour: u32 = 0
418
+ minXP: u32 = 0
419
+ inputTokenId1: u16 = 0
420
+ num1: u16 = 0
421
+ inputTokenId2: u16 = 0
422
+ num2: u16 = 0
423
+ inputTokenId3: u16 = 0
424
+ num3: u16 = 0
425
+ outputTokenId: u16 = 0
426
+ outputNum: u8 = 1
427
+ successPercent: u8 = 100
428
+ }
429
+
430
+ export class Action {
431
+ id: string = ''
432
+ actionId: u32 = 0
433
+ skill: Skill = Skill.NONE
434
+ xpPerHour: u32 = 0
435
+ numSpawned: u32 = 0
436
+ minXP: string = '0'
437
+
438
+ guaranteedRewardItemTokenIds: u32[] = []
439
+ guaranteedRewardRates: u32[] = []
440
+ randomChanceItemTokenIds: u32[] = []
441
+ randomChanceRates: u32[] = []
442
+
443
+ handItemTokenIdRangeMin: u32 = 0
444
+ handItemTokenIdRangeMax: u32 = 0
445
+ isAvailable: boolean = false
446
+ isDynamic: boolean = false
447
+ actionChoiceRequired: boolean = false
448
+ successPercent: i8 = 100
449
+
450
+ /* Combat Stats */
451
+ melee: i16 = 0
452
+ magic: i16 = 0
453
+ range: i16 = 0
454
+ rangeDefence: i16 = 0
455
+ meleeDefence: i16 = 0
456
+ magicDefence: i16 = 0
457
+ health: i16 = 0
458
+ }
459
+
460
+ export class RandomWords {
461
+ lastRequestedTimestamp: string = ''
462
+ lastRandomWordsReceived: string = '' // Bytes
463
+ hasLastRequestedRandomWordsBeenReceived: boolean = false
464
+ }