@paintswap/estfor-definitions 0.1.30 → 0.1.35

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,463 @@
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
+ }
259
+
260
+ export enum ActivityType {
261
+ Buy,
262
+ Sell,
263
+ ActionPartiallyFinished,
264
+ ActionFinished,
265
+ XPThresholdReward,
266
+ DailyReward,
267
+ WeeklyReward,
268
+ PendingRandomRewardsClaimed,
269
+ }
270
+
271
+ export enum Direction {
272
+ Consumed,
273
+ Produced,
274
+ }
275
+
276
+ export enum ActivityUndertaker {
277
+ Player,
278
+ User,
279
+ }
280
+
281
+ export class Activity {
282
+ id: string = ''
283
+ type: string = '' // ActivityType
284
+ itemTokenIds: u16[] = []
285
+ amounts: string[] = []
286
+ directions: string[] = [] // Direction
287
+ prices: string[] = []
288
+ actionId: string = ''
289
+ queueId: string = ''
290
+ timestamp: string = ''
291
+ hash: string = ''
292
+ playerId: string = '0'
293
+ user: string = ''
294
+ undertaker: string = '' // ActivityUndertaker
295
+ }
296
+
297
+ export class ActivityInfo {
298
+ id: string = ''
299
+ numActivities: string = ''
300
+ }
301
+
302
+ export class LastFullEquipment {
303
+ id: string = '0' // playerId
304
+ playerId: string = '0'
305
+ user: string = ''
306
+ actionId: u32 = 0
307
+ regenerateId: u16 = 0
308
+ choiceId: u32 = 0
309
+ choiceId1: u32 = 0
310
+ choiceId2: u32 = 0
311
+ rightHandEquipmentTokenId: u16 = 0
312
+ leftHandEquipmentTokenId: u16 = 0
313
+ startTime: string = ''
314
+ timespan: u32 = 0
315
+ isValid: boolean = true
316
+ skill: Skill = Skill.NONE
317
+
318
+ headEquipped: u16 = 0
319
+ neckEquipped: u16 = 0
320
+ bodyEquipped: u16 = 0
321
+ armsEquipped: u16 = 0
322
+ legsEquipped: u16 = 0
323
+ feetEquipped: u16 = 0
324
+ ringEquipped: u16 = 0
325
+ timestamp: string = '0'
326
+ }
327
+
328
+ export class QueuedAction {
329
+ id: string = '' // queueId
330
+ actionId: u32 = 0
331
+ playerId: string = ''
332
+ regenerateId: u16 = 0
333
+ choiceId: u32 = 0
334
+ choiceId1: u32 = 0
335
+ choiceId2: u32 = 0
336
+ rightHandEquipmentTokenId: u16 = 0
337
+ leftHandEquipmentTokenId: u16 = 0
338
+ startTime: string = ''
339
+ timespan: u32 = 0
340
+ originalStartTime: string = ''
341
+ originalTimespan: u32 = 0
342
+ isValid: boolean = true
343
+ skill: Skill = Skill.NONE
344
+ combatStyle: CombatStyle = CombatStyle.NONE
345
+
346
+ headEquipped: u16 = 0
347
+ neckEquipped: u16 = 0
348
+ bodyEquipped: u16 = 0
349
+ armsEquipped: u16 = 0
350
+ legsEquipped: u16 = 0
351
+ feetEquipped: u16 = 0
352
+ ringEquipped: u16 = 0
353
+ }
354
+
355
+ export class Item {
356
+ id: string = '0'
357
+ tokenId: u16 = 0
358
+ melee: i16 = 0
359
+ magic: i16 = 0
360
+ range: i16 = 0
361
+ meleeDefence: i16 = 0
362
+ magicDefence: i16 = 0
363
+ rangeDefence: i16 = 0
364
+ health: i16 = 0
365
+ totalQuantity: string = '0'
366
+ equipPosition: u16 = 0
367
+ healthRestored: u32 = 0
368
+ skill1: Skill = Skill.NONE
369
+ skillDiff1: u8 = 0
370
+ boostType: BoostType = BoostType.NONE
371
+ boostValue: u16 = 0
372
+ boostDuration: u32 = 0
373
+ // Minimum requirements for equipping
374
+ skill: Skill = Skill.NONE
375
+ minXP: string = '0'
376
+ name: string = ''
377
+ }
378
+
379
+ export class UserItemNFT {
380
+ id: string = ''
381
+ user: string = ''
382
+ tokenId: u16 = 0
383
+ amount: string = ''
384
+ item: Item = new Item()
385
+ }
386
+
387
+ export class ShopItem {
388
+ id: string = ''
389
+ tokenId: u16 = 0
390
+ price: string = '0'
391
+ }
392
+
393
+ export class ActionChoiceInput {
394
+ skill: Skill = Skill.NONE
395
+ diff: u32 = 0
396
+ rate: u16 = 0
397
+ xpPerHour: u32 = 0
398
+ minXP: u32 = 0
399
+ inputTokenId1: u16 = 0
400
+ num1: u16 = 0
401
+ inputTokenId2: u16 = 0
402
+ num2: u16 = 0
403
+ inputTokenId3: u16 = 0
404
+ num3: u16 = 0
405
+ outputTokenId: u16 = 0
406
+ outputNum: u8 = 1
407
+ successPercent: u8 = 100
408
+ }
409
+
410
+ export class ActionChoice {
411
+ id: string = ''
412
+ actionId: u32 = 0
413
+ skill: Skill = Skill.NONE
414
+ diff: u32 = 0
415
+ rate: u16 = 0
416
+ xpPerHour: u32 = 0
417
+ minXP: u32 = 0
418
+ inputTokenId1: u16 = 0
419
+ num1: u16 = 0
420
+ inputTokenId2: u16 = 0
421
+ num2: u16 = 0
422
+ inputTokenId3: u16 = 0
423
+ num3: u16 = 0
424
+ outputTokenId: u16 = 0
425
+ outputNum: u8 = 1
426
+ successPercent: u8 = 100
427
+ }
428
+
429
+ export class Action {
430
+ id: string = ''
431
+ actionId: u32 = 0
432
+ skill: Skill = Skill.NONE
433
+ xpPerHour: u32 = 0
434
+ numSpawned: u32 = 0
435
+ minXP: string = '0'
436
+
437
+ guaranteedRewardItemTokenIds: u32[] = []
438
+ guaranteedRewardRates: u32[] = []
439
+ randomChanceItemTokenIds: u32[] = []
440
+ randomChanceRates: u32[] = []
441
+
442
+ handItemTokenIdRangeMin: u32 = 0
443
+ handItemTokenIdRangeMax: u32 = 0
444
+ isAvailable: boolean = false
445
+ isDynamic: boolean = false
446
+ actionChoiceRequired: boolean = false
447
+ successPercent: i8 = 100
448
+
449
+ /* Combat Stats */
450
+ melee: i16 = 0
451
+ magic: i16 = 0
452
+ range: i16 = 0
453
+ rangeDefence: i16 = 0
454
+ meleeDefence: i16 = 0
455
+ magicDefence: i16 = 0
456
+ health: i16 = 0
457
+ }
458
+
459
+ export class RandomWords {
460
+ lastRequestedTimestamp: string = ''
461
+ lastRandomWordsReceived: string = '' // Bytes
462
+ hasLastRequestedRandomWordsBeenReceived: boolean = false
463
+ }