zenno: account for ism data with no start stats
This commit is contained in:
+63
-1
@@ -135,10 +135,72 @@ const SingleModeChara = z.strictObject({
|
|||||||
skill_upgrade_info_array: z.array(SkillUpgrade),
|
skill_upgrade_info_array: z.array(SkillUpgrade),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const ZeroedSingleModeChara = z.strictObject({
|
||||||
|
single_mode_chara_id: z.literal(0),
|
||||||
|
card_id: z.int32(),
|
||||||
|
chara_grade: z.literal(0),
|
||||||
|
speed: z.literal(0),
|
||||||
|
stamina: z.literal(0),
|
||||||
|
power: z.literal(0),
|
||||||
|
wiz: z.literal(0),
|
||||||
|
guts: z.literal(0),
|
||||||
|
vital: z.literal(0),
|
||||||
|
max_speed: z.literal(0),
|
||||||
|
max_stamina: z.literal(0),
|
||||||
|
max_power: z.literal(0),
|
||||||
|
max_wiz: z.literal(0),
|
||||||
|
max_guts: z.literal(0),
|
||||||
|
default_max_speed: z.literal(0),
|
||||||
|
default_max_stamina: z.literal(0),
|
||||||
|
default_max_power: z.literal(0),
|
||||||
|
default_max_wiz: z.literal(0),
|
||||||
|
default_max_guts: z.literal(0),
|
||||||
|
max_vital: z.literal(0),
|
||||||
|
motivation: z.literal(0),
|
||||||
|
fans: z.literal(0),
|
||||||
|
rarity: z.int32(),
|
||||||
|
race_program_id: z.literal(0),
|
||||||
|
reserve_race_program_id: z.literal(0),
|
||||||
|
race_running_style: z.literal(0),
|
||||||
|
is_short_race: z.literal(0),
|
||||||
|
talent_level: z.int32(),
|
||||||
|
skill_array: z.array(z.never()),
|
||||||
|
disable_skill_id_array: z.array(z.never()),
|
||||||
|
skill_tips_array: z.array(z.never()),
|
||||||
|
support_card_array: z.array(z.never()),
|
||||||
|
succession_trained_chara_id_1: z.int32(),
|
||||||
|
succession_trained_chara_id_2: z.int32(),
|
||||||
|
proper_distance_short: z.literal(0),
|
||||||
|
proper_distance_mile: z.literal(0),
|
||||||
|
proper_distance_middle: z.literal(0),
|
||||||
|
proper_distance_long: z.literal(0),
|
||||||
|
proper_running_style_nige: z.literal(0),
|
||||||
|
proper_running_style_senko: z.literal(0),
|
||||||
|
proper_running_style_sashi: z.literal(0),
|
||||||
|
proper_running_style_oikomi: z.literal(0),
|
||||||
|
proper_ground_turf: z.literal(0),
|
||||||
|
proper_ground_dirt: z.literal(0),
|
||||||
|
turn: z.literal(0),
|
||||||
|
skill_point: z.literal(0),
|
||||||
|
short_cut_state: z.literal(0),
|
||||||
|
state: z.literal(0),
|
||||||
|
playing_state: z.literal(0),
|
||||||
|
scenario_id: z.int32(),
|
||||||
|
route_id: z.literal(0),
|
||||||
|
start_time: z.literal(''),
|
||||||
|
evaluation_info_array: z.array(z.never()),
|
||||||
|
training_level_info_array: z.array(z.never()),
|
||||||
|
nickname_id_array: z.array(z.never()),
|
||||||
|
chara_effect_id_array: z.array(z.never()),
|
||||||
|
route_race_id_array: z.array(z.never()),
|
||||||
|
guest_outing_info_array: z.array(z.never()),
|
||||||
|
skill_upgrade_info_array: z.array(z.never()),
|
||||||
|
});
|
||||||
|
|
||||||
export type SingleModeChara = z.infer<typeof SingleModeChara>;
|
export type SingleModeChara = z.infer<typeof SingleModeChara>;
|
||||||
|
|
||||||
const ProgressInfo = z.strictObject({
|
const ProgressInfo = z.strictObject({
|
||||||
chara_info: z.optional(SingleModeChara),
|
chara_info: z.optional(SingleModeChara.or(ZeroedSingleModeChara)),
|
||||||
start_time: z.string(),
|
start_time: z.string(),
|
||||||
end_time: z.string(),
|
end_time: z.string(),
|
||||||
dress_id: z.int32(),
|
dress_id: z.int32(),
|
||||||
|
|||||||
Reference in New Issue
Block a user