hella-types 0.0.6 → 0.0.7
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/.gitattributes +2 -0
- package/dist/index.d.ts +2541 -1765
- package/dist/index.js +399 -432
- package/package.json +1 -1
- package/src/index.ts +441 -471
package/src/index.ts
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import * as t from 'io-ts';
|
|
2
2
|
|
|
3
|
+
const stringIO = t.type({
|
|
4
|
+
m_defined: t.boolean,
|
|
5
|
+
m_value: t.union([t.string, t.null]),
|
|
6
|
+
});
|
|
7
|
+
const stringArrayIO = t.type({
|
|
8
|
+
m_defined: t.boolean,
|
|
9
|
+
m_value: t.union([t.array(t.string), t.null]),
|
|
10
|
+
});
|
|
11
|
+
const numberIO = t.type({
|
|
12
|
+
m_defined: t.boolean,
|
|
13
|
+
m_value: t.union([t.number, t.null]),
|
|
14
|
+
});
|
|
15
|
+
const booleanIO = t.type({
|
|
16
|
+
m_defined: t.boolean,
|
|
17
|
+
m_value: t.boolean,
|
|
18
|
+
});
|
|
19
|
+
|
|
3
20
|
export const AttributesKeyFrameIO = t.type({
|
|
4
21
|
level: t.number,
|
|
5
22
|
data: t.type({
|
|
@@ -29,94 +46,33 @@ export const AttributesKeyFrameIO = t.type({
|
|
|
29
46
|
});
|
|
30
47
|
export const BlackboardIO = t.type({
|
|
31
48
|
key: t.string,
|
|
32
|
-
value: t.union([t.number, t.
|
|
33
|
-
valueStr: t.union([t.string, t.undefined]),
|
|
49
|
+
value: t.union([t.number, t.null]),
|
|
50
|
+
valueStr: t.union([t.string, t.null, t.undefined]),
|
|
34
51
|
});
|
|
35
52
|
export const EnemyAttributesIO = t.type({
|
|
36
|
-
maxHp:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}),
|
|
60
|
-
moveSpeed: t.type({
|
|
61
|
-
m_defined: t.boolean,
|
|
62
|
-
m_value: t.number,
|
|
63
|
-
}),
|
|
64
|
-
attackSpeed: t.type({
|
|
65
|
-
m_defined: t.boolean,
|
|
66
|
-
m_value: t.number,
|
|
67
|
-
}),
|
|
68
|
-
baseAttackTime: t.type({
|
|
69
|
-
m_defined: t.boolean,
|
|
70
|
-
m_value: t.number,
|
|
71
|
-
}),
|
|
72
|
-
respawnTime: t.type({
|
|
73
|
-
m_defined: t.boolean,
|
|
74
|
-
m_value: t.number,
|
|
75
|
-
}),
|
|
76
|
-
hpRecoveryPerSec: t.type({
|
|
77
|
-
m_defined: t.boolean,
|
|
78
|
-
m_value: t.number,
|
|
79
|
-
}),
|
|
80
|
-
spRecoveryPerSec: t.type({
|
|
81
|
-
m_defined: t.boolean,
|
|
82
|
-
m_value: t.number,
|
|
83
|
-
}),
|
|
84
|
-
maxDeployCount: t.type({
|
|
85
|
-
m_defined: t.boolean,
|
|
86
|
-
m_value: t.number,
|
|
87
|
-
}),
|
|
88
|
-
massLevel: t.type({
|
|
89
|
-
m_defined: t.boolean,
|
|
90
|
-
m_value: t.number,
|
|
91
|
-
}),
|
|
92
|
-
baseForceLevel: t.type({
|
|
93
|
-
m_defined: t.boolean,
|
|
94
|
-
m_value: t.number,
|
|
95
|
-
}),
|
|
96
|
-
tauntLevel: t.type({
|
|
97
|
-
m_defined: t.boolean,
|
|
98
|
-
m_value: t.number,
|
|
99
|
-
}),
|
|
100
|
-
stunImmune: t.type({
|
|
101
|
-
m_defined: t.boolean,
|
|
102
|
-
m_value: t.boolean,
|
|
103
|
-
}),
|
|
104
|
-
silenceImmune: t.type({
|
|
105
|
-
m_defined: t.boolean,
|
|
106
|
-
m_value: t.boolean,
|
|
107
|
-
}),
|
|
108
|
-
sleepImmune: t.type({
|
|
109
|
-
m_defined: t.boolean,
|
|
110
|
-
m_value: t.boolean,
|
|
111
|
-
}),
|
|
112
|
-
frozenImmune: t.type({
|
|
113
|
-
m_defined: t.boolean,
|
|
114
|
-
m_value: t.boolean,
|
|
115
|
-
}),
|
|
116
|
-
levitateImmune: t.type({
|
|
117
|
-
m_defined: t.boolean,
|
|
118
|
-
m_value: t.boolean,
|
|
119
|
-
}),
|
|
53
|
+
maxHp: numberIO,
|
|
54
|
+
atk: numberIO,
|
|
55
|
+
def: numberIO,
|
|
56
|
+
magicResistance: numberIO,
|
|
57
|
+
cost: numberIO,
|
|
58
|
+
blockCnt: numberIO,
|
|
59
|
+
moveSpeed: numberIO,
|
|
60
|
+
attackSpeed: numberIO,
|
|
61
|
+
baseAttackTime: numberIO,
|
|
62
|
+
respawnTime: numberIO,
|
|
63
|
+
hpRecoveryPerSec: numberIO,
|
|
64
|
+
spRecoveryPerSec: numberIO,
|
|
65
|
+
maxDeployCount: numberIO,
|
|
66
|
+
massLevel: numberIO,
|
|
67
|
+
baseForceLevel: numberIO,
|
|
68
|
+
tauntLevel: t.union([numberIO, t.undefined]), // legacy
|
|
69
|
+
epDamageResistance: t.union([numberIO, t.undefined]), // legacy
|
|
70
|
+
epResistance: t.union([numberIO, t.undefined]), // ~
|
|
71
|
+
stunImmune: booleanIO,
|
|
72
|
+
silenceImmune: booleanIO,
|
|
73
|
+
sleepImmune: t.union([booleanIO, t.undefined]),
|
|
74
|
+
frozenImmune: t.union([booleanIO, t.undefined]), // legacy
|
|
75
|
+
levitateImmune: t.union([booleanIO, t.undefined]), // legacy
|
|
120
76
|
});
|
|
121
77
|
export const EnemySkillsIO = t.type({
|
|
122
78
|
prefabKey: t.string,
|
|
@@ -124,14 +80,32 @@ export const EnemySkillsIO = t.type({
|
|
|
124
80
|
cooldown: t.number,
|
|
125
81
|
initCooldown: t.number,
|
|
126
82
|
spCost: t.number,
|
|
127
|
-
blackboard: t.array(BlackboardIO),
|
|
83
|
+
blackboard: t.union([t.array(BlackboardIO), t.null]),
|
|
128
84
|
});
|
|
129
85
|
export const EnemySpDataIO = t.type({
|
|
130
|
-
spType: t.
|
|
86
|
+
spType: t.string,
|
|
131
87
|
maxSp: t.number,
|
|
132
88
|
initSp: t.number,
|
|
133
89
|
increment: t.number,
|
|
134
90
|
});
|
|
91
|
+
export const EnemyData = t.type({
|
|
92
|
+
name: stringIO,
|
|
93
|
+
description: stringIO,
|
|
94
|
+
prefabKey: stringIO,
|
|
95
|
+
attributes: EnemyAttributesIO,
|
|
96
|
+
applyWay: t.union([stringIO, t.undefined]), // legacy
|
|
97
|
+
motion: t.union([stringIO, t.undefined]), // legacy
|
|
98
|
+
enemyTags: t.union([stringArrayIO, t.undefined]), // legacy
|
|
99
|
+
lifePointReduce: numberIO,
|
|
100
|
+
levelType: t.union([stringIO, numberIO, t.undefined]), // legacy
|
|
101
|
+
rangeRadius: numberIO,
|
|
102
|
+
numOfExtraDrops: t.union([numberIO, t.undefined]), // legacy
|
|
103
|
+
viewRadius: t.union([numberIO, t.undefined]), // legacy
|
|
104
|
+
notCountInTotal: t.union([booleanIO, t.undefined]), // legacy
|
|
105
|
+
talentBlackboard: t.union([t.array(BlackboardIO), t.null]),
|
|
106
|
+
skills: t.union([t.array(EnemySkillsIO), t.null]),
|
|
107
|
+
spData: t.union([EnemySpDataIO, t.null]),
|
|
108
|
+
});
|
|
135
109
|
export const GridRangeIO = t.type({
|
|
136
110
|
id: t.string,
|
|
137
111
|
direction: t.number,
|
|
@@ -204,13 +178,13 @@ export const WorkshopFormulaIO = t.type({
|
|
|
204
178
|
),
|
|
205
179
|
});
|
|
206
180
|
export const OperatorUnlockCondIO = t.type({
|
|
207
|
-
phase: t.string,
|
|
181
|
+
phase: t.union([t.string, t.number]),
|
|
208
182
|
level: t.number,
|
|
209
183
|
});
|
|
210
184
|
export const LevelUpCostCondIO = t.type({
|
|
211
185
|
unlockCond: OperatorUnlockCondIO,
|
|
212
186
|
lvlUpTime: t.number,
|
|
213
|
-
levelUpCost: t.array(LevelUpCostIO),
|
|
187
|
+
levelUpCost: t.union([t.array(LevelUpCostIO), t.null]),
|
|
214
188
|
});
|
|
215
189
|
export const StageDefinesIO = t.type({
|
|
216
190
|
characterInsts: t.array(t.any),
|
|
@@ -220,27 +194,30 @@ export const StageDefinesIO = t.type({
|
|
|
220
194
|
row: t.number,
|
|
221
195
|
col: t.number,
|
|
222
196
|
}),
|
|
223
|
-
direction: t.number,
|
|
197
|
+
direction: t.union([t.string, t.number]), // legacy
|
|
224
198
|
hidden: t.boolean,
|
|
225
|
-
alias: t.string,
|
|
226
|
-
uniEquipIds: t.
|
|
227
|
-
t.
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
199
|
+
alias: t.union([t.string, t.null]),
|
|
200
|
+
uniEquipIds: t.union([
|
|
201
|
+
t.array(
|
|
202
|
+
t.type({
|
|
203
|
+
key: t.string,
|
|
204
|
+
level: t.number,
|
|
205
|
+
})
|
|
206
|
+
),
|
|
207
|
+
t.null, t.undefined] // legacy
|
|
231
208
|
),
|
|
232
209
|
inst: t.type({
|
|
233
210
|
characterKey: t.string,
|
|
234
211
|
level: t.number,
|
|
235
|
-
phase: t.number,
|
|
212
|
+
phase: t.union([t.string, t.number]), // legacy
|
|
236
213
|
favorPoint: t.number,
|
|
237
214
|
potentialRank: t.number,
|
|
238
215
|
}),
|
|
239
216
|
skillIndex: t.number,
|
|
240
217
|
mainSkillLvl: t.number,
|
|
241
|
-
skinId: t.string,
|
|
242
|
-
tmplId: t.string,
|
|
243
|
-
overrideSkillBlackboard: t.array(BlackboardIO),
|
|
218
|
+
skinId: t.union([t.string, t.null]),
|
|
219
|
+
tmplId: t.union([t.string, t.null, t.undefined]),
|
|
220
|
+
overrideSkillBlackboard: t.union([t.array(BlackboardIO), t.null, t.undefined]),
|
|
244
221
|
})
|
|
245
222
|
),
|
|
246
223
|
characterCards: t.array(t.any),
|
|
@@ -253,8 +230,34 @@ export const StageEffectIO = t.type({
|
|
|
253
230
|
y: t.number,
|
|
254
231
|
z: t.number,
|
|
255
232
|
}),
|
|
256
|
-
direction: t.number,
|
|
233
|
+
direction: t.union([t.string, t.number]), // legacy
|
|
257
234
|
});
|
|
235
|
+
export const StageActionIO = t.type({
|
|
236
|
+
preDelay: t.number,
|
|
237
|
+
actions: t.array(
|
|
238
|
+
t.type({
|
|
239
|
+
actionType: t.union([t.string, t.number]), // legacy
|
|
240
|
+
managedByScheduler: t.boolean,
|
|
241
|
+
key: t.string,
|
|
242
|
+
count: t.number,
|
|
243
|
+
preDelay: t.number,
|
|
244
|
+
interval: t.number,
|
|
245
|
+
routeIndex: t.number,
|
|
246
|
+
blockFragment: t.boolean,
|
|
247
|
+
autoPreviewRoute: t.boolean,
|
|
248
|
+
autoDisplayEnemyInfo: t.union([t.boolean, t.undefined]), // legacy
|
|
249
|
+
isUnharmfulAndAlwaysCountAsKilled: t.boolean,
|
|
250
|
+
hiddenGroup: t.union([t.string, t.null]),
|
|
251
|
+
randomSpawnGroupKey: t.union([t.string, t.null, t.undefined]), // legacy
|
|
252
|
+
randomSpawnGroupPackKey: t.union([t.string, t.null, t.undefined]), // legacy
|
|
253
|
+
randomType: t.union([t.string, t.number, t.undefined]), // legacy
|
|
254
|
+
weight: t.union([t.number, t.undefined]), // legacy
|
|
255
|
+
dontBlockWave: t.union([t.boolean, t.undefined]), // legacy
|
|
256
|
+
isValid: t.union([t.boolean, t.undefined]), // legacy
|
|
257
|
+
extraMeta: t.union([t.null, t.undefined]), // legacy
|
|
258
|
+
})
|
|
259
|
+
),
|
|
260
|
+
})
|
|
258
261
|
export const StageDataIO = t.type({
|
|
259
262
|
options: t.type({
|
|
260
263
|
characterLimit: t.number,
|
|
@@ -265,126 +268,114 @@ export const StageDataIO = t.type({
|
|
|
265
268
|
moveMultiplier: t.number,
|
|
266
269
|
steeringEnabled: t.boolean,
|
|
267
270
|
isTrainingLevel: t.boolean,
|
|
268
|
-
isHardTrainingLevel: t.boolean,
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
271
|
+
isHardTrainingLevel: t.union([t.boolean, t.undefined]), // legacy
|
|
272
|
+
isPredefinedCardsSelectable: t.union([t.boolean, t.undefined]), // legacy
|
|
273
|
+
maxPlayTime: t.union([t.number, t.undefined]), // legacy
|
|
274
|
+
functionDisableMask: t.union([t.string, t.number]),
|
|
275
|
+
configBlackBoard: t.union([t.array(BlackboardIO), t.null, t.undefined]), // legacy
|
|
276
|
+
}),
|
|
277
|
+
levelId: t.union([t.string, t.null]),
|
|
278
|
+
mapId: t.union([t.string, t.null]),
|
|
279
|
+
bgmEvent: t.union([t.string, t.null]),
|
|
280
|
+
environmentSe: t.union([t.string, t.null]),
|
|
275
281
|
mapData: t.type({
|
|
276
282
|
map: t.array(t.array(t.number)),
|
|
277
283
|
tiles: t.array(
|
|
278
284
|
t.type({
|
|
279
285
|
tileKey: t.string,
|
|
280
|
-
heightType: t.number,
|
|
281
|
-
buildableType: t.number,
|
|
282
|
-
passableMask: t.number,
|
|
283
|
-
playerSideMask: t.number,
|
|
284
|
-
blackboard: BlackboardIO,
|
|
285
|
-
effects: t.array(StageEffectIO),
|
|
286
|
+
heightType: t.union([t.string, t.number]), // keep number for legacy stages (monster hunter, vignettes, etc.)
|
|
287
|
+
buildableType: t.union([t.string, t.number]), // ~
|
|
288
|
+
passableMask: t.union([t.string, t.number]), // ~
|
|
289
|
+
playerSideMask: t.union([t.string, t.number, t.undefined]), // ~
|
|
290
|
+
blackboard: t.union([t.array(BlackboardIO), t.null]),
|
|
291
|
+
effects: t.union([t.array(StageEffectIO), t.null]),
|
|
286
292
|
})
|
|
287
293
|
),
|
|
288
|
-
blockEdges: t.null,
|
|
289
|
-
tags: t.array(t.string),
|
|
290
|
-
effects: t.array(StageEffectIO),
|
|
291
|
-
layerRects: t.
|
|
292
|
-
width: t.number,
|
|
293
|
-
height: t.number,
|
|
294
|
+
blockEdges: t.union([t.array(t.any), t.null]),
|
|
295
|
+
tags: t.union([t.array(t.string), t.null]),
|
|
296
|
+
effects: t.union([t.array(StageEffectIO), t.null]),
|
|
297
|
+
layerRects: t.union([t.null, t.undefined]),
|
|
294
298
|
}),
|
|
295
299
|
tilesDisallowToLocate: t.array(t.any),
|
|
296
|
-
runes: t.
|
|
297
|
-
t.
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
t.
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
300
|
+
runes: t.union([
|
|
301
|
+
t.array(
|
|
302
|
+
t.type({
|
|
303
|
+
difficultyMask: t.union([t.string, t.number]), // legacy
|
|
304
|
+
key: t.string,
|
|
305
|
+
professionMask: t.union([t.string, t.number, t.undefined]), // legacy
|
|
306
|
+
buildableMask: t.union([t.string, t.number]), // legacy
|
|
307
|
+
blackboard: t.array(BlackboardIO),
|
|
308
|
+
})
|
|
309
|
+
),
|
|
310
|
+
t.null
|
|
311
|
+
]),
|
|
312
|
+
globalBuffs: t.union([
|
|
313
|
+
t.array(
|
|
314
|
+
t.type({
|
|
315
|
+
prefabKey: t.string,
|
|
316
|
+
blackboard: t.union([t.array(BlackboardIO), t.null]),
|
|
317
|
+
overrideCameraEffect: t.null,
|
|
318
|
+
passProfessionMaskFlag: t.union([t.boolean, t.undefined]),
|
|
319
|
+
professionMask: t.union([t.string, t.number, t.undefined]),
|
|
320
|
+
})
|
|
321
|
+
),
|
|
322
|
+
t.null
|
|
323
|
+
]),
|
|
314
324
|
routes: t.array(
|
|
315
|
-
t.
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
325
|
+
t.union([
|
|
326
|
+
t.type({
|
|
327
|
+
motionMode: t.union([t.string, t.number]), // keep number for legacy
|
|
328
|
+
startPosition: t.type({
|
|
329
|
+
row: t.number,
|
|
330
|
+
col: t.number,
|
|
331
|
+
}),
|
|
332
|
+
endPosition: t.type({
|
|
333
|
+
row: t.number,
|
|
334
|
+
col: t.number,
|
|
335
|
+
}),
|
|
336
|
+
spawnRandomRange: t.type({
|
|
337
|
+
x: t.number,
|
|
338
|
+
y: t.number,
|
|
339
|
+
}),
|
|
340
|
+
spawnOffset: t.type({
|
|
341
|
+
x: t.number,
|
|
342
|
+
y: t.number,
|
|
343
|
+
}),
|
|
344
|
+
checkpoints: t.union([
|
|
345
|
+
t.array(
|
|
346
|
+
t.type({
|
|
347
|
+
type: t.union([t.string, t.number]), // keep number for legacy
|
|
348
|
+
time: t.number,
|
|
349
|
+
position: t.type({
|
|
350
|
+
row: t.number,
|
|
351
|
+
col: t.number,
|
|
352
|
+
}),
|
|
353
|
+
reachOffset: t.type({
|
|
354
|
+
x: t.number,
|
|
355
|
+
y: t.number,
|
|
356
|
+
}),
|
|
357
|
+
randomizeReachOffset: t.boolean,
|
|
358
|
+
reachDistance: t.number,
|
|
359
|
+
})
|
|
360
|
+
),
|
|
361
|
+
t.null
|
|
362
|
+
]),
|
|
363
|
+
allowDiagonalMove: t.boolean,
|
|
364
|
+
visitEveryTileCenter: t.boolean,
|
|
365
|
+
visitEveryNodeCenter: t.boolean,
|
|
366
|
+
visitEveryCheckPoint: t.union([t.boolean, t.undefined]), // legacy
|
|
332
367
|
}),
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
type: t.number,
|
|
336
|
-
time: t.number,
|
|
337
|
-
position: t.type({
|
|
338
|
-
row: t.number,
|
|
339
|
-
col: t.number,
|
|
340
|
-
}),
|
|
341
|
-
reachOffset: t.type({
|
|
342
|
-
x: t.number,
|
|
343
|
-
y: t.number,
|
|
344
|
-
}),
|
|
345
|
-
randomizeReachOffset: t.boolean,
|
|
346
|
-
reachDistance: t.number,
|
|
347
|
-
})
|
|
348
|
-
),
|
|
349
|
-
allowDiagonalMove: t.boolean,
|
|
350
|
-
visitEveryTileCenter: t.boolean,
|
|
351
|
-
visitEveryNodeCenter: t.boolean,
|
|
352
|
-
visitEveryCheckPoint: t.boolean,
|
|
353
|
-
})
|
|
368
|
+
t.null // legacy
|
|
369
|
+
])
|
|
354
370
|
),
|
|
355
|
-
extraRoutes: t.array(t.any),
|
|
371
|
+
extraRoutes: t.union([t.array(t.any), t.undefined]),
|
|
356
372
|
enemies: t.array(t.any),
|
|
357
373
|
enemyDbRefs: t.array(
|
|
358
374
|
t.type({
|
|
359
375
|
useDb: t.boolean,
|
|
360
376
|
id: t.string,
|
|
361
377
|
level: t.number,
|
|
362
|
-
overwrittenData: t.
|
|
363
|
-
name: t.type({
|
|
364
|
-
m_defined: t.boolean,
|
|
365
|
-
m_value: t.number,
|
|
366
|
-
}),
|
|
367
|
-
description: t.type({
|
|
368
|
-
m_defined: t.boolean,
|
|
369
|
-
m_value: t.number,
|
|
370
|
-
}),
|
|
371
|
-
prefabKey: t.type({
|
|
372
|
-
m_defined: t.boolean,
|
|
373
|
-
m_value: t.number,
|
|
374
|
-
}),
|
|
375
|
-
attributes: EnemyAttributesIO,
|
|
376
|
-
lifePointReduce: t.type({
|
|
377
|
-
m_defined: t.boolean,
|
|
378
|
-
m_value: t.number,
|
|
379
|
-
}),
|
|
380
|
-
rangeRadius: t.type({
|
|
381
|
-
m_defined: t.boolean,
|
|
382
|
-
m_value: t.number,
|
|
383
|
-
}),
|
|
384
|
-
talentBlackboard: t.array(BlackboardIO),
|
|
385
|
-
skills: t.array(EnemySkillsIO),
|
|
386
|
-
spData: EnemySpDataIO,
|
|
387
|
-
}),
|
|
378
|
+
overwrittenData: t.union([EnemyData, t.null]),
|
|
388
379
|
})
|
|
389
380
|
),
|
|
390
381
|
waves: t.array(
|
|
@@ -392,69 +383,30 @@ export const StageDataIO = t.type({
|
|
|
392
383
|
preDelay: t.number,
|
|
393
384
|
postDelay: t.number,
|
|
394
385
|
maxTimeWaitingForNextWave: t.number,
|
|
395
|
-
fragments: t.array(
|
|
396
|
-
|
|
397
|
-
preDelay: t.number,
|
|
398
|
-
actions: t.array(
|
|
399
|
-
t.type({
|
|
400
|
-
actionType: t.number,
|
|
401
|
-
managedByScheduler: t.boolean,
|
|
402
|
-
key: t.string,
|
|
403
|
-
count: t.number,
|
|
404
|
-
preDelay: t.number,
|
|
405
|
-
interval: t.number,
|
|
406
|
-
routeIndex: t.number,
|
|
407
|
-
blockFragment: t.boolean,
|
|
408
|
-
autoPreviewRoute: t.boolean,
|
|
409
|
-
isUnharmfulAndAlwaysCountAsKilled: t.boolean,
|
|
410
|
-
hiddenGroup: t.string,
|
|
411
|
-
randomSpawnGroupKey: t.string,
|
|
412
|
-
weight: t.number,
|
|
413
|
-
dontBlockWave: t.boolean,
|
|
414
|
-
})
|
|
415
|
-
),
|
|
416
|
-
name: t.string,
|
|
417
|
-
})
|
|
418
|
-
),
|
|
386
|
+
fragments: t.array(StageActionIO),
|
|
387
|
+
advancedWaveTag: t.union([t.string, t.null, t.undefined]), // legacy
|
|
419
388
|
})
|
|
420
389
|
),
|
|
421
|
-
branches: t.
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
preDelay: t.number,
|
|
433
|
-
interval: t.number,
|
|
434
|
-
routeIndex: t.number,
|
|
435
|
-
blockFragment: t.boolean,
|
|
436
|
-
autoPreviewRoute: t.boolean,
|
|
437
|
-
isUnharmfulAndAlwaysCountAsKilled: t.boolean,
|
|
438
|
-
hiddenGroup: t.string,
|
|
439
|
-
randomSpawnGroupKey: t.string,
|
|
440
|
-
weight: t.number,
|
|
441
|
-
weightValue: t.number,
|
|
442
|
-
})
|
|
443
|
-
),
|
|
444
|
-
})
|
|
445
|
-
),
|
|
446
|
-
}),
|
|
447
|
-
}),
|
|
448
|
-
predefines: StageDefinesIO,
|
|
449
|
-
hardPredefines: StageDefinesIO,
|
|
390
|
+
branches: t.union([
|
|
391
|
+
t.record(
|
|
392
|
+
t.string,
|
|
393
|
+
t.type({
|
|
394
|
+
phases: t.array(StageActionIO),
|
|
395
|
+
}),
|
|
396
|
+
),
|
|
397
|
+
t.null
|
|
398
|
+
]),
|
|
399
|
+
predefines: t.union([StageDefinesIO, t.null]),
|
|
400
|
+
hardPredefines: t.union([StageDefinesIO, t.null, t.undefined]),
|
|
450
401
|
excludeCharIdList: t.null,
|
|
451
402
|
randomSeed: t.number,
|
|
452
|
-
operaConfig: t.string,
|
|
403
|
+
operaConfig: t.union([t.string, t.null, t.undefined]),
|
|
404
|
+
runtimeData: t.union([t.null, t.undefined]), // legacy
|
|
453
405
|
});
|
|
454
406
|
export const RogueRelicIO = t.type({
|
|
455
407
|
id: t.string,
|
|
456
408
|
name: t.string,
|
|
457
|
-
description: t.string,
|
|
409
|
+
description: t.union([t.string, t.null]),
|
|
458
410
|
usage: t.string,
|
|
459
411
|
obtainApproach: t.string,
|
|
460
412
|
iconId: t.string,
|
|
@@ -464,7 +416,7 @@ export const RogueRelicIO = t.type({
|
|
|
464
416
|
value: t.number,
|
|
465
417
|
sortId: t.number,
|
|
466
418
|
canSacrifice: t.boolean,
|
|
467
|
-
unlockCondDesc: t.string,
|
|
419
|
+
unlockCondDesc: t.union([t.string, t.null]),
|
|
468
420
|
});
|
|
469
421
|
export const RogueStageIO = t.type({
|
|
470
422
|
excel: t.type({
|
|
@@ -475,11 +427,11 @@ export const RogueStageIO = t.type({
|
|
|
475
427
|
name: t.string,
|
|
476
428
|
loadingPicId: t.string,
|
|
477
429
|
description: t.string,
|
|
478
|
-
eliteDesc: t.string,
|
|
430
|
+
eliteDesc: t.union([t.string, t.null]),
|
|
479
431
|
isBoss: t.number,
|
|
480
432
|
isElite: t.number,
|
|
481
433
|
difficulty: t.string,
|
|
482
|
-
capsulePool: t.string,
|
|
434
|
+
capsulePool: t.union([t.string, t.null]),
|
|
483
435
|
capsuleProb: t.number,
|
|
484
436
|
vutresProb: t.array(t.number),
|
|
485
437
|
boxProb: t.array(t.number),
|
|
@@ -493,8 +445,8 @@ export const RogueVariationIO = t.type({
|
|
|
493
445
|
innerName: t.string,
|
|
494
446
|
functionDesc: t.string,
|
|
495
447
|
desc: t.string,
|
|
496
|
-
iconId: t.string,
|
|
497
|
-
sound: t.string,
|
|
448
|
+
iconId: t.union([t.string, t.null]),
|
|
449
|
+
sound: t.union([t.string, t.null]),
|
|
498
450
|
});
|
|
499
451
|
export const SandboxStageIO = t.type({
|
|
500
452
|
excel: t.type({
|
|
@@ -539,18 +491,13 @@ export const EnemyIO = t.type({
|
|
|
539
491
|
excel: t.type({
|
|
540
492
|
enemyId: t.string,
|
|
541
493
|
enemyIndex: t.string,
|
|
542
|
-
enemyTags: t.array(t.string),
|
|
494
|
+
enemyTags: t.union([t.array(t.string), t.null]),
|
|
543
495
|
sortId: t.number,
|
|
544
496
|
name: t.string,
|
|
545
|
-
enemyRace: t.string,
|
|
546
497
|
enemyLevel: t.string,
|
|
547
498
|
description: t.string,
|
|
548
|
-
attackType: t.
|
|
549
|
-
|
|
550
|
-
attack: t.string,
|
|
551
|
-
defence: t.string,
|
|
552
|
-
resistance: t.string,
|
|
553
|
-
ability: t.string,
|
|
499
|
+
attackType: t.null,
|
|
500
|
+
ability: t.null,
|
|
554
501
|
isInvalidKilled: t.boolean,
|
|
555
502
|
overrideKillCntInfos: t.record(t.string, t.any),
|
|
556
503
|
hideInHandbook: t.boolean,
|
|
@@ -560,40 +507,7 @@ export const EnemyIO = t.type({
|
|
|
560
507
|
Value: t.array(
|
|
561
508
|
t.type({
|
|
562
509
|
level: t.number,
|
|
563
|
-
enemyData:
|
|
564
|
-
name: t.type({
|
|
565
|
-
m_defined: t.boolean,
|
|
566
|
-
m_value: t.string,
|
|
567
|
-
}),
|
|
568
|
-
description: t.type({
|
|
569
|
-
m_defined: t.boolean,
|
|
570
|
-
m_value: t.string,
|
|
571
|
-
}),
|
|
572
|
-
prefabKey: t.type({
|
|
573
|
-
m_defined: t.boolean,
|
|
574
|
-
m_value: t.string,
|
|
575
|
-
}),
|
|
576
|
-
attributes: EnemyAttributesIO,
|
|
577
|
-
lifePointReduce: t.type({
|
|
578
|
-
m_defined: t.boolean,
|
|
579
|
-
m_value: t.number,
|
|
580
|
-
}),
|
|
581
|
-
levelType: t.type({
|
|
582
|
-
m_defined: t.boolean,
|
|
583
|
-
m_value: t.number,
|
|
584
|
-
}),
|
|
585
|
-
rangeRadius: t.type({
|
|
586
|
-
m_defined: t.boolean,
|
|
587
|
-
m_value: t.number,
|
|
588
|
-
}),
|
|
589
|
-
numOfExtraDrops: t.type({
|
|
590
|
-
m_defined: t.boolean,
|
|
591
|
-
m_value: t.number,
|
|
592
|
-
}),
|
|
593
|
-
talentBlackboard: t.array(BlackboardIO),
|
|
594
|
-
skills: t.array(EnemySkillsIO),
|
|
595
|
-
spData: EnemySpDataIO,
|
|
596
|
-
}),
|
|
510
|
+
enemyData: EnemyData,
|
|
597
511
|
})
|
|
598
512
|
),
|
|
599
513
|
}),
|
|
@@ -608,22 +522,22 @@ export const GameEventIO = t.type({
|
|
|
608
522
|
rewardEndTime: t.number,
|
|
609
523
|
displayOnHome: t.boolean,
|
|
610
524
|
hasStage: t.boolean,
|
|
611
|
-
templateShopId: t.string,
|
|
612
|
-
medalGroupId: t.string,
|
|
525
|
+
templateShopId: t.union([t.string, t.null]),
|
|
526
|
+
medalGroupId: t.union([t.string, t.null]),
|
|
613
527
|
isReplicate: t.boolean,
|
|
614
528
|
});
|
|
615
529
|
export const ItemIO = t.type({
|
|
616
530
|
data: t.type({
|
|
617
531
|
itemId: t.string,
|
|
618
532
|
name: t.string,
|
|
619
|
-
description: t.string,
|
|
620
|
-
rarity: t.
|
|
533
|
+
description: t.union([t.string, t.null]),
|
|
534
|
+
rarity: t.string,
|
|
621
535
|
iconId: t.string,
|
|
622
536
|
overrideBkg: t.null,
|
|
623
|
-
stackIconId: t.string,
|
|
537
|
+
stackIconId: t.union([t.string, t.null]),
|
|
624
538
|
sortId: t.number,
|
|
625
|
-
usage: t.string,
|
|
626
|
-
obtainApproach: t.string,
|
|
539
|
+
usage: t.union([t.string, t.null]),
|
|
540
|
+
obtainApproach: t.union([t.string, t.null]),
|
|
627
541
|
classifyType: t.string,
|
|
628
542
|
itemType: t.string,
|
|
629
543
|
stageDropList: t.array(
|
|
@@ -639,7 +553,7 @@ export const ItemIO = t.type({
|
|
|
639
553
|
})
|
|
640
554
|
),
|
|
641
555
|
}),
|
|
642
|
-
formula: t.union([ManufactFormulaIO, WorkshopFormulaIO]),
|
|
556
|
+
formula: t.union([ManufactFormulaIO, WorkshopFormulaIO, t.null]),
|
|
643
557
|
});
|
|
644
558
|
export const ModuleIO = t.type({
|
|
645
559
|
info: t.type({
|
|
@@ -649,66 +563,75 @@ export const ModuleIO = t.type({
|
|
|
649
563
|
uniEquipDesc: t.string,
|
|
650
564
|
typeIcon: t.string,
|
|
651
565
|
typeName1: t.string,
|
|
652
|
-
typeName2: t.string,
|
|
566
|
+
typeName2: t.union([t.string, t.null]),
|
|
653
567
|
equipShiningColor: t.string,
|
|
654
|
-
showEvolvePhase: t.
|
|
655
|
-
unlockEvolvePhase: t.
|
|
568
|
+
showEvolvePhase: t.string,
|
|
569
|
+
unlockEvolvePhase: t.string,
|
|
656
570
|
charId: t.string,
|
|
657
|
-
tmplId: t.string,
|
|
571
|
+
tmplId: t.union([t.string, t.null]),
|
|
658
572
|
showLevel: t.number,
|
|
659
573
|
unlockLevel: t.number,
|
|
660
574
|
unlockFavorPoint: t.number,
|
|
661
575
|
missionList: t.array(t.string),
|
|
662
|
-
itemCost: t.record(t.string, t.array(LevelUpCostIO)),
|
|
576
|
+
itemCost: t.union([t.record(t.string, t.array(LevelUpCostIO)), t.null]),
|
|
663
577
|
type: t.string,
|
|
664
578
|
uniEquipGetTime: t.number,
|
|
665
579
|
charEquipOrder: t.number,
|
|
666
580
|
}),
|
|
667
|
-
data: t.
|
|
668
|
-
|
|
669
|
-
t.
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
t.
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
t.
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
581
|
+
data: t.union([
|
|
582
|
+
t.type({
|
|
583
|
+
phases: t.array(
|
|
584
|
+
t.type({
|
|
585
|
+
equipLevel: t.number,
|
|
586
|
+
parts: t.array(
|
|
587
|
+
t.type({
|
|
588
|
+
resKey: t.union([t.string, t.null]),
|
|
589
|
+
target: t.string,
|
|
590
|
+
isToken: t.boolean,
|
|
591
|
+
addOrOverrideTalentDataBundle: t.type({
|
|
592
|
+
candidates: t.union([
|
|
593
|
+
t.array(
|
|
594
|
+
t.type({
|
|
595
|
+
displayRangeId: t.boolean,
|
|
596
|
+
upgradeDescription: t.string,
|
|
597
|
+
talentIndex: t.number,
|
|
598
|
+
unlockCondition: OperatorUnlockCondIO,
|
|
599
|
+
requiredPotentialRank: t.number,
|
|
600
|
+
prefabKey: t.string,
|
|
601
|
+
name: t.union([t.string, t.null]),
|
|
602
|
+
description: t.union([t.string, t.null]),
|
|
603
|
+
rangeId: t.union([t.string, t.null]),
|
|
604
|
+
blackboard: t.array(BlackboardIO),
|
|
605
|
+
})
|
|
606
|
+
),
|
|
607
|
+
t.null
|
|
608
|
+
]),
|
|
609
|
+
}),
|
|
610
|
+
overrideTraitDataBundle: t.type({
|
|
611
|
+
candidates: t.union([
|
|
612
|
+
t.array(
|
|
613
|
+
t.type({
|
|
614
|
+
additionalDescription: t.union([t.string, t.null]),
|
|
615
|
+
unlockCondition: OperatorUnlockCondIO,
|
|
616
|
+
requiredPotentialRank: t.number,
|
|
617
|
+
blackboard: t.array(BlackboardIO),
|
|
618
|
+
overrideDescripton: t.union([t.string, t.null]),
|
|
619
|
+
prefabKey: t.union([t.string, t.null]),
|
|
620
|
+
rangeId: t.union([t.string, t.null]),
|
|
621
|
+
})
|
|
622
|
+
),
|
|
623
|
+
t.null
|
|
624
|
+
]),
|
|
625
|
+
}),
|
|
626
|
+
})
|
|
627
|
+
),
|
|
628
|
+
attributeBlackboard: t.array(BlackboardIO),
|
|
629
|
+
tokenAttributeBlackboard: t.record(t.string, t.array(BlackboardIO)),
|
|
630
|
+
})
|
|
631
|
+
),
|
|
632
|
+
}),
|
|
633
|
+
t.null
|
|
634
|
+
]),
|
|
712
635
|
});
|
|
713
636
|
export const ParadoxIO = t.type({
|
|
714
637
|
excel: t.type({
|
|
@@ -722,7 +645,7 @@ export const ParadoxIO = t.type({
|
|
|
722
645
|
description: t.string,
|
|
723
646
|
unlockParam: t.array(
|
|
724
647
|
t.type({
|
|
725
|
-
unlockType: t.
|
|
648
|
+
unlockType: t.string,
|
|
726
649
|
unlockParam1: t.string,
|
|
727
650
|
unlockParam2: t.string,
|
|
728
651
|
unlockParam3: t.null,
|
|
@@ -754,24 +677,24 @@ export const SandboxActIO = t.type({
|
|
|
754
677
|
});
|
|
755
678
|
export const SkillIO = t.type({
|
|
756
679
|
skillId: t.string,
|
|
757
|
-
iconId: t.string,
|
|
680
|
+
iconId: t.union([t.string, t.null]),
|
|
758
681
|
hidden: t.boolean,
|
|
759
682
|
levels: t.array(
|
|
760
683
|
t.type({
|
|
761
684
|
name: t.string,
|
|
762
|
-
rangeId: t.string,
|
|
763
|
-
description: t.string,
|
|
685
|
+
rangeId: t.union([t.string, t.null]),
|
|
686
|
+
description: t.union([t.string, t.null]),
|
|
764
687
|
skillType: t.string,
|
|
765
|
-
durationType: t.
|
|
688
|
+
durationType: t.string,
|
|
766
689
|
spData: t.type({
|
|
767
|
-
spType: t.string,
|
|
690
|
+
spType: t.union([t.string, t.number]),
|
|
768
691
|
levelUpCost: t.null,
|
|
769
692
|
maxChargeTime: t.number,
|
|
770
693
|
spCost: t.number,
|
|
771
694
|
initSp: t.number,
|
|
772
695
|
increment: t.number,
|
|
773
696
|
}),
|
|
774
|
-
prefabId: t.string,
|
|
697
|
+
prefabId: t.union([t.string, t.null]),
|
|
775
698
|
duration: t.number,
|
|
776
699
|
blackboard: t.array(BlackboardIO),
|
|
777
700
|
})
|
|
@@ -780,43 +703,45 @@ export const SkillIO = t.type({
|
|
|
780
703
|
export const SkinIO = t.type({
|
|
781
704
|
skinId: t.string,
|
|
782
705
|
charId: t.string,
|
|
783
|
-
tokenSkinMap: t.
|
|
784
|
-
t.
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
706
|
+
tokenSkinMap: t.union([
|
|
707
|
+
t.array(
|
|
708
|
+
t.type({
|
|
709
|
+
tokenId: t.string,
|
|
710
|
+
tokenSkinId: t.string,
|
|
711
|
+
})
|
|
712
|
+
),
|
|
713
|
+
t.null
|
|
714
|
+
]),
|
|
715
|
+
illustId: t.union([t.string, t.null]),
|
|
716
|
+
dynIllustId: t.union([t.string, t.null]),
|
|
791
717
|
avatarId: t.string,
|
|
792
|
-
portraitId: t.string,
|
|
793
|
-
dynPortraitId: t.string,
|
|
794
|
-
dynEntranceId: t.string,
|
|
795
|
-
buildingId: t.string,
|
|
718
|
+
portraitId: t.union([t.string, t.null]),
|
|
719
|
+
dynPortraitId: t.union([t.string, t.null]),
|
|
720
|
+
dynEntranceId: t.union([t.string, t.null]),
|
|
721
|
+
buildingId: t.union([t.string, t.null]),
|
|
796
722
|
battleSkin: t.type({
|
|
797
723
|
overwritePrefab: t.boolean,
|
|
798
|
-
skinOrPrefabId: t.string,
|
|
724
|
+
skinOrPrefabId: t.union([t.string, t.null]),
|
|
799
725
|
}),
|
|
800
726
|
isBuySkin: t.boolean,
|
|
801
|
-
tmplId: t.string,
|
|
802
|
-
voiceId: t.string,
|
|
727
|
+
tmplId: t.union([t.string, t.null]),
|
|
728
|
+
voiceId: t.union([t.string, t.null]),
|
|
803
729
|
voiceType: t.string,
|
|
804
730
|
displaySkin: t.type({
|
|
805
|
-
skinName: t.string,
|
|
806
|
-
colorList: t.tuple([t.string, t.string, t.string, t.string, t.string]),
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
skinGroupName: t.string,
|
|
731
|
+
skinName: t.union([t.string, t.null]),
|
|
732
|
+
colorList: t.union([t.tuple([t.string, t.string, t.string, t.string, t.string]), t.null]),
|
|
733
|
+
modelName: t.union([t.string, t.null]),
|
|
734
|
+
drawerList: t.union([t.array(t.string), t.null]),
|
|
735
|
+
skinGroupId: t.union([t.string, t.null]),
|
|
736
|
+
skinGroupName: t.union([t.string, t.null]),
|
|
812
737
|
skinGroupSortIndex: t.number,
|
|
813
|
-
content: t.string,
|
|
814
|
-
dialog: t.string,
|
|
815
|
-
usage: t.string,
|
|
816
|
-
description: t.string,
|
|
817
|
-
obtainApproach: t.string,
|
|
738
|
+
content: t.union([t.string, t.null]),
|
|
739
|
+
dialog: t.union([t.string, t.null]),
|
|
740
|
+
usage: t.union([t.string, t.null]),
|
|
741
|
+
description: t.union([t.string, t.null]),
|
|
742
|
+
obtainApproach: t.union([t.string, t.null]),
|
|
818
743
|
sortId: t.number,
|
|
819
|
-
displayTagId: t.string,
|
|
744
|
+
displayTagId: t.union([t.string, t.null]),
|
|
820
745
|
getTime: t.number,
|
|
821
746
|
onYear: t.number,
|
|
822
747
|
onPeriod: t.number,
|
|
@@ -829,10 +754,13 @@ export const StageIO = t.type({
|
|
|
829
754
|
performanceStageFlag: t.string,
|
|
830
755
|
diffGroup: t.string,
|
|
831
756
|
unlockCondition: t.array(
|
|
832
|
-
t.
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
757
|
+
t.union([
|
|
758
|
+
t.type({
|
|
759
|
+
stageId: t.string,
|
|
760
|
+
completeState: t.string,
|
|
761
|
+
}),
|
|
762
|
+
t.null
|
|
763
|
+
])
|
|
836
764
|
),
|
|
837
765
|
stageId: t.string,
|
|
838
766
|
levelId: t.string,
|
|
@@ -840,18 +768,18 @@ export const StageIO = t.type({
|
|
|
840
768
|
code: t.string,
|
|
841
769
|
name: t.string,
|
|
842
770
|
description: t.string,
|
|
843
|
-
hardStagedId: t.string,
|
|
844
|
-
dangerLevel: t.string,
|
|
771
|
+
hardStagedId: t.union([t.string, t.null]),
|
|
772
|
+
dangerLevel: t.union([t.string, t.null]),
|
|
845
773
|
dangerPoint: t.number,
|
|
846
774
|
loadingPicId: t.string,
|
|
847
775
|
canPractice: t.boolean,
|
|
848
776
|
canBattleReplay: t.boolean,
|
|
849
777
|
apCost: t.number,
|
|
850
778
|
apFailReturn: t.number,
|
|
851
|
-
etItemId: t.string,
|
|
779
|
+
etItemId: t.union([t.string, t.null]),
|
|
852
780
|
etCost: t.number,
|
|
853
781
|
etFailReturn: t.number,
|
|
854
|
-
etButtonStyle: t.string,
|
|
782
|
+
etButtonStyle: t.union([t.string, t.null]),
|
|
855
783
|
apProtectTimes: t.number,
|
|
856
784
|
diamondOnceDrop: t.number,
|
|
857
785
|
practiceTicketCost: t.number,
|
|
@@ -863,14 +791,14 @@ export const StageIO = t.type({
|
|
|
863
791
|
passFavor: t.number,
|
|
864
792
|
completeFavor: t.number,
|
|
865
793
|
slProgress: t.number,
|
|
866
|
-
displayMainItem: t.string,
|
|
794
|
+
displayMainItem: t.union([t.string, t.null]),
|
|
867
795
|
hilightMark: t.boolean,
|
|
868
796
|
bossMark: t.boolean,
|
|
869
797
|
isPredefined: t.boolean,
|
|
870
798
|
isHardPredefined: t.boolean,
|
|
871
799
|
isSkillSelectablePredefined: t.boolean,
|
|
872
800
|
isStoryOnly: t.boolean,
|
|
873
|
-
appearanceStyle: t.
|
|
801
|
+
appearanceStyle: t.string,
|
|
874
802
|
stageDropInfo: t.type({
|
|
875
803
|
firstPassRewards: t.null,
|
|
876
804
|
firstCompleteRewards: t.null,
|
|
@@ -885,16 +813,49 @@ export const StageIO = t.type({
|
|
|
885
813
|
),
|
|
886
814
|
displayDetailRewards: t.array(
|
|
887
815
|
t.type({
|
|
888
|
-
occPercent: t.
|
|
816
|
+
occPercent: t.string,
|
|
889
817
|
type: t.string,
|
|
890
818
|
id: t.string,
|
|
891
819
|
dropType: t.string,
|
|
892
820
|
})
|
|
893
821
|
),
|
|
894
822
|
}),
|
|
895
|
-
|
|
823
|
+
canUseCharm: t.boolean,
|
|
824
|
+
canUseTech: t.boolean,
|
|
825
|
+
canUseTrapTool: t.boolean,
|
|
826
|
+
canUseBattlePerformance: t.boolean,
|
|
827
|
+
startButtonOverrideId: t.union([t.string, t.null]),
|
|
896
828
|
isStagePatch: t.boolean,
|
|
897
|
-
mainStageId: t.string,
|
|
829
|
+
mainStageId: t.union([t.string, t.null]),
|
|
830
|
+
extraCondition: t.union([
|
|
831
|
+
t.array(
|
|
832
|
+
t.type({
|
|
833
|
+
index: t.number,
|
|
834
|
+
template: t.string,
|
|
835
|
+
unlockParam: t.array(t.string),
|
|
836
|
+
})
|
|
837
|
+
),
|
|
838
|
+
t.null
|
|
839
|
+
]),
|
|
840
|
+
extraInfo: t.union([
|
|
841
|
+
t.array(
|
|
842
|
+
t.type({
|
|
843
|
+
stageId: t.string,
|
|
844
|
+
rewards: t.array(
|
|
845
|
+
t.type({
|
|
846
|
+
id: t.string,
|
|
847
|
+
count: t.number,
|
|
848
|
+
type: t.string,
|
|
849
|
+
})
|
|
850
|
+
),
|
|
851
|
+
progressInfo: t.type({
|
|
852
|
+
progressType: t.string,
|
|
853
|
+
descList: t.record(t.string, t.string),
|
|
854
|
+
})
|
|
855
|
+
})
|
|
856
|
+
),
|
|
857
|
+
t.null
|
|
858
|
+
])
|
|
898
859
|
}),
|
|
899
860
|
levels: StageDataIO,
|
|
900
861
|
});
|
|
@@ -915,96 +876,105 @@ export const OperatorIO = t.type({
|
|
|
915
876
|
skill: BaseIO,
|
|
916
877
|
})
|
|
917
878
|
),
|
|
918
|
-
paradox: ParadoxIO,
|
|
879
|
+
paradox: t.union([ParadoxIO, t.null]),
|
|
919
880
|
data: t.type({
|
|
920
881
|
name: t.string,
|
|
921
882
|
description: t.string,
|
|
922
883
|
canUseGeneralPotentialItem: t.boolean,
|
|
923
|
-
potentialItemId: t.string,
|
|
924
|
-
nationId: t.string,
|
|
925
|
-
groupId: t.string,
|
|
926
|
-
teamId: t.string,
|
|
927
|
-
displayNumber: t.string,
|
|
928
|
-
tokenKey: t.string,
|
|
884
|
+
potentialItemId: t.union([t.string, t.null]),
|
|
885
|
+
nationId: t.union([t.string, t.null]),
|
|
886
|
+
groupId: t.union([t.string, t.null]),
|
|
887
|
+
teamId: t.union([t.string, t.null]),
|
|
888
|
+
displayNumber: t.union([t.string, t.null]),
|
|
889
|
+
// tokenKey: t.string,
|
|
929
890
|
appellation: t.string,
|
|
930
891
|
position: t.string,
|
|
931
892
|
tagList: t.array(t.string),
|
|
932
|
-
itemUsage: t.string,
|
|
933
|
-
itemDesc: t.string,
|
|
934
|
-
itemObtainApproach: t.string,
|
|
893
|
+
itemUsage: t.union([t.string, t.null]),
|
|
894
|
+
itemDesc: t.union([t.string, t.null]),
|
|
895
|
+
itemObtainApproach: t.union([t.string, t.null]),
|
|
935
896
|
isNotObtainable: t.boolean,
|
|
936
897
|
isSpChar: t.boolean,
|
|
937
898
|
maxPotentialLevel: t.number,
|
|
938
899
|
rarity: t.string,
|
|
939
900
|
profession: t.string,
|
|
940
901
|
subProfessionId: t.string,
|
|
941
|
-
trait: t.
|
|
942
|
-
|
|
943
|
-
t.
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
902
|
+
trait: t.union([
|
|
903
|
+
t.type({
|
|
904
|
+
candidates: t.array(
|
|
905
|
+
t.type({
|
|
906
|
+
unlockCondition: OperatorUnlockCondIO,
|
|
907
|
+
requiredPotentialRank: t.number,
|
|
908
|
+
blackboard: t.array(BlackboardIO),
|
|
909
|
+
overrideDescripton: t.union([t.string, t.null]),
|
|
910
|
+
prefabKey: t.union([t.string, t.null]),
|
|
911
|
+
rangeId: t.union([t.string, t.null]),
|
|
912
|
+
})
|
|
913
|
+
),
|
|
914
|
+
}),
|
|
915
|
+
t.null
|
|
916
|
+
]),
|
|
953
917
|
phases: t.array(
|
|
954
918
|
t.type({
|
|
955
919
|
characterPrefabKey: t.string,
|
|
956
920
|
rangeId: t.string,
|
|
957
921
|
maxLevel: t.number,
|
|
958
922
|
attributesKeyFrames: t.array(AttributesKeyFrameIO),
|
|
959
|
-
evolveCost: t.array(LevelUpCostIO),
|
|
923
|
+
evolveCost: t.union([t.array(LevelUpCostIO), t.null]),
|
|
960
924
|
})
|
|
961
925
|
),
|
|
962
926
|
skills: t.array(
|
|
963
927
|
t.type({
|
|
964
928
|
skillId: t.string,
|
|
965
|
-
overridePrefabKey: t.string,
|
|
966
|
-
overrideTokenKey: t.string,
|
|
929
|
+
overridePrefabKey: t.union([t.string, t.null]),
|
|
930
|
+
overrideTokenKey: t.union([t.string, t.null]),
|
|
967
931
|
levelUpCostCond: t.array(LevelUpCostCondIO),
|
|
968
932
|
unlockCond: OperatorUnlockCondIO,
|
|
969
933
|
})
|
|
970
934
|
),
|
|
971
|
-
talents: t.
|
|
972
|
-
t.
|
|
973
|
-
|
|
974
|
-
t.
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
935
|
+
talents: t.union([
|
|
936
|
+
t.array(
|
|
937
|
+
t.type({
|
|
938
|
+
candidates: t.array(
|
|
939
|
+
t.type({
|
|
940
|
+
unlockCondition: OperatorUnlockCondIO,
|
|
941
|
+
requiredPotentialRank: t.number,
|
|
942
|
+
prefabKey: t.string,
|
|
943
|
+
name: t.string,
|
|
944
|
+
description: t.string,
|
|
945
|
+
rangeId: t.union([t.string, t.null]),
|
|
946
|
+
blackboard: t.array(BlackboardIO),
|
|
947
|
+
})
|
|
948
|
+
),
|
|
949
|
+
})
|
|
950
|
+
),
|
|
951
|
+
t.null
|
|
952
|
+
]),
|
|
986
953
|
potentialRanks: t.array(
|
|
987
954
|
t.type({
|
|
988
|
-
type: t.
|
|
955
|
+
type: t.string,
|
|
989
956
|
description: t.string,
|
|
990
|
-
buff: t.
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
t.
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
957
|
+
buff: t.union([
|
|
958
|
+
t.type({
|
|
959
|
+
attributes: t.type({
|
|
960
|
+
abnormalFlags: t.null,
|
|
961
|
+
abnormalImmunes: t.null,
|
|
962
|
+
abnormalAntis: t.null,
|
|
963
|
+
abnormalCombos: t.null,
|
|
964
|
+
abnormalComboImmunes: t.null,
|
|
965
|
+
attributeModifiers: t.array(
|
|
966
|
+
t.type({
|
|
967
|
+
attributeType: t.string,
|
|
968
|
+
formulaItem: t.string,
|
|
969
|
+
value: t.number,
|
|
970
|
+
loadFromBlackboard: t.boolean,
|
|
971
|
+
fetchBaseValueFromSourceEntity: t.boolean,
|
|
972
|
+
})
|
|
973
|
+
),
|
|
974
|
+
}),
|
|
1006
975
|
}),
|
|
1007
|
-
|
|
976
|
+
t.null
|
|
977
|
+
]),
|
|
1008
978
|
equivalentCost: t.null,
|
|
1009
979
|
})
|
|
1010
980
|
),
|
|
@@ -1012,7 +982,7 @@ export const OperatorIO = t.type({
|
|
|
1012
982
|
allSkillLvlup: t.array(
|
|
1013
983
|
t.type({
|
|
1014
984
|
unlockCond: OperatorUnlockCondIO,
|
|
1015
|
-
lvlUpCost: t.array(LevelUpCostIO),
|
|
985
|
+
lvlUpCost: t.union([t.array(LevelUpCostIO), t.null]),
|
|
1016
986
|
})
|
|
1017
987
|
),
|
|
1018
988
|
}),
|