trucoshi 12.2.0 → 13.0.0-rc.1

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/README.md CHANGED
@@ -34,12 +34,18 @@ Run the three-repo local stack from this repo with:
34
34
 
35
35
  If your user cannot run Docker directly, use `yarn dev:all:sudo-docker`. Do not prefix either command with `sudo`; that mode only elevates Docker commands, so Yarn, Vite, generated Prisma files, and local links remain owned by your user.
36
36
 
37
- The launcher keeps the local stack in development mode: Lightning Accounts, Trucoshi, and the Vite client. Its interactive control panel can show one service's logs at a time, display stack status, restart a service, and optionally build and host a client snapshot at `http://10.10.1.106:2993`. The snapshot is off by default, so it never slows Vite's hot-reload loop. Set `DEV_ALL_PUBLIC_HOST`, `DEV_ALL_CLIENT_HOST_PORT`, or `DEV_ALL_LOG_DIR` if you need different defaults.
37
+ The launcher keeps the local stack in development mode: Lightning Accounts, Trucoshi, and the Vite client. Its home screen continuously refreshes the stack status and service URLs. Use the numbered shortcuts or ↑/↓ to move, Enter or → to select, and or Esc to go back. It can also build and host a client snapshot at `http://10.10.1.106:2993`. The snapshot is off by default, so it never slows Vite's hot-reload loop. Set `DEV_ALL_PUBLIC_HOST`, `DEV_ALL_CLIENT_HOST_PORT`, or `DEV_ALL_LOG_DIR` if you need different defaults.
38
38
 
39
39
  # Test
40
40
 
41
41
  `yarn test`
42
42
 
43
+ ### Card skins
44
+
45
+ Skin metadata and user inventory behavior live in this repository; image files
46
+ live in the sibling client. See [`docs/card-skins.md`](docs/card-skins.md) for
47
+ the publish, synchronization, validation, and stable-ID workflow.
48
+
43
49
  ### Docker e2e
44
50
 
45
51
  Trucoshi e2e tests depend on a running Lightning Accounts e2e server. Start that first in one
@@ -7,329 +7,306 @@
7
7
  "id": "argentino/1b_argentino_001",
8
8
  "card": "1b",
9
9
  "fileName": "1b_argentino_001.png",
10
- "assetPath": "skins/argentino/1b_argentino_001.png",
11
10
  "rarity": "COMMON"
12
11
  },
13
12
  {
14
13
  "id": "argentino/4e_argentino_001",
15
14
  "card": "4e",
16
15
  "fileName": "4e_argentino_001.png",
17
- "assetPath": "skins/argentino/4e_argentino_001.png",
18
16
  "rarity": "COMMON"
19
17
  },
20
18
  {
21
19
  "id": "argentino/4b_argentino_001",
22
20
  "card": "4b",
23
21
  "fileName": "4b_argentino_001.png",
24
- "assetPath": "skins/argentino/4b_argentino_001.png",
25
22
  "rarity": "COMMON"
26
23
  },
27
24
  {
28
25
  "id": "argentino/3b_argentino_001",
29
26
  "card": "3b",
30
27
  "fileName": "3b_argentino_001.png",
31
- "assetPath": "skins/argentino/3b_argentino_001.png",
32
28
  "rarity": "COMMON"
33
29
  },
34
30
  {
35
31
  "id": "argentino/7b_argentino_001",
36
32
  "card": "7b",
37
33
  "fileName": "7b_argentino_001.png",
38
- "assetPath": "skins/argentino/7b_argentino_001.png",
39
34
  "rarity": "COMMON"
40
35
  },
41
36
  {
42
37
  "id": "argentino/2c_argentino_001",
43
38
  "card": "2c",
44
39
  "fileName": "2c_argentino_001.png",
45
- "assetPath": "skins/argentino/2c_argentino_001.png",
46
40
  "rarity": "COMMON"
47
41
  },
48
42
  {
49
43
  "id": "argentino/2b_argentino_001",
50
44
  "card": "2b",
51
45
  "fileName": "2b_argentino_001.png",
52
- "assetPath": "skins/argentino/2b_argentino_001.png",
53
46
  "rarity": "COMMON"
54
47
  },
55
48
  {
56
49
  "id": "argentino/3b_argentino_002",
57
50
  "card": "3b",
58
51
  "fileName": "3b_argentino_002.png",
59
- "assetPath": "skins/argentino/3b_argentino_002.png",
60
52
  "rarity": "COMMON"
61
53
  },
62
54
  {
63
55
  "id": "argentino/3o_argentino_001",
64
56
  "card": "3o",
65
57
  "fileName": "3o_argentino_001.png",
66
- "assetPath": "skins/argentino/3o_argentino_001.png",
67
58
  "rarity": "COMMON"
68
59
  },
69
60
  {
70
61
  "id": "argentino/4b_argentino_002",
71
62
  "card": "4b",
72
63
  "fileName": "4b_argentino_002.png",
73
- "assetPath": "skins/argentino/4b_argentino_002.png",
74
64
  "rarity": "COMMON"
75
65
  },
76
66
  {
77
67
  "id": "argentino/5b_argentino_001",
78
68
  "card": "5b",
79
69
  "fileName": "5b_argentino_001.png",
80
- "assetPath": "skins/argentino/5b_argentino_001.png",
81
70
  "rarity": "COMMON"
82
71
  },
83
72
  {
84
73
  "id": "argentino/6b_argentino_001",
85
74
  "card": "6b",
86
75
  "fileName": "6b_argentino_001.png",
87
- "assetPath": "skins/argentino/6b_argentino_001.png",
88
76
  "rarity": "COMMON"
89
77
  },
90
78
  {
91
79
  "id": "argentino/7b_argentino_002",
92
80
  "card": "7b",
93
81
  "fileName": "7b_argentino_002.png",
94
- "assetPath": "skins/argentino/7b_argentino_002.png",
95
82
  "rarity": "COMMON"
96
83
  },
97
84
  {
98
85
  "id": "argentino/cb_argentino_002",
99
86
  "card": "cb",
100
87
  "fileName": "cb_argentino_002.png",
101
- "assetPath": "skins/argentino/cb_argentino_002.png",
102
88
  "rarity": "COMMON"
103
89
  },
104
90
  {
105
91
  "id": "argentino/ro_argentino_001",
106
92
  "card": "ro",
107
93
  "fileName": "ro_argentino_001.png",
108
- "assetPath": "skins/argentino/ro_argentino_001.png",
94
+ "rarity": "COMMON"
95
+ },
96
+ {
97
+ "id": "argentino/cb_argentino_004",
98
+ "card": "cb",
99
+ "fileName": "cb_argentino_004.png",
100
+ "rarity": "COMMON"
101
+ },
102
+ {
103
+ "id": "argentino/cc_argentino_002",
104
+ "card": "cc",
105
+ "fileName": "cc_argentino_002.png",
106
+ "rarity": "COMMON"
107
+ },
108
+ {
109
+ "id": "argentino/po_argentino_001",
110
+ "card": "po",
111
+ "fileName": "po_argentino_001.png",
112
+ "rarity": "COMMON"
113
+ },
114
+ {
115
+ "id": "argentino/re_argentino_002",
116
+ "card": "re",
117
+ "fileName": "re_argentino_002.png",
109
118
  "rarity": "COMMON"
110
119
  },
111
120
  {
112
121
  "id": "argentino/1b_argentino_002",
113
122
  "card": "1b",
114
123
  "fileName": "1b_argentino_002.png",
115
- "assetPath": "skins/argentino/1b_argentino_002.png",
116
124
  "rarity": "RARE"
117
125
  },
118
126
  {
119
127
  "id": "argentino/1c_argentino_001",
120
128
  "card": "1c",
121
129
  "fileName": "1c_argentino_001.png",
122
- "assetPath": "skins/argentino/1c_argentino_001.png",
123
130
  "rarity": "RARE"
124
131
  },
125
132
  {
126
133
  "id": "argentino/1e_argentino_001",
127
134
  "card": "1e",
128
135
  "fileName": "1e_argentino_001.png",
129
- "assetPath": "skins/argentino/1e_argentino_001.png",
130
136
  "rarity": "RARE"
131
137
  },
132
138
  {
133
139
  "id": "argentino/1e_argentino_002",
134
140
  "card": "1e",
135
141
  "fileName": "1e_argentino_002.png",
136
- "assetPath": "skins/argentino/1e_argentino_002.png",
137
142
  "rarity": "RARE"
138
143
  },
139
144
  {
140
145
  "id": "argentino/pb_argentino_001",
141
146
  "card": "pb",
142
147
  "fileName": "pb_argentino_001.png",
143
- "assetPath": "skins/argentino/pb_argentino_001.png",
144
148
  "rarity": "RARE"
145
149
  },
146
150
  {
147
151
  "id": "argentino/pc_argentino_001",
148
152
  "card": "pc",
149
153
  "fileName": "pc_argentino_001.png",
150
- "assetPath": "skins/argentino/pc_argentino_001.png",
151
154
  "rarity": "RARE"
152
155
  },
153
156
  {
154
157
  "id": "argentino/pe_argentino_001",
155
158
  "card": "pe",
156
159
  "fileName": "pe_argentino_001.png",
157
- "assetPath": "skins/argentino/pe_argentino_001.png",
158
160
  "rarity": "RARE"
159
161
  },
160
162
  {
161
163
  "id": "argentino/1o_argentino_001",
162
164
  "card": "1o",
163
165
  "fileName": "1o_argentino_001.png",
164
- "assetPath": "skins/argentino/1o_argentino_001.png",
165
166
  "rarity": "RARE"
166
167
  },
167
168
  {
168
169
  "id": "argentino/2e_argentino_001",
169
170
  "card": "2e",
170
171
  "fileName": "2e_argentino_001.png",
171
- "assetPath": "skins/argentino/2e_argentino_001.png",
172
172
  "rarity": "RARE"
173
173
  },
174
174
  {
175
175
  "id": "argentino/2o_argentino_001",
176
176
  "card": "2o",
177
177
  "fileName": "2o_argentino_001.png",
178
- "assetPath": "skins/argentino/2o_argentino_001.png",
179
178
  "rarity": "RARE"
180
179
  },
181
180
  {
182
181
  "id": "argentino/cb_argentino_003",
183
182
  "card": "cb",
184
183
  "fileName": "cb_argentino_003.png",
185
- "assetPath": "skins/argentino/cb_argentino_003.png",
186
184
  "rarity": "RARE"
187
185
  },
188
186
  {
189
187
  "id": "argentino/cc_argentino_001",
190
188
  "card": "cc",
191
189
  "fileName": "cc_argentino_001.png",
192
- "assetPath": "skins/argentino/cc_argentino_001.png",
193
190
  "rarity": "RARE"
194
191
  },
195
192
  {
196
193
  "id": "argentino/rc_argentino_001",
197
194
  "card": "rc",
198
195
  "fileName": "rc_argentino_001.png",
199
- "assetPath": "skins/argentino/rc_argentino_001.png",
200
196
  "rarity": "RARE"
201
197
  },
202
198
  {
203
199
  "id": "argentino/1e_argentino_003",
204
200
  "card": "1e",
205
201
  "fileName": "1e_argentino_003.png",
206
- "assetPath": "skins/argentino/1e_argentino_003.png",
207
202
  "rarity": "EPIC"
208
203
  },
209
204
  {
210
205
  "id": "argentino/1e_argentino_004",
211
206
  "card": "1e",
212
207
  "fileName": "1e_argentino_004.png",
213
- "assetPath": "skins/argentino/1e_argentino_004.png",
214
208
  "rarity": "EPIC"
215
209
  },
216
210
  {
217
211
  "id": "argentino/7e_argentino_001",
218
212
  "card": "7e",
219
213
  "fileName": "7e_argentino_001.png",
220
- "assetPath": "skins/argentino/7e_argentino_001.png",
221
214
  "rarity": "EPIC"
222
215
  },
223
216
  {
224
217
  "id": "argentino/pc_argentino_002",
225
218
  "card": "pc",
226
219
  "fileName": "pc_argentino_002.png",
227
- "assetPath": "skins/argentino/pc_argentino_002.png",
228
220
  "rarity": "EPIC"
229
221
  },
230
222
  {
231
223
  "id": "argentino/rb_argentino_001",
232
224
  "card": "rb",
233
225
  "fileName": "rb_argentino_001.png",
234
- "assetPath": "skins/argentino/rb_argentino_001.png",
235
226
  "rarity": "EPIC"
236
227
  },
237
228
  {
238
229
  "id": "argentino/rb_argentino_002",
239
230
  "card": "rb",
240
231
  "fileName": "rb_argentino_002.png",
241
- "assetPath": "skins/argentino/rb_argentino_002.png",
242
232
  "rarity": "EPIC"
243
233
  },
244
234
  {
245
235
  "id": "argentino/pb_argentino_002",
246
236
  "card": "pb",
247
237
  "fileName": "pb_argentino_002.png",
248
- "assetPath": "skins/argentino/pb_argentino_002.png",
249
238
  "rarity": "EPIC"
250
239
  },
251
240
  {
252
241
  "id": "argentino/5c_argentino_001",
253
242
  "card": "5c",
254
243
  "fileName": "5c_argentino_001.png",
255
- "assetPath": "skins/argentino/5c_argentino_001.png",
256
244
  "rarity": "EPIC"
257
245
  },
258
246
  {
259
247
  "id": "argentino/3c_argentino_001",
260
248
  "card": "3c",
261
249
  "fileName": "3c_argentino_001.png",
262
- "assetPath": "skins/argentino/3c_argentino_001.png",
263
250
  "rarity": "EPIC"
264
251
  },
265
252
  {
266
253
  "id": "argentino/3o_argentino_002",
267
254
  "card": "3o",
268
255
  "fileName": "3o_argentino_002.png",
269
- "assetPath": "skins/argentino/3o_argentino_002.png",
270
256
  "rarity": "EPIC"
271
257
  },
272
258
  {
273
259
  "id": "argentino/4c_argentino_001",
274
260
  "card": "4c",
275
261
  "fileName": "4c_argentino_001.png",
276
- "assetPath": "skins/argentino/4c_argentino_001.png",
277
262
  "rarity": "EPIC"
278
263
  },
279
264
  {
280
265
  "id": "argentino/cb_argentino_001",
281
266
  "card": "cb",
282
267
  "fileName": "cb_argentino_001.png",
283
- "assetPath": "skins/argentino/cb_argentino_001.png",
284
268
  "rarity": "EPIC"
285
269
  },
286
270
  {
287
271
  "id": "argentino/co_argentino_001",
288
272
  "card": "co",
289
273
  "fileName": "co_argentino_001.png",
290
- "assetPath": "skins/argentino/co_argentino_001.png",
291
274
  "rarity": "EPIC"
292
275
  },
293
276
  {
294
277
  "id": "argentino/rb_argentino_003",
295
278
  "card": "rb",
296
279
  "fileName": "rb_argentino_003.png",
297
- "assetPath": "skins/argentino/rb_argentino_003.png",
298
280
  "rarity": "LEGENDARY"
299
281
  },
300
282
  {
301
283
  "id": "argentino/ce_argentino_001",
302
284
  "card": "ce",
303
285
  "fileName": "ce_argentino_001.png",
304
- "assetPath": "skins/argentino/ce_argentino_001.png",
305
286
  "rarity": "LEGENDARY"
306
287
  },
307
288
  {
308
289
  "id": "argentino/7o_argentino_001",
309
290
  "card": "7o",
310
291
  "fileName": "7o_argentino_001.png",
311
- "assetPath": "skins/argentino/7o_argentino_001.png",
312
292
  "rarity": "LEGENDARY"
313
293
  },
314
294
  {
315
295
  "id": "argentino/3e_argentino_001",
316
296
  "card": "3e",
317
297
  "fileName": "3e_argentino_001.png",
318
- "assetPath": "skins/argentino/3e_argentino_001.png",
319
298
  "rarity": "LEGENDARY"
320
299
  },
321
300
  {
322
301
  "id": "argentino/3c_argentino_002",
323
302
  "card": "3c",
324
303
  "fileName": "3c_argentino_002.png",
325
- "assetPath": "skins/argentino/3c_argentino_002.png",
326
304
  "rarity": "LEGENDARY"
327
305
  },
328
306
  {
329
307
  "id": "argentino/re_argentino_001",
330
308
  "card": "re",
331
309
  "fileName": "re_argentino_001.png",
332
- "assetPath": "skins/argentino/re_argentino_001.png",
333
310
  "rarity": "LEGENDARY"
334
311
  }
335
312
  ]
package/dist/events.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { SocketError } from "./server";
2
- import { EMatchState, IAdminCreateChestRewardCodeInput, IAdminCreateChestRewardCodeResult, IAdminDashboard, IAdminSetNoticeBannerInput, IAdminSetNoticeBannerResult, IAccountDetails, CardSkinId, ICard, IChatMessage, IEquippedDeck, ILobbyOptions, IInventoryCardGroup, IMatchDetails, IPlayerRanking, IPublicChatRoom, IPublicMatch, IPublicMatchInfo, IPublicMatchStats, IJoinQueueOptions, IQueueMatchFound, IQueueMatchCancelled, IQueueMatchStarting, IQueueReadyUpdate, IQueueStatus, IRewardCodeRedeemResult, IPublicNoticeBanner, ITreasureOpenResult, ITreasureStatus, ITrucoshiStats, IUserData, IWaitingPlayData, IWaitingSayData } from "./types";
2
+ import { EMatchState, IAdminCreateChestRewardCodeInput, IAdminCreateChestRewardCodeResult, IAdminDashboard, IAdminSetNoticeBannerInput, IAdminSetNoticeBannerResult, IAccountDetails, CardSkinId, ICard, IChatMessage, IEquippedDeck, ILobbyOptions, IInventoryCardGroup, IMatchDetails, IPlayerRanking, IPublicChatRoom, IPublicMatch, IPublicMatchInfo, IPublicMatchStats, IJoinQueueOptions, IQueueMatchFound, IQueueMatchCancelled, IQueueMatchStarting, IQueueReadyUpdate, IQueueStatus, IRewardCodeRedeemResult, IPublicNoticeBanner, ITreasureOpenResult, ITreasureStatus, ISkinRollResult, ITrucoshiStats, IUserData, IWaitingPlayData, IWaitingSayData } from "./types";
3
3
  export type IEventCallback<T = {}> = (args: {
4
4
  success: boolean;
5
5
  error?: SocketError;
@@ -32,7 +32,7 @@ export interface ServerToClientEvents {
32
32
  [EServerEvent.PONG]: (serverTime: number, clientTime: number) => void;
33
33
  [EServerEvent.UPDATE_CHAT]: (room: IPublicChatRoom) => void;
34
34
  [EServerEvent.UPDATE_STATS]: (room: ITrucoshiStats) => void;
35
- [EServerEvent.QUEUE_UPDATE]: (status: IQueueStatus) => void;
35
+ [EServerEvent.QUEUE_UPDATE]: (status: IQueueStatus | null) => void;
36
36
  [EServerEvent.QUEUE_MATCH_FOUND]: (match: IQueueMatchFound) => void;
37
37
  [EServerEvent.QUEUE_READY_UPDATE]: (update: IQueueReadyUpdate) => void;
38
38
  [EServerEvent.QUEUE_MATCH_STARTING]: (starting: IQueueMatchStarting) => void;
@@ -74,6 +74,7 @@ export declare enum EClientEvent {
74
74
  DECLINE_QUEUE_MATCH = "DECLINE_QUEUE_MATCH",
75
75
  FETCH_INVENTORY = "FETCH_INVENTORY",
76
76
  SET_DECK_CARD_SKIN = "SET_DECK_CARD_SKIN",
77
+ ROLL_CARD_SKINS = "ROLL_CARD_SKINS",
77
78
  FETCH_TREASURE_STATUS = "FETCH_TREASURE_STATUS",
78
79
  OPEN_TREASURE_CHEST = "OPEN_TREASURE_CHEST",
79
80
  DEV_GRANT_TREASURE_CHEST = "DEV_GRANT_TREASURE_CHEST",
@@ -154,6 +155,11 @@ export interface ClientToServerEvents {
154
155
  inventory: IInventoryCardGroup[];
155
156
  equippedDeck: IEquippedDeck;
156
157
  }>) => void;
158
+ [EClientEvent.ROLL_CARD_SKINS]: (cardSkinIds: CardSkinId[], callback: IEventCallback<{
159
+ rollResult?: ISkinRollResult;
160
+ inventory: IInventoryCardGroup[];
161
+ equippedDeck: IEquippedDeck;
162
+ }>) => void;
157
163
  [EClientEvent.FETCH_TREASURE_STATUS]: (callback: IEventCallback<{
158
164
  treasureStatus: ITreasureStatus;
159
165
  }>) => void;
package/dist/events.js CHANGED
@@ -46,6 +46,7 @@ export var EClientEvent;
46
46
  EClientEvent["DECLINE_QUEUE_MATCH"] = "DECLINE_QUEUE_MATCH";
47
47
  EClientEvent["FETCH_INVENTORY"] = "FETCH_INVENTORY";
48
48
  EClientEvent["SET_DECK_CARD_SKIN"] = "SET_DECK_CARD_SKIN";
49
+ EClientEvent["ROLL_CARD_SKINS"] = "ROLL_CARD_SKINS";
49
50
  EClientEvent["FETCH_TREASURE_STATUS"] = "FETCH_TREASURE_STATUS";
50
51
  EClientEvent["OPEN_TREASURE_CHEST"] = "OPEN_TREASURE_CHEST";
51
52
  EClientEvent["DEV_GRANT_TREASURE_CHEST"] = "DEV_GRANT_TREASURE_CHEST";
package/dist/lib/Skins.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import skinReleases from "../cosmetics/skins.json";
2
- const normalizeSkin = (release, skin) => (Object.assign({ enabled: true, unlockable: true, release }, skin));
2
+ const normalizeSkin = (release, skin) => (Object.assign(Object.assign({ enabled: true, unlockable: true }, skin), { release, assetPath: `web/releases/${release}/${skin.fileName}` }));
3
3
  export const SKIN_RELEASES = skinReleases.map(({ release, grantOnInventory = false, grantSource, skins }) => ({
4
4
  release,
5
5
  grantOnInventory,
@@ -96,5 +96,9 @@ export declare const SUITS_HUMAN_READABLE: {
96
96
  c: string;
97
97
  };
98
98
  export declare const TEAM_SIZE_VALUES: number[];
99
- export declare const PICA_PICA_TRIGGER_PERCENT = 0.5;
99
+ export declare const DEFAULT_TEAM_NAMES: Record<0 | 1, string>;
100
+ export declare const getDefaultTeamName: (teamIdx: 0 | 1) => string;
101
+ export declare const PICA_PICA_TRIGGER_PERCENT: number;
102
+ export declare const PICA_PICA_END_PERCENT: number;
100
103
  export declare const PICA_PICA_TEAM_SIZE = 6;
104
+ export declare const getQueueMatchPoint: (maxPlayers: 2 | 4 | 6) => 9 | 12 | 15;
@@ -95,5 +95,18 @@ export const SUITS_HUMAN_READABLE = {
95
95
  c: "🍷",
96
96
  };
97
97
  export const TEAM_SIZE_VALUES = [1, 2, 3];
98
- export const PICA_PICA_TRIGGER_PERCENT = 0.5;
98
+ export const DEFAULT_TEAM_NAMES = {
99
+ 0: "Naranja",
100
+ 1: "Violeta",
101
+ };
102
+ export const getDefaultTeamName = (teamIdx) => DEFAULT_TEAM_NAMES[teamIdx];
103
+ export const PICA_PICA_TRIGGER_PERCENT = 1 / 3;
104
+ export const PICA_PICA_END_PERCENT = 2 / 3;
99
105
  export const PICA_PICA_TEAM_SIZE = 6;
106
+ export const getQueueMatchPoint = (maxPlayers) => {
107
+ if (maxPlayers === 6)
108
+ return 15;
109
+ if (maxPlayers === 4)
110
+ return 12;
111
+ return 9;
112
+ };
package/dist/types.d.ts CHANGED
@@ -376,6 +376,7 @@ export type IEquippedDeck = Partial<Record<ICard, CardSkinId>>;
376
376
  export interface IInventoryCardSkin extends ICardSkin {
377
377
  unlocked: boolean;
378
378
  equipped: boolean;
379
+ quantity: number;
379
380
  }
380
381
  export interface IInventoryCardGroup {
381
382
  card: ICard;
@@ -403,6 +404,13 @@ export interface ITreasureOpenResult {
403
404
  duplicate: boolean;
404
405
  granted: boolean;
405
406
  }
407
+ export interface ISkinRollResult {
408
+ rollId: number;
409
+ inputRarity: CardSkinRarity;
410
+ outputRarity: CardSkinRarity;
411
+ consumedSkinIds: CardSkinId[];
412
+ rewardedSkin: ICardSkin;
413
+ }
406
414
  export interface IAdminOnlineAccount {
407
415
  accountId: number;
408
416
  name: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trucoshi",
3
- "version": "12.2.0",
3
+ "version": "13.0.0-rc.1",
4
4
  "description": "Truco Game Server",
5
5
  "main": "dist/types.js",
6
6
  "license": "GPL-3.0",