diff --git a/ism.go b/ism.go index bb5e913..5247979 100644 --- a/ism.go +++ b/ism.go @@ -1,14 +1,35 @@ package main -import "git.sunturtle.xyz/zephyr/horse" +import ( + "bytes" + "encoding/json" + "io" + "time" + + "git.sunturtle.xyz/zephyr/horse" +) type SupportCardID int32 // package horse doesn't have this yet +type OldWorkSingleIdleMode struct { + Chara SingleModeChara `json:"charaInfo"` + StartTime int64 `json:"startTime"` + EndTime int64 `json:"endTime"` + ProgressLog OldIdleSingleModeProgressLog `json:"progressLogInfo"` +} + +type ProgressInfo struct { + Chara SingleModeChara `json:"chara_info"` + StartTime string `json:"start_time"` + EndTime string `json:"end_time"` + DressID int32 `json:"dress_id"` +} + type WorkIdleSingleMode struct { - Chara SingleModeChara `json:"charaInfo"` - StartTime int64 `json:"startTime"` - EndTime int64 `json:"endTime"` - ProgressLog IdleSingleModeProgressLog `json:"progressLogInfo"` + ProgressInfo ProgressInfo `json:"progress_info"` + ProgressLog IdleSingleModeProgressLog `json:"progress_log_info"` + End End `json:"end_info"` + OldChara *SingleModeChara `json:"chara_info"` } type Skill struct { @@ -40,6 +61,7 @@ type GroupOuting struct { type Evaluation struct { TargetID int32 `json:"target_id"` + TrainingPartner int32 `json:"training_partner_id"` Evaluation int32 `json:"evaluation"` IsOuting int32 `json:"is_outing"` StoryStep int32 `json:"story_step"` @@ -126,17 +148,22 @@ type SingleModeChara struct { SkillUpgrades []SingleModeSkillUpgrade `json:"skill_upgrade_info_array"` } -type CharaEffectLog struct { +type OldCharaEffectLog struct { CharaEffectID int32 `json:"charaEffectId"` IsActive bool `json:"isActive"` } +type CharaEffectLog struct { + CharaEffectID int32 `json:"chara_effect_id"` + IsActive bool `json:"is_active"` +} + type IdleSingleModeSignedInt struct { Sign int32 `json:"sign"` Value int32 `json:"value"` } -type IdleSingleModeGainInfo struct { +type OldIdleSingleModeGainInfo struct { Speed IdleSingleModeSignedInt `json:"speed"` Stamina IdleSingleModeSignedInt `json:"stamina"` Power IdleSingleModeSignedInt `json:"power"` @@ -161,19 +188,59 @@ type IdleSingleModeGainInfo struct { SkillTips []SkillTip `json:"skillTips"` } -type IdleSingleModeSupportCardGain struct { - SupportCardID SupportCardID `json:"supportCardId"` - GainInfo IdleSingleModeGainInfo `json:"gainInfo"` +type IdleSingleModeGainInfo struct { + Speed IdleSingleModeSignedInt `json:"speed"` + Stamina IdleSingleModeSignedInt `json:"stamina"` + Power IdleSingleModeSignedInt `json:"power"` + Wiz IdleSingleModeSignedInt `json:"wiz"` + Guts IdleSingleModeSignedInt `json:"guts"` + MaxSpeed int32 `json:"max_speed"` + MaxStamina int32 `json:"max_stamina"` + MaxPower int32 `json:"max_power"` + MaxWiz int32 `json:"max_wiz"` + MaxGuts int32 `json:"max_guts"` + ProperDistanceShort horse.AptitudeLevel `json:"proper_distance_short"` + ProperDistanceMile horse.AptitudeLevel `json:"proper_distance_mile"` + ProperDistanceMiddle horse.AptitudeLevel `json:"proper_distance_middle"` + ProperDistanceLong horse.AptitudeLevel `json:"proper_distance_long"` + ProperRunningStyleNige horse.AptitudeLevel `json:"proper_running_style_nige"` + ProperRunningStyleSenko horse.AptitudeLevel `json:"proper_running_style_senko"` + ProperRunningStyleSashi horse.AptitudeLevel `json:"proper_running_style_sashi"` + ProperRunningStyleOikomi horse.AptitudeLevel `json:"proper_running_style_oikomi"` + ProperGroundTurf horse.AptitudeLevel `json:"proper_ground_turf"` + ProperGroundDirt horse.AptitudeLevel `json:"proper_ground_dirt"` + SkillPoint int32 `json:"skill_point"` + SkillTips []SkillTip `json:"skill_tips_array"` } -type Factor struct { +type OldIdleSingleModeSupportCardGain struct { + SupportCardID SupportCardID `json:"supportCardId"` + GainInfo OldIdleSingleModeGainInfo `json:"gainInfo"` +} + +type IdleSingleModeSupportCardGain struct { + SupportCardID SupportCardID `json:"support_card_id"` + GainInfo IdleSingleModeGainInfo `json:"gain_info"` +} + +type OldFactor struct { FactorID horse.SparkID `json:"factorId"` Level int32 `json:"level"` } +type Factor struct { + FactorID horse.SparkID `json:"factor_id"` + Level int32 `json:"level"` +} + +type OldIdleSingleModeSuccessionFactorGain struct { + Year int32 `json:"year"` + GainFactorInfo []OldFactor `json:"gainFactorInfoArray"` +} + type IdleSingleModeSuccessionFactorGain struct { Year int32 `json:"year"` - GainFactorInfo []Factor `json:"gainFactorInfoArray"` + GainFactorInfo []Factor `json:"gain_factor_info_array"` } type SingleRaceHistory struct { @@ -184,7 +251,7 @@ type SingleRaceHistory struct { RunningStyle int32 `json:"running_style"` ResultRank int32 `json:"result_rank"` FrameOrder int32 `json:"frame_order"` - NpcCount int32 `json:"npc_count"` + NPCCount int32 `json:"npc_count"` } type RaceReward struct { @@ -219,13 +286,143 @@ type IdleSingleModeRaceHistory struct { LoseTipsID int32 `json:"lose_tips_id"` } -type IdleSingleModeProgressLog struct { - CharaEffectLog []CharaEffectLog `json:"charaEffectLog"` - SupportCardGains []IdleSingleModeSupportCardGain `json:"supportCardGainInfo"` - EventGain IdleSingleModeGainInfo `json:"eventGainInfo"` - SuccessionGain IdleSingleModeGainInfo `json:"successionGainInfo"` - SuccessionFactorGains []IdleSingleModeSuccessionFactorGain `json:"successionFactorGainArray"` - RaceHistory []IdleSingleModeRaceHistory `json:"raceHistoryArray"` - GainSkillIDs []horse.SkillID `json:"gainSkillIdArray"` - TotalSkillPoint int32 `json:"totalSkillPoint"` +type OldIdleSingleModeProgressLog struct { + CharaEffectLog []OldCharaEffectLog `json:"charaEffectLog"` + SupportCardGains []OldIdleSingleModeSupportCardGain `json:"supportCardGainInfo"` + EventGain OldIdleSingleModeGainInfo `json:"eventGainInfo"` + SuccessionGain OldIdleSingleModeGainInfo `json:"successionGainInfo"` + SuccessionFactorGains []OldIdleSingleModeSuccessionFactorGain `json:"successionFactorGainArray"` + RaceHistory []IdleSingleModeRaceHistory `json:"raceHistoryArray"` + GainSkillIDs []horse.SkillID `json:"gainSkillIdArray"` + TotalSkillPoint int32 `json:"totalSkillPoint"` +} + +type IdleSingleModeProgressLog struct { + CharaEffectLog []CharaEffectLog `json:"chara_effect_log_array"` + SupportCardGains []IdleSingleModeSupportCardGain `json:"support_card_gain_info_array"` + EventGain IdleSingleModeGainInfo `json:"event_gain_info"` + SuccessionGain IdleSingleModeGainInfo `json:"succession_gain_info"` + SuccessionFactorGains []IdleSingleModeSuccessionFactorGain `json:"succession_factor_gain_array"` + RaceHistory []IdleSingleModeRaceHistory `json:"race_history_array"` + GainSkillIDs []horse.SkillID `json:"gain_skill_id_array"` + TotalSkillPoint int32 `json:"total_skill_point"` +} + +type AddItem struct { + ItemID int32 `json:"item_id"` + Number int32 `json:"number"` +} + +type RewardSummary struct { + AddItem []AddItem `json:"add_item_list"` +} + +type End struct { + Chara SingleModeChara `json:"chara_info"` + CharaButWerseterIsOverworked *SingleModeChara `json:"chara_starting_info"` + RewardSummary RewardSummary `json:"reward_summary_info"` +} + +func loadISM(r io.Reader) (WorkIdleSingleMode, error) { + // Since we have two potential types to read at the top level, + // decode one message and try it both ways. + var b json.RawMessage + var err error + if err = json.NewDecoder(r).Decode(&b); err != nil { + return WorkIdleSingleMode{}, err + } + { + var ism WorkIdleSingleMode + d := json.NewDecoder(bytes.NewReader(b)) + d.DisallowUnknownFields() + err = d.Decode(&ism) + if err == nil { + // NOTE(zeph): this is for no error + // If old fields are populated, move them to the correct ones. + if ism.End.CharaButWerseterIsOverworked != nil { + ism.End.Chara = *ism.End.CharaButWerseterIsOverworked + ism.End.CharaButWerseterIsOverworked = nil + } + if ism.OldChara != nil { + ism.ProgressInfo.Chara = *ism.OldChara + ism.OldChara = nil + } + return ism, nil + } + } + { + var ism OldWorkSingleIdleMode + d := json.NewDecoder(bytes.NewReader(b)) + d.DisallowUnknownFields() + // Use a new error variable here. + // If this fails, we want to return the reason we didn't use the API type instead. + if err := d.Decode(&ism); err == nil { + // NOTE(zeph): this is for no error + return unold(ism), nil + } + } + // NOTE(zeph): this is the error from decoding the API type, not the validation type. + return WorkIdleSingleMode{}, err +} + +func unold(old OldWorkSingleIdleMode) WorkIdleSingleMode { + return WorkIdleSingleMode{ + ProgressInfo: ProgressInfo{ + Chara: old.Chara, + StartTime: time.Unix(old.StartTime, 0).Format(time.DateTime), + EndTime: time.Unix(old.EndTime, 0).Format(time.DateTime), + }, + ProgressLog: IdleSingleModeProgressLog{ + CharaEffectLog: unoldEffects(old.ProgressLog.CharaEffectLog), + SupportCardGains: unoldCardGains(old.ProgressLog.SupportCardGains), + EventGain: IdleSingleModeGainInfo(old.ProgressLog.EventGain), + SuccessionGain: IdleSingleModeGainInfo(old.ProgressLog.SuccessionGain), + SuccessionFactorGains: unoldFactorGains(old.ProgressLog.SuccessionFactorGains), + RaceHistory: old.ProgressLog.RaceHistory, + GainSkillIDs: old.ProgressLog.GainSkillIDs, + TotalSkillPoint: old.ProgressLog.TotalSkillPoint, + }, + // We could try to roll up starting numbers plus gains, + // but only a few of these files exist anyway. + // Not worth the effort. + End: End{}, + } +} + +func unoldEffects(olds []OldCharaEffectLog) []CharaEffectLog { + new := make([]CharaEffectLog, len(olds)) + for i, old := range olds { + new[i] = CharaEffectLog(old) + } + return new +} + +func unoldCardGains(olds []OldIdleSingleModeSupportCardGain) []IdleSingleModeSupportCardGain { + new := make([]IdleSingleModeSupportCardGain, len(olds)) + for i, old := range olds { + new[i] = IdleSingleModeSupportCardGain{ + SupportCardID: old.SupportCardID, + GainInfo: IdleSingleModeGainInfo(old.GainInfo), + } + } + return new +} + +func unoldFactorGains(olds []OldIdleSingleModeSuccessionFactorGain) []IdleSingleModeSuccessionFactorGain { + new := make([]IdleSingleModeSuccessionFactorGain, len(olds)) + for i, old := range olds { + new[i] = IdleSingleModeSuccessionFactorGain{ + Year: old.Year, + GainFactorInfo: unoldFactors(old.GainFactorInfo), + } + } + return new +} + +func unoldFactors(olds []OldFactor) []Factor { + new := make([]Factor, len(olds)) + for i, old := range olds { + new[i] = Factor(old) + } + return new } diff --git a/ism_test.go b/ism_test.go index 3b04965..fa7d593 100644 --- a/ism_test.go +++ b/ism_test.go @@ -2,7 +2,6 @@ package main import ( _ "embed" - "encoding/json" "strings" "testing" @@ -10,801 +9,4787 @@ import ( "github.com/google/go-cmp/cmp" ) -//go:embed testdata.json -var testJSON string +//go:embed testdata/v2.5.1.json +var v2_5_1 string -func TestModel(t *testing.T) { - want := WorkIdleSingleMode{ - Chara: SingleModeChara{ - SingleModeCharaID: 1823, - CardID: 102401, - CharaGrade: 1, - Speed: 107, - Stamina: 118, - Power: 103, - Wiz: 147, - Guts: 133, - Vital: 100, - MaxSpeed: 1616, - MaxStamina: 1300, - MaxPower: 1318, - MaxWiz: 1332, - MaxGuts: 1516, - DefaultMaxSpeed: 1200, - DefaultMaxStamina: 1200, - DefaultMaxPower: 1200, - DefaultMaxWiz: 1200, - DefaultMaxGuts: 1200, - MaxVital: 100, - Motivation: 3, - Fans: 1, - Rarity: 4, - RaceProgramID: 0, - ReserveRaceProgramID: 0, - RaceRunningStyle: 1, - IsShortRace: 0, - TalentLevel: 5, - Skills: []Skill{ - {SkillID: 100241, Level: 2}, - }, - DisableSkillIDs: []horse.SkillID{}, - SkillTips: []SkillTip{ - {GroupID: 90014, Rarity: 1, Level: 2}, - {GroupID: 90020, Rarity: 1, Level: 1}, - }, - SupportCards: []SingleModeSupportCard{ - { - Position: 1, - SupportCardID: 30010, - LimitBreakCount: 4, - Exp: 118185, - TrainingPartnerState: 0, - OwnerViewerID: 0, - RentalType: 0, - }, - { - Position: 2, - SupportCardID: 30108, - LimitBreakCount: 4, - Exp: 118185, - TrainingPartnerState: 0, - OwnerViewerID: 0, - RentalType: 0, - }, - { - Position: 3, - SupportCardID: 30062, - LimitBreakCount: 4, - Exp: 118185, - TrainingPartnerState: 0, - OwnerViewerID: 0, - RentalType: 0, - }, - { - Position: 4, - SupportCardID: 30107, - LimitBreakCount: 4, - Exp: 118185, - TrainingPartnerState: 0, - OwnerViewerID: 0, - RentalType: 0, - }, - { - Position: 5, - SupportCardID: 30028, - LimitBreakCount: 4, - Exp: 118185, - TrainingPartnerState: 0, - OwnerViewerID: 0, - RentalType: 0, - }, - { - Position: 6, - SupportCardID: 30052, - LimitBreakCount: 4, - Exp: 118185, - TrainingPartnerState: 0, - OwnerViewerID: 818784439809, - RentalType: 0, - }, - }, - SuccessionTrainedCharaID1: 4637, - SuccessionTrainedCharaID2: 4670, - ProperDistanceShort: horse.AptitudeLvD, - ProperDistanceMile: horse.AptitudeLvC, - ProperDistanceMiddle: horse.AptitudeLvA, - ProperDistanceLong: horse.AptitudeLvA, - ProperRunningStyleNige: horse.AptitudeLvA, - ProperRunningStyleSenko: horse.AptitudeLvA, - ProperRunningStyleSashi: horse.AptitudeLvB, - ProperRunningStyleOikomi: horse.AptitudeLvB, - ProperGroundTurf: horse.AptitudeLvA, - ProperGroundDirt: horse.AptitudeLvA, - Turn: 1, - SkillPoint: 0, - ShortCutState: 0, - State: 0, - PlayingState: 1, - ScenarioID: 3, - RouteID: 14, - StartTime: "2026-07-27 15:37:29", - Evaluations: []Evaluation{ - { - TargetID: 1, - Evaluation: 15, - IsOuting: 0, - StoryStep: 0, - IsAppear: 1, - GroupOutingInfo: []GroupOuting{}, - }, - { - TargetID: 2, - Evaluation: 20, - IsOuting: 0, - StoryStep: 0, - IsAppear: 1, - GroupOutingInfo: []GroupOuting{}, - }, - { - TargetID: 3, - Evaluation: 30, - IsOuting: 0, - StoryStep: 0, - IsAppear: 1, - GroupOutingInfo: []GroupOuting{}, - }, - { - TargetID: 4, - Evaluation: 30, - IsOuting: 0, - StoryStep: 0, - IsAppear: 1, - GroupOutingInfo: []GroupOuting{}, - }, - { - TargetID: 5, - Evaluation: 35, - IsOuting: 0, - StoryStep: 0, - IsAppear: 1, - GroupOutingInfo: []GroupOuting{}, - }, - { - TargetID: 6, - Evaluation: 30, - IsOuting: 0, - StoryStep: 0, - IsAppear: 0, - GroupOutingInfo: []GroupOuting{}, - }, - { - TargetID: 101, - Evaluation: 0, - IsOuting: 0, - StoryStep: 0, - IsAppear: 0, - GroupOutingInfo: []GroupOuting{}, - }, - { - TargetID: 102, - Evaluation: 0, - IsOuting: 0, - StoryStep: 0, - IsAppear: 0, - GroupOutingInfo: []GroupOuting{}, - }, - { - TargetID: 103, - Evaluation: 0, - IsOuting: 0, - StoryStep: 0, - IsAppear: 0, - GroupOutingInfo: []GroupOuting{}, - }, - { - TargetID: 104, - Evaluation: 0, - IsOuting: 0, - StoryStep: 0, - IsAppear: 0, - GroupOutingInfo: []GroupOuting{}, - }, - { - TargetID: 106, - Evaluation: 0, - IsOuting: 0, - StoryStep: 0, - IsAppear: 0, - GroupOutingInfo: []GroupOuting{}, - }, - }, - TrainingLevels: []TrainingLevel{ - {CommandID: 101, Level: 1}, - {CommandID: 102, Level: 1}, - {CommandID: 103, Level: 1}, - {CommandID: 105, Level: 1}, - {CommandID: 106, Level: 1}, - {CommandID: 601, Level: 5}, - {CommandID: 602, Level: 5}, - {CommandID: 603, Level: 5}, - {CommandID: 604, Level: 5}, - {CommandID: 605, Level: 5}, - }, - NicknameIDs: []int32{}, - CharaEffectIDs: []int32{}, - RouteRaceIDs: []int32{ - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - }, - GuestOutings: []GuestOuting{}, - SkillUpgrades: []SingleModeSkillUpgrade{}, - }, - StartTime: 1785166649, - EndTime: 1785169649, - ProgressLog: IdleSingleModeProgressLog{ - CharaEffectLog: []CharaEffectLog{ - {CharaEffectID: 7, IsActive: true}, - }, - SupportCardGains: []IdleSingleModeSupportCardGain{ - { - SupportCardID: 30010, - GainInfo: IdleSingleModeGainInfo{ - Speed: IdleSingleModeSignedInt{Value: 56}, - Stamina: IdleSingleModeSignedInt{Value: 33}, - Power: IdleSingleModeSignedInt{Value: 33}, - Wiz: IdleSingleModeSignedInt{Value: 193}, - Guts: IdleSingleModeSignedInt{Value: 33}, - SkillPoint: 319, +//go:embed testdata/v2.5.2-beta2.json +var v2_5_2_beta2 string + +//go:embed testdata/v2.5.4.json +var v2_5_4 string + +func TestLoadISM(t *testing.T) { + cases := []struct { + name string + json string + want WorkIdleSingleMode + }{ + { + name: "v2.5.1", + json: v2_5_1, + want: WorkIdleSingleMode{ + ProgressInfo: ProgressInfo{ + Chara: SingleModeChara{ + SingleModeCharaID: 1823, + CardID: 102401, + CharaGrade: 1, + Speed: 107, + Stamina: 118, + Power: 103, + Wiz: 147, + Guts: 133, + Vital: 100, + MaxSpeed: 1616, + MaxStamina: 1300, + MaxPower: 1318, + MaxWiz: 1332, + MaxGuts: 1516, + DefaultMaxSpeed: 1200, + DefaultMaxStamina: 1200, + DefaultMaxPower: 1200, + DefaultMaxWiz: 1200, + DefaultMaxGuts: 1200, + MaxVital: 100, + Motivation: 3, + Fans: 1, + Rarity: 4, + RaceProgramID: 0, + ReserveRaceProgramID: 0, + RaceRunningStyle: 1, + IsShortRace: 0, + TalentLevel: 5, + Skills: []Skill{ + {SkillID: 100241, Level: 2}, + }, + DisableSkillIDs: []horse.SkillID{}, SkillTips: []SkillTip{ - {GroupID: 20019, Rarity: 1, Level: 1}, - {GroupID: 20001, Rarity: 1, Level: 1}, + {GroupID: 90014, Rarity: 1, Level: 2}, + {GroupID: 90020, Rarity: 1, Level: 1}, + }, + SupportCards: []SingleModeSupportCard{ + { + Position: 1, + SupportCardID: 30010, + LimitBreakCount: 4, + Exp: 118185, + TrainingPartnerState: 0, + OwnerViewerID: 0, + RentalType: 0, + }, + { + Position: 2, + SupportCardID: 30108, + LimitBreakCount: 4, + Exp: 118185, + TrainingPartnerState: 0, + OwnerViewerID: 0, + RentalType: 0, + }, + { + Position: 3, + SupportCardID: 30062, + LimitBreakCount: 4, + Exp: 118185, + TrainingPartnerState: 0, + OwnerViewerID: 0, + RentalType: 0, + }, + { + Position: 4, + SupportCardID: 30107, + LimitBreakCount: 4, + Exp: 118185, + TrainingPartnerState: 0, + OwnerViewerID: 0, + RentalType: 0, + }, + { + Position: 5, + SupportCardID: 30028, + LimitBreakCount: 4, + Exp: 118185, + TrainingPartnerState: 0, + OwnerViewerID: 0, + RentalType: 0, + }, + { + Position: 6, + SupportCardID: 30052, + LimitBreakCount: 4, + Exp: 118185, + TrainingPartnerState: 0, + OwnerViewerID: 818784439809, + RentalType: 0, + }, + }, + SuccessionTrainedCharaID1: 4637, + SuccessionTrainedCharaID2: 4670, + ProperDistanceShort: horse.AptitudeLvD, + ProperDistanceMile: horse.AptitudeLvC, + ProperDistanceMiddle: horse.AptitudeLvA, + ProperDistanceLong: horse.AptitudeLvA, + ProperRunningStyleNige: horse.AptitudeLvA, + ProperRunningStyleSenko: horse.AptitudeLvA, + ProperRunningStyleSashi: horse.AptitudeLvB, + ProperRunningStyleOikomi: horse.AptitudeLvB, + ProperGroundTurf: horse.AptitudeLvA, + ProperGroundDirt: horse.AptitudeLvA, + Turn: 1, + SkillPoint: 0, + ShortCutState: 0, + State: 0, + PlayingState: 1, + ScenarioID: 3, + RouteID: 14, + StartTime: "2026-07-27 15:37:29", + Evaluations: []Evaluation{ + { + TargetID: 1, + Evaluation: 15, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 2, + Evaluation: 20, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 3, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 4, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 5, + Evaluation: 35, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 6, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 101, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 102, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 103, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 104, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 106, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + }, + TrainingLevels: []TrainingLevel{ + {CommandID: 101, Level: 1}, + {CommandID: 102, Level: 1}, + {CommandID: 103, Level: 1}, + {CommandID: 105, Level: 1}, + {CommandID: 106, Level: 1}, + {CommandID: 601, Level: 5}, + {CommandID: 602, Level: 5}, + {CommandID: 603, Level: 5}, + {CommandID: 604, Level: 5}, + {CommandID: 605, Level: 5}, + }, + NicknameIDs: []int32{}, + CharaEffectIDs: []int32{}, + RouteRaceIDs: []int32{ + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + }, + GuestOutings: []GuestOuting{}, + SkillUpgrades: []SingleModeSkillUpgrade{}, + }, + StartTime: "2026-07-27 11:37:29", + EndTime: "2026-07-27 12:27:29", + }, + ProgressLog: IdleSingleModeProgressLog{ + CharaEffectLog: []CharaEffectLog{ + {CharaEffectID: 7, IsActive: true}, + }, + SupportCardGains: []IdleSingleModeSupportCardGain{ + { + SupportCardID: 30010, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 56}, + Stamina: IdleSingleModeSignedInt{Value: 33}, + Power: IdleSingleModeSignedInt{Value: 33}, + Wiz: IdleSingleModeSignedInt{Value: 193}, + Guts: IdleSingleModeSignedInt{Value: 33}, + SkillPoint: 319, + SkillTips: []SkillTip{ + {GroupID: 20019, Rarity: 1, Level: 1}, + {GroupID: 20001, Rarity: 1, Level: 1}, + }, + }, + }, + { + SupportCardID: 30108, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 54}, + Stamina: IdleSingleModeSignedInt{Value: 35}, + Power: IdleSingleModeSignedInt{Value: 35}, + Wiz: IdleSingleModeSignedInt{Value: 135}, + Guts: IdleSingleModeSignedInt{Value: 35}, + SkillPoint: 408, + SkillTips: []SkillTip{ + {GroupID: 20157, Rarity: 1, Level: 4}, + {GroupID: 20203, Rarity: 1, Level: 4}, + {GroupID: 20156, Rarity: 1, Level: 4}, + }, + }, + }, + { + SupportCardID: 30062, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 31}, + Stamina: IdleSingleModeSignedInt{Value: 184}, + Power: IdleSingleModeSignedInt{Value: 31}, + Wiz: IdleSingleModeSignedInt{Value: 31}, + Guts: IdleSingleModeSignedInt{Value: 65}, + SkillPoint: 234, + SkillTips: []SkillTip{ + {GroupID: 20127, Rarity: 1, Level: 2}, + }, + }, + }, + { + SupportCardID: 30107, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 136}, + Stamina: IdleSingleModeSignedInt{Value: 35}, + Power: IdleSingleModeSignedInt{Value: 88}, + Wiz: IdleSingleModeSignedInt{Value: 35}, + Guts: IdleSingleModeSignedInt{Value: 35}, + SkillPoint: 287, + SkillTips: []SkillTip{ + {GroupID: 20043, Rarity: 1, Level: 3}, + {GroupID: 20127, Rarity: 1, Level: 3}, + {GroupID: 20124, Rarity: 1, Level: 3}, + }, + }, + }, + { + SupportCardID: 30028, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 116}, + Stamina: IdleSingleModeSignedInt{Value: 33}, + Power: IdleSingleModeSignedInt{Value: 86}, + Wiz: IdleSingleModeSignedInt{Value: 33}, + Guts: IdleSingleModeSignedInt{Value: 33}, + SkillPoint: 284, + SkillTips: []SkillTip{ + {GroupID: 20043, Rarity: 1, Level: 1}, + {GroupID: 20076, Rarity: 1, Level: 3}, + {GroupID: 20033, Rarity: 1, Level: 3}, + {GroupID: 20118, Rarity: 1, Level: 3}, + }, + }, + }, + { + SupportCardID: 30052, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 68}, + Stamina: IdleSingleModeSignedInt{Value: 28}, + Power: IdleSingleModeSignedInt{Value: 28}, + Wiz: IdleSingleModeSignedInt{Value: 28}, + Guts: IdleSingleModeSignedInt{Value: 68}, + SkillPoint: 553, + SkillTips: []SkillTip{}, + }, }, }, - }, - { - SupportCardID: 30108, - GainInfo: IdleSingleModeGainInfo{ - Speed: IdleSingleModeSignedInt{Value: 54}, - Stamina: IdleSingleModeSignedInt{Value: 35}, - Power: IdleSingleModeSignedInt{Value: 35}, - Wiz: IdleSingleModeSignedInt{Value: 135}, - Guts: IdleSingleModeSignedInt{Value: 35}, - SkillPoint: 408, - SkillTips: []SkillTip{ - {GroupID: 20157, Rarity: 1, Level: 4}, - {GroupID: 20203, Rarity: 1, Level: 4}, - {GroupID: 20156, Rarity: 1, Level: 4}, - }, - }, - }, - { - SupportCardID: 30062, - GainInfo: IdleSingleModeGainInfo{ - Speed: IdleSingleModeSignedInt{Value: 31}, - Stamina: IdleSingleModeSignedInt{Value: 184}, - Power: IdleSingleModeSignedInt{Value: 31}, - Wiz: IdleSingleModeSignedInt{Value: 31}, - Guts: IdleSingleModeSignedInt{Value: 65}, - SkillPoint: 234, - SkillTips: []SkillTip{ - {GroupID: 20127, Rarity: 1, Level: 2}, - }, - }, - }, - { - SupportCardID: 30107, - GainInfo: IdleSingleModeGainInfo{ - Speed: IdleSingleModeSignedInt{Value: 136}, - Stamina: IdleSingleModeSignedInt{Value: 35}, - Power: IdleSingleModeSignedInt{Value: 88}, - Wiz: IdleSingleModeSignedInt{Value: 35}, - Guts: IdleSingleModeSignedInt{Value: 35}, - SkillPoint: 287, - SkillTips: []SkillTip{ - {GroupID: 20043, Rarity: 1, Level: 3}, - {GroupID: 20127, Rarity: 1, Level: 3}, - {GroupID: 20124, Rarity: 1, Level: 3}, - }, - }, - }, - { - SupportCardID: 30028, - GainInfo: IdleSingleModeGainInfo{ - Speed: IdleSingleModeSignedInt{Value: 116}, - Stamina: IdleSingleModeSignedInt{Value: 33}, - Power: IdleSingleModeSignedInt{Value: 86}, - Wiz: IdleSingleModeSignedInt{Value: 33}, - Guts: IdleSingleModeSignedInt{Value: 33}, - SkillPoint: 284, + EventGain: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 817}, + Stamina: IdleSingleModeSignedInt{Value: 313}, + Power: IdleSingleModeSignedInt{Value: 427}, + Wiz: IdleSingleModeSignedInt{Value: 498}, + Guts: IdleSingleModeSignedInt{Value: 300}, + SkillPoint: 1819, SkillTips: []SkillTip{ + {GroupID: 20166, Rarity: 2, Level: 3}, + {GroupID: 20071, Rarity: 2, Level: 1}, + {GroupID: 20027, Rarity: 1, Level: 2}, + {GroupID: 20059, Rarity: 1, Level: 1}, + {GroupID: 21007, Rarity: 1, Level: 1}, + {GroupID: 21007, Rarity: 2, Level: 3}, + {GroupID: 20021, Rarity: 1, Level: 1}, {GroupID: 20043, Rarity: 1, Level: 1}, - {GroupID: 20076, Rarity: 1, Level: 3}, - {GroupID: 20033, Rarity: 1, Level: 3}, - {GroupID: 20118, Rarity: 1, Level: 3}, + {GroupID: 20043, Rarity: 2, Level: 1}, + {GroupID: 20127, Rarity: 2, Level: 1}, + {GroupID: 20135, Rarity: 1, Level: 1}, + {GroupID: 20118, Rarity: 1, Level: 2}, + {GroupID: 20207, Rarity: 1, Level: 1}, + {GroupID: 20137, Rarity: 1, Level: 1}, + {GroupID: 20209, Rarity: 1, Level: 1}, }, }, + SuccessionGain: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 67}, + Stamina: IdleSingleModeSignedInt{Value: 0}, + Power: IdleSingleModeSignedInt{Value: 94}, + Wiz: IdleSingleModeSignedInt{Value: 118}, + Guts: IdleSingleModeSignedInt{Value: 59}, + MaxSpeed: 22, + MaxStamina: 2, + MaxPower: 28, + MaxWiz: 45, + MaxGuts: 22, + ProperDistanceShort: 0, + ProperDistanceMile: 1, + ProperDistanceMiddle: 0, + ProperDistanceLong: 0, + ProperRunningStyleNige: 0, + ProperRunningStyleSenko: 0, + ProperRunningStyleSashi: 0, + ProperRunningStyleOikomi: 0, + ProperGroundTurf: 0, + ProperGroundDirt: 5, + SkillPoint: 0, + SkillTips: []SkillTip{ + {GroupID: 90014, Rarity: 1, Level: 2}, + {GroupID: 90020, Rarity: 1, Level: 2}, + {GroupID: 90019, Rarity: 1, Level: 2}, + {GroupID: 20166, Rarity: 1, Level: 3}, + {GroupID: 20233, Rarity: 1, Level: 2}, + {GroupID: 20160, Rarity: 1, Level: 4}, + {GroupID: 21005, Rarity: 1, Level: 3}, + {GroupID: 20019, Rarity: 1, Level: 3}, + {GroupID: 21001, Rarity: 1, Level: 4}, + {GroupID: 20035, Rarity: 1, Level: 1}, + {GroupID: 20091, Rarity: 1, Level: 4}, + {GroupID: 20126, Rarity: 1, Level: 2}, + {GroupID: 20159, Rarity: 1, Level: 2}, + {GroupID: 20125, Rarity: 1, Level: 1}, + {GroupID: 20007, Rarity: 1, Level: 1}, + }, + }, + SuccessionFactorGains: []IdleSingleModeSuccessionFactorGain{ + { + Year: 1, + GainFactorInfo: []Factor{ + {FactorID: 103, Level: 0}, + {FactorID: 10200101, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 1202, Level: 0}, + {FactorID: 10140102, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 1202, Level: 0}, + {FactorID: 403, Level: 0}, + {FactorID: 3202, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 1203, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 1203, Level: 0}, + }, + }, + { + Year: 2, + GainFactorInfo: []Factor{ + {FactorID: 103, Level: 0}, + {FactorID: 1000802, Level: 0}, + {FactorID: 2016603, Level: 0}, + {FactorID: 2023302, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 2102103, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 2016002, Level: 0}, + {FactorID: 2100502, Level: 0}, + {FactorID: 403, Level: 0}, + {FactorID: 2001902, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 1203, Level: 0}, + {FactorID: 10190102, Level: 0}, + }, + }, + { + Year: 3, + GainFactorInfo: []Factor{ + {FactorID: 103, Level: 0}, + {FactorID: 2003501, Level: 0}, + {FactorID: 2009102, Level: 0}, + {FactorID: 10200101, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 1002002, Level: 0}, + {FactorID: 2012502, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 2012602, Level: 0}, + {FactorID: 2015902, Level: 0}, + {FactorID: 403, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 302, Level: 0}, + }, + }, + }, + RaceHistory: []IdleSingleModeRaceHistory{ + { + RaceHistory: SingleRaceHistory{ + Turn: 12, + ProgramID: 1067, + Weather: 2, + GroundCondition: 2, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 2, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 400}, + }, + RaceRewardBonus: []RaceReward{}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 1398, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 44, + ProgramID: 168, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 11, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 11, ItemID: 83, ItemNum: 2}, + {ItemType: 91, ItemID: 59, ItemNum: 800}, + {ItemType: 11, ItemID: 10, ItemNum: 2}, + }, + RaceRewardBonus: []RaceReward{ + {ItemType: 30, ItemID: 110, ItemNum: 40}, + }, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 23976, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 48, + ProgramID: 81, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 4, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 11, ItemID: 91, ItemNum: 2}, + {ItemType: 91, ItemID: 59, ItemNum: 800}, + {ItemType: 11, ItemID: 10, ItemNum: 2}, + }, + RaceRewardBonus: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 800}, + {ItemType: 30, ItemID: 110, ItemNum: 40}, + }, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 59940, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 54, + ProgramID: 12, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 7, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 800}, + {ItemType: 11, ItemID: 10, ItemNum: 2}, + }, + RaceRewardBonus: []RaceReward{}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 13387, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 56, + ProgramID: 4, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 6, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 11, ItemID: 74, ItemNum: 2}, + {ItemType: 91, ItemID: 59, ItemNum: 800}, + {ItemType: 11, ItemID: 10, ItemNum: 2}, + }, + RaceRewardBonus: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 800}, + {ItemType: 30, ItemID: 110, ItemNum: 40}, + }, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 29970, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 60, + ProgramID: 74, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 8, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 11, ItemID: 80, ItemNum: 2}, + {ItemType: 91, ItemID: 59, ItemNum: 800}, + {ItemType: 11, ItemID: 7, ItemNum: 2}, + }, + RaceRewardBonus: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 800}, + }, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 29970, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 68, + ProgramID: 76, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 14, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 11, ItemID: 84, ItemNum: 2}, + {ItemType: 91, ItemID: 59, ItemNum: 800}, + {ItemType: 11, ItemID: 7, ItemNum: 2}, + }, + RaceRewardBonus: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 800}, + }, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 29970, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 72, + ProgramID: 81, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 6, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 11, ItemID: 91, ItemNum: 2}, + {ItemType: 91, ItemID: 59, ItemNum: 800}, + {ItemType: 11, ItemID: 10, ItemNum: 2}, + }, + RaceRewardBonus: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 800}, + {ItemType: 30, ItemID: 110, ItemNum: 40}, + }, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 59940, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 74, + ProgramID: 2031, + Weather: 2, + GroundCondition: 2, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 10, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 1200}, + {ItemType: 11, ItemID: 10, ItemNum: 2}, + }, + RaceRewardBonus: []RaceReward{}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 13986, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 76, + ProgramID: 2130, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 1, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 1200}, + {ItemType: 11, ItemID: 10, ItemNum: 2}, + }, + RaceRewardBonus: []RaceReward{ + {ItemType: 30, ItemID: 110, ItemNum: 80}, + }, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 19980, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 78, + ProgramID: 2228, + Weather: 2, + GroundCondition: 2, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 4, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 1200}, + {ItemType: 11, ItemID: 10, ItemNum: 2}, + }, + RaceRewardBonus: []RaceReward{ + {ItemType: 91, ItemID: 59, ItemNum: 1200}, + {ItemType: 30, ItemID: 110, ItemNum: 80}, + }, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + RaceRewardLimit: []RaceRewardLimit{}, + GainedFans: 59940, + CampaignIDs: []int32{223}, + }, + LoseTipsID: 0, + }, + }, + GainSkillIDs: []horse.SkillID{}, + TotalSkillPoint: 3904, }, - { - SupportCardID: 30052, - GainInfo: IdleSingleModeGainInfo{ - Speed: IdleSingleModeSignedInt{Value: 68}, - Stamina: IdleSingleModeSignedInt{Value: 28}, - Power: IdleSingleModeSignedInt{Value: 28}, - Wiz: IdleSingleModeSignedInt{Value: 28}, - Guts: IdleSingleModeSignedInt{Value: 68}, - SkillPoint: 553, - SkillTips: []SkillTip{}, + End: End{}, + }, + }, + { + name: "v2.5.2-beta2", + json: v2_5_2_beta2, + want: WorkIdleSingleMode{ + ProgressInfo: ProgressInfo{ + Chara: SingleModeChara{ + SingleModeCharaID: 1829, + CardID: 102401, + CharaGrade: 1, + Speed: 107, + Stamina: 118, + Power: 103, + Wiz: 147, + Guts: 133, + Vital: 100, + MaxSpeed: 1616, + MaxStamina: 1300, + MaxPower: 1318, + MaxWiz: 1332, + MaxGuts: 1516, + DefaultMaxSpeed: 1200, + DefaultMaxStamina: 1200, + DefaultMaxPower: 1200, + DefaultMaxWiz: 1200, + DefaultMaxGuts: 1200, + MaxVital: 100, + Motivation: 3, + Fans: 1, + Rarity: 4, + RaceProgramID: 0, + ReserveRaceProgramID: 0, + RaceRunningStyle: 1, + IsShortRace: 0, + TalentLevel: 5, + Skills: []Skill{ + {SkillID: 100241, Level: 2}, + }, + DisableSkillIDs: []horse.SkillID{}, + SkillTips: []SkillTip{ + {GroupID: 90014, Rarity: 1, Level: 2}, + {GroupID: 90020, Rarity: 1, Level: 1}, + }, + SupportCards: []SingleModeSupportCard{ + { + Position: 1, + SupportCardID: 30010, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 2, + SupportCardID: 30108, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 3, + SupportCardID: 30062, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 4, + SupportCardID: 30107, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 5, + SupportCardID: 30028, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 6, + SupportCardID: 30052, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 872748063176, + }, + }, + SuccessionTrainedCharaID1: 4637, + SuccessionTrainedCharaID2: 4694, + ProperDistanceShort: horse.AptitudeLvD, + ProperDistanceMile: horse.AptitudeLvC, + ProperDistanceMiddle: horse.AptitudeLvA, + ProperDistanceLong: horse.AptitudeLvA, + ProperRunningStyleNige: horse.AptitudeLvA, + ProperRunningStyleSenko: horse.AptitudeLvA, + ProperRunningStyleSashi: horse.AptitudeLvB, + ProperRunningStyleOikomi: horse.AptitudeLvB, + ProperGroundTurf: horse.AptitudeLvA, + ProperGroundDirt: horse.AptitudeLvA, + Turn: 1, + SkillPoint: 0, + ShortCutState: 0, + State: 0, + PlayingState: 1, + ScenarioID: 3, + RouteID: 14, + StartTime: "2026-07-28 18:11:42", + Evaluations: []Evaluation{ + { + TargetID: 1, + TrainingPartner: 1, + Evaluation: 15, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 2, + TrainingPartner: 2, + Evaluation: 20, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 3, + TrainingPartner: 3, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 4, + TrainingPartner: 4, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 5, + TrainingPartner: 5, + Evaluation: 35, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 6, + TrainingPartner: 6, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 101, + TrainingPartner: 101, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 102, + TrainingPartner: 102, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 103, + TrainingPartner: 103, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 104, + TrainingPartner: 104, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 106, + TrainingPartner: 106, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + }, + TrainingLevels: []TrainingLevel{ + {CommandID: 101, Level: 1}, + {CommandID: 102, Level: 1}, + {CommandID: 103, Level: 1}, + {CommandID: 105, Level: 1}, + {CommandID: 106, Level: 1}, + {CommandID: 601, Level: 5}, + {CommandID: 602, Level: 5}, + {CommandID: 603, Level: 5}, + {CommandID: 604, Level: 5}, + {CommandID: 605, Level: 5}, + }, + NicknameIDs: []int32{}, + CharaEffectIDs: []int32{}, + RouteRaceIDs: []int32{ + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + }, + GuestOutings: []GuestOuting{}, + SkillUpgrades: []SingleModeSkillUpgrade{}, + }, + }, + ProgressLog: IdleSingleModeProgressLog{ + CharaEffectLog: []CharaEffectLog{ + {CharaEffectID: 3, IsActive: false}, + }, + SupportCardGains: []IdleSingleModeSupportCardGain{ + { + SupportCardID: 30010, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 40}, + Stamina: IdleSingleModeSignedInt{Value: 24}, + Power: IdleSingleModeSignedInt{Value: 24}, + Wiz: IdleSingleModeSignedInt{Value: 136}, + Guts: IdleSingleModeSignedInt{Value: 24}, + SkillPoint: 224, + SkillTips: []SkillTip{ + {GroupID: 20019, Rarity: 1, Level: 1}, + {GroupID: 20026, Rarity: 1, Level: 1}, + }, + }, + }, + { + SupportCardID: 30108, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 38}, + Stamina: IdleSingleModeSignedInt{Value: 25}, + Power: IdleSingleModeSignedInt{Value: 25}, + Wiz: IdleSingleModeSignedInt{Value: 95}, + Guts: IdleSingleModeSignedInt{Value: 25}, + SkillPoint: 286, + SkillTips: []SkillTip{ + {GroupID: 20138, Rarity: 1, Level: 4}, + {GroupID: 20030, Rarity: 1, Level: 4}, + }, + }, + }, + { + SupportCardID: 30062, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 22}, + Stamina: IdleSingleModeSignedInt{Value: 130}, + Power: IdleSingleModeSignedInt{Value: 22}, + Wiz: IdleSingleModeSignedInt{Value: 22}, + Guts: IdleSingleModeSignedInt{Value: 46}, + SkillPoint: 164, + SkillTips: []SkillTip{ + {GroupID: 20054, Rarity: 1, Level: 1}, + {GroupID: 20071, Rarity: 1, Level: 1}, + }, + }, + }, + { + SupportCardID: 30107, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 96}, + Stamina: IdleSingleModeSignedInt{Value: 25}, + Power: IdleSingleModeSignedInt{Value: 62}, + Wiz: IdleSingleModeSignedInt{Value: 25}, + Guts: IdleSingleModeSignedInt{Value: 25}, + SkillPoint: 201, + SkillTips: []SkillTip{ + {GroupID: 20018, Rarity: 1, Level: 3}, + {GroupID: 20165, Rarity: 1, Level: 3}, + }, + }, + }, + { + SupportCardID: 30028, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 82}, + Stamina: IdleSingleModeSignedInt{Value: 24}, + Power: IdleSingleModeSignedInt{Value: 60}, + Wiz: IdleSingleModeSignedInt{Value: 24}, + Guts: IdleSingleModeSignedInt{Value: 24}, + SkillPoint: 199, + SkillTips: []SkillTip{ + {GroupID: 20033, Rarity: 1, Level: 5}, + {GroupID: 20043, Rarity: 1, Level: 3}, + }, + }, + }, + { + SupportCardID: 30052, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 48}, + Stamina: IdleSingleModeSignedInt{Value: 20}, + Power: IdleSingleModeSignedInt{Value: 20}, + Wiz: IdleSingleModeSignedInt{Value: 20}, + Guts: IdleSingleModeSignedInt{Value: 48}, + SkillPoint: 388, + SkillTips: []SkillTip{}, + }, + }, + }, + EventGain: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 669}, + Stamina: IdleSingleModeSignedInt{Value: 325}, + Power: IdleSingleModeSignedInt{Value: 467}, + Wiz: IdleSingleModeSignedInt{Value: 419}, + Guts: IdleSingleModeSignedInt{Value: 303}, + SkillPoint: 2798, + SkillTips: []SkillTip{ + {GroupID: 20166, Rarity: 2, Level: 3}, + {GroupID: 20071, Rarity: 2, Level: 1}, + {GroupID: 20071, Rarity: 1, Level: 2}, + {GroupID: 20059, Rarity: 1, Level: 1}, + {GroupID: 21007, Rarity: 1, Level: 1}, + {GroupID: 21007, Rarity: 2, Level: 3}, + {GroupID: 20023, Rarity: 1, Level: 1}, + {GroupID: 20135, Rarity: 1, Level: 1}, + {GroupID: 20004, Rarity: 1, Level: 1}, + {GroupID: 20013, Rarity: 1, Level: 1}, + {GroupID: 20033, Rarity: 2, Level: 3}, + {GroupID: 20246, Rarity: 1, Level: 3}, + {GroupID: 20110, Rarity: 1, Level: 3}, + }, + }, + SuccessionGain: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 59}, + Stamina: IdleSingleModeSignedInt{Value: 0}, + Power: IdleSingleModeSignedInt{Value: 124}, + Wiz: IdleSingleModeSignedInt{Value: 142}, + Guts: IdleSingleModeSignedInt{Value: 50}, + MaxSpeed: 23, + MaxStamina: 1, + MaxPower: 26, + MaxWiz: 45, + MaxGuts: 20, + ProperDistanceShort: 0, + ProperDistanceMile: 1, + ProperDistanceMiddle: 0, + ProperDistanceLong: 0, + ProperRunningStyleNige: 0, + ProperRunningStyleSenko: 0, + ProperRunningStyleSashi: 0, + ProperRunningStyleOikomi: 0, + ProperGroundTurf: 0, + ProperGroundDirt: 5, + SkillPoint: 0, + SkillTips: []SkillTip{ + {GroupID: 90014, Rarity: 1, Level: 3}, + {GroupID: 90020, Rarity: 1, Level: 2}, + {GroupID: 20054, Rarity: 1, Level: 3}, + {GroupID: 20035, Rarity: 1, Level: 5}, + {GroupID: 20203, Rarity: 1, Level: 1}, + {GroupID: 20126, Rarity: 1, Level: 1}, + {GroupID: 20046, Rarity: 1, Level: 5}, + {GroupID: 20160, Rarity: 1, Level: 2}, + {GroupID: 20091, Rarity: 1, Level: 3}, + {GroupID: 20166, Rarity: 1, Level: 4}, + {GroupID: 20125, Rarity: 1, Level: 2}, + {GroupID: 20132, Rarity: 1, Level: 4}, + {GroupID: 20007, Rarity: 1, Level: 1}, + }, + }, + SuccessionFactorGains: []IdleSingleModeSuccessionFactorGain{ + { + Year: 1, + GainFactorInfo: []Factor{ + {FactorID: 103, Level: 0}, + {FactorID: 10200101, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 1202, Level: 0}, + {FactorID: 10140102, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 1202, Level: 0}, + {FactorID: 403, Level: 0}, + {FactorID: 3202, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 1203, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 1203, Level: 0}, + }, + }, + { + Year: 2, + GainFactorInfo: []Factor{ + {FactorID: 103, Level: 0}, + {FactorID: 2005402, Level: 0}, + {FactorID: 10200101, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 1202, Level: 0}, + {FactorID: 2012602, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 403, Level: 0}, + {FactorID: 2003502, Level: 0}, + {FactorID: 2020302, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 2004603, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 2016002, Level: 0}, + }, + }, + { + Year: 3, + GainFactorInfo: []Factor{ + {FactorID: 103, Level: 0}, + {FactorID: 2003501, Level: 0}, + {FactorID: 2009102, Level: 0}, + {FactorID: 2016603, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 2012502, Level: 0}, + {FactorID: 2013202, Level: 0}, + {FactorID: 10140102, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 1000702, Level: 0}, + {FactorID: 1002002, Level: 0}, + {FactorID: 403, Level: 0}, + {FactorID: 2003502, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 2004603, Level: 0}, + {FactorID: 302, Level: 0}, + {FactorID: 3000202, Level: 0}, + }, + }, + }, + RaceHistory: []IdleSingleModeRaceHistory{ + { + RaceHistory: SingleRaceHistory{ + Turn: 12, + ProgramID: 1067, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 7, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 400, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 1398, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 23, + ProgramID: 624, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 8, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 90, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 4, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + GainedFans: 13608, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 24, + ProgramID: 625, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 4, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 92, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 30, + ItemID: 110, + ItemNum: 40, + }, + }, + GainedFans: 13986, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 31, + ProgramID: 163, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 10, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 73, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 21978, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 33, + ProgramID: 164, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 8, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 75, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 4, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + GainedFans: 19656, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 34, + ProgramID: 166, + Weather: 1, + GroundCondition: 2, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 8, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 78, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 90, + ItemID: 43, + ItemNum: 10, + }, + }, + GainedFans: 39960, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 36, + ProgramID: 74, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 9, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 80, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + GainedFans: 29970, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 37, + ProgramID: 1023, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 11, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 101, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 30, + ItemID: 110, + ItemNum: 40, + }, + }, + GainedFans: 8991, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 42, + ProgramID: 75, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 1, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 81, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 1, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 24804, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 44, + ProgramID: 168, + Weather: 3, + GroundCondition: 3, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 9, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 83, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 10, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 30, + ItemID: 110, + ItemNum: 40, + }, + }, + GainedFans: 23976, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 45, + ProgramID: 77, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 9, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 86, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 20979, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 46, + ProgramID: 78, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 17, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 85, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 4, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 20196, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 47, + ProgramID: 80, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 8, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 88, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 18720, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 48, + ProgramID: 81, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 10, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 91, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 10, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 57240, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 51, + ProgramID: 1106, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 4, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 175, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 90, + ItemID: 43, + ItemNum: 10, + }, + }, + GainedFans: 11988, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 52, + ProgramID: 1, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 16, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 69, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 30, + ItemID: 110, + ItemNum: 40, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 30, + ItemID: 110, + ItemNum: 40, + }, + }, + GainedFans: 19440, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 54, + ProgramID: 12, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 10, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 10, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 13387, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 56, + ProgramID: 4, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 17, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 74, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 10, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 29970, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 57, + ProgramID: 5, + Weather: 3, + GroundCondition: 4, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 13, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 76, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 4, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 19278, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 59, + ProgramID: 73, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 11, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 79, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 4, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 24804, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 60, + ProgramID: 74, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 7, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 80, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + GainedFans: 29970, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 67, + ProgramID: 1109, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 2, + FrameOrder: 1, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 2, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 4795, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 68, + ProgramID: 76, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 2, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 84, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 29970, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 69, + ProgramID: 1026, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 16, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 103, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + GainedFans: 15984, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 70, + ProgramID: 79, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 13, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 87, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 56160, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 72, + ProgramID: 81, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 10, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 91, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 10, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 59940, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 74, + ProgramID: 2020, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 5, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + }, + GainedFans: 13986, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 76, + ProgramID: 2121, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 4, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + }, + GainedFans: 19980, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 78, + ProgramID: 2218, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 3, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + { + ItemType: 30, + ItemID: 110, + ItemNum: 80, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 59940, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + }, + GainSkillIDs: []horse.SkillID{}, + TotalSkillPoint: 4260, + }, + End: End{ + Chara: SingleModeChara{ + SingleModeCharaID: 1829, + CardID: 102401, + CharaGrade: 10, + Speed: 1140, + Stamina: 691, + Power: 883, + Wiz: 988, + Guts: 657, + Vital: 0, + MaxSpeed: 1623, + MaxStamina: 1301, + MaxPower: 1326, + MaxWiz: 1345, + MaxGuts: 1520, + DefaultMaxSpeed: 1200, + DefaultMaxStamina: 1200, + DefaultMaxPower: 1200, + DefaultMaxWiz: 1200, + DefaultMaxGuts: 1200, + MaxVital: 100, + Motivation: 5, + Fans: 741405, + Rarity: 4, + RaceProgramID: 0, + ReserveRaceProgramID: 0, + RaceRunningStyle: 1, + IsShortRace: 0, + TalentLevel: 5, + Skills: []Skill{ + {SkillID: 100241, Level: 5}, + }, + DisableSkillIDs: []horse.SkillID{}, + SkillTips: []SkillTip{ + {GroupID: 90014, Rarity: 1, Level: 3}, + {GroupID: 90020, Rarity: 1, Level: 2}, + {GroupID: 20054, Rarity: 1, Level: 4}, + {GroupID: 20035, Rarity: 1, Level: 5}, + {GroupID: 20203, Rarity: 1, Level: 1}, + {GroupID: 20126, Rarity: 1, Level: 1}, + {GroupID: 20046, Rarity: 1, Level: 5}, + {GroupID: 20160, Rarity: 1, Level: 2}, + {GroupID: 20091, Rarity: 1, Level: 3}, + {GroupID: 20166, Rarity: 1, Level: 4}, + {GroupID: 20166, Rarity: 2, Level: 3}, + {GroupID: 20125, Rarity: 1, Level: 2}, + {GroupID: 20132, Rarity: 1, Level: 4}, + {GroupID: 20007, Rarity: 1, Level: 1}, + {GroupID: 20071, Rarity: 2, Level: 1}, + {GroupID: 20071, Rarity: 1, Level: 3}, + {GroupID: 20059, Rarity: 1, Level: 1}, + {GroupID: 21007, Rarity: 1, Level: 1}, + {GroupID: 21007, Rarity: 2, Level: 3}, + {GroupID: 20023, Rarity: 1, Level: 1}, + {GroupID: 20135, Rarity: 1, Level: 1}, + {GroupID: 20004, Rarity: 1, Level: 1}, + {GroupID: 20013, Rarity: 1, Level: 1}, + {GroupID: 20019, Rarity: 1, Level: 1}, + {GroupID: 20026, Rarity: 1, Level: 1}, + {GroupID: 20138, Rarity: 1, Level: 4}, + {GroupID: 20030, Rarity: 1, Level: 4}, + {GroupID: 20018, Rarity: 1, Level: 3}, + {GroupID: 20165, Rarity: 1, Level: 3}, + {GroupID: 20033, Rarity: 1, Level: 5}, + {GroupID: 20033, Rarity: 2, Level: 3}, + {GroupID: 20043, Rarity: 1, Level: 3}, + {GroupID: 20246, Rarity: 1, Level: 3}, + {GroupID: 20110, Rarity: 1, Level: 3}, + }, + SupportCards: []SingleModeSupportCard{ + { + Position: 1, + SupportCardID: 30010, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 2, + SupportCardID: 30108, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 3, + SupportCardID: 30062, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 4, + SupportCardID: 30107, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 5, + SupportCardID: 30028, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 6, + SupportCardID: 30052, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 872748063176, + }, + }, + SuccessionTrainedCharaID1: 4637, + SuccessionTrainedCharaID2: 4694, + ProperDistanceShort: horse.AptitudeLvD, + ProperDistanceMile: horse.AptitudeLvC, + ProperDistanceMiddle: horse.AptitudeLvA, + ProperDistanceLong: horse.AptitudeLvA, + ProperRunningStyleNige: horse.AptitudeLvA, + ProperRunningStyleSenko: horse.AptitudeLvA, + ProperRunningStyleSashi: horse.AptitudeLvB, + ProperRunningStyleOikomi: horse.AptitudeLvB, + ProperGroundTurf: horse.AptitudeLvA, + ProperGroundDirt: horse.AptitudeLvS, + Turn: 78, + SkillPoint: 4260, + ShortCutState: 0, + State: 3, + PlayingState: 1, + ScenarioID: 3, + RouteID: 14, + StartTime: "2026-07-28 18:11:42", + Evaluations: []Evaluation{ + { + TargetID: 1, + TrainingPartner: 1, + Evaluation: 15, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 2, + TrainingPartner: 2, + Evaluation: 20, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 3, + TrainingPartner: 3, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 4, + TrainingPartner: 4, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 5, + TrainingPartner: 5, + Evaluation: 35, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 6, + TrainingPartner: 6, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 101, + TrainingPartner: 101, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 102, + TrainingPartner: 102, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 103, + TrainingPartner: 103, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 104, + TrainingPartner: 104, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 106, + TrainingPartner: 106, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + }, + TrainingLevels: []TrainingLevel{ + {CommandID: 101, Level: 1}, + {CommandID: 102, Level: 1}, + {CommandID: 103, Level: 1}, + {CommandID: 105, Level: 1}, + {CommandID: 106, Level: 1}, + {CommandID: 601, Level: 5}, + {CommandID: 602, Level: 5}, + {CommandID: 603, Level: 5}, + {CommandID: 604, Level: 5}, + {CommandID: 605, Level: 5}, + }, + NicknameIDs: []int32{}, + CharaEffectIDs: []int32{}, + RouteRaceIDs: []int32{ + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + }, + GuestOutings: []GuestOuting{}, + SkillUpgrades: []SingleModeSkillUpgrade{}, + }, + RewardSummary: RewardSummary{ + AddItem: []AddItem{ + {ItemID: 59, Number: 32800}, + {ItemID: 90, Number: 2}, + {ItemID: 4, Number: 10}, + {ItemID: 92, Number: 2}, + {ItemID: 7, Number: 22}, + {ItemID: 110, Number: 280}, + {ItemID: 73, Number: 2}, + {ItemID: 75, Number: 2}, + {ItemID: 78, Number: 2}, + {ItemID: 43, Number: 20}, + {ItemID: 80, Number: 4}, + {ItemID: 101, Number: 2}, + {ItemID: 13, Number: 10}, + {ItemID: 81, Number: 2}, + {ItemID: 1, Number: 2}, + {ItemID: 83, Number: 2}, + {ItemID: 10, Number: 10}, + {ItemID: 86, Number: 2}, + {ItemID: 85, Number: 2}, + {ItemID: 88, Number: 2}, + {ItemID: 91, Number: 4}, + {ItemID: 175, Number: 2}, + {ItemID: 69, Number: 2}, + {ItemID: 74, Number: 2}, + {ItemID: 76, Number: 2}, + {ItemID: 79, Number: 2}, + {ItemID: 84, Number: 2}, + {ItemID: 103, Number: 2}, + {ItemID: 87, Number: 2}, + }, }, }, }, - EventGain: IdleSingleModeGainInfo{ - Speed: IdleSingleModeSignedInt{Value: 817}, - Stamina: IdleSingleModeSignedInt{Value: 313}, - Power: IdleSingleModeSignedInt{Value: 427}, - Wiz: IdleSingleModeSignedInt{Value: 498}, - Guts: IdleSingleModeSignedInt{Value: 300}, - SkillPoint: 1819, - SkillTips: []SkillTip{ - {GroupID: 20166, Rarity: 2, Level: 3}, - {GroupID: 20071, Rarity: 2, Level: 1}, - {GroupID: 20027, Rarity: 1, Level: 2}, - {GroupID: 20059, Rarity: 1, Level: 1}, - {GroupID: 21007, Rarity: 1, Level: 1}, - {GroupID: 21007, Rarity: 2, Level: 3}, - {GroupID: 20021, Rarity: 1, Level: 1}, - {GroupID: 20043, Rarity: 1, Level: 1}, - {GroupID: 20043, Rarity: 2, Level: 1}, - {GroupID: 20127, Rarity: 2, Level: 1}, - {GroupID: 20135, Rarity: 1, Level: 1}, - {GroupID: 20118, Rarity: 1, Level: 2}, - {GroupID: 20207, Rarity: 1, Level: 1}, - {GroupID: 20137, Rarity: 1, Level: 1}, - {GroupID: 20209, Rarity: 1, Level: 1}, - }, - }, - SuccessionGain: IdleSingleModeGainInfo{ - Speed: IdleSingleModeSignedInt{Value: 67}, - Stamina: IdleSingleModeSignedInt{Value: 0}, - Power: IdleSingleModeSignedInt{Value: 94}, - Wiz: IdleSingleModeSignedInt{Value: 118}, - Guts: IdleSingleModeSignedInt{Value: 59}, - MaxSpeed: 22, - MaxStamina: 2, - MaxPower: 28, - MaxWiz: 45, - MaxGuts: 22, - ProperDistanceShort: 0, - ProperDistanceMile: 1, - ProperDistanceMiddle: 0, - ProperDistanceLong: 0, - ProperRunningStyleNige: 0, - ProperRunningStyleSenko: 0, - ProperRunningStyleSashi: 0, - ProperRunningStyleOikomi: 0, - ProperGroundTurf: 0, - ProperGroundDirt: 5, - SkillPoint: 0, - SkillTips: []SkillTip{ - {GroupID: 90014, Rarity: 1, Level: 2}, - {GroupID: 90020, Rarity: 1, Level: 2}, - {GroupID: 90019, Rarity: 1, Level: 2}, - {GroupID: 20166, Rarity: 1, Level: 3}, - {GroupID: 20233, Rarity: 1, Level: 2}, - {GroupID: 20160, Rarity: 1, Level: 4}, - {GroupID: 21005, Rarity: 1, Level: 3}, - {GroupID: 20019, Rarity: 1, Level: 3}, - {GroupID: 21001, Rarity: 1, Level: 4}, - {GroupID: 20035, Rarity: 1, Level: 1}, - {GroupID: 20091, Rarity: 1, Level: 4}, - {GroupID: 20126, Rarity: 1, Level: 2}, - {GroupID: 20159, Rarity: 1, Level: 2}, - {GroupID: 20125, Rarity: 1, Level: 1}, - {GroupID: 20007, Rarity: 1, Level: 1}, - }, - }, - SuccessionFactorGains: []IdleSingleModeSuccessionFactorGain{ - { - Year: 1, - GainFactorInfo: []Factor{ - {FactorID: 103, Level: 0}, - {FactorID: 10200101, Level: 0}, - {FactorID: 503, Level: 0}, - {FactorID: 1202, Level: 0}, - {FactorID: 10140102, Level: 0}, - {FactorID: 503, Level: 0}, - {FactorID: 1202, Level: 0}, - {FactorID: 403, Level: 0}, - {FactorID: 3202, Level: 0}, - {FactorID: 302, Level: 0}, - {FactorID: 1203, Level: 0}, - {FactorID: 302, Level: 0}, - {FactorID: 1203, Level: 0}, + }, + { + name: "v2.5.4", + json: v2_5_4, + want: WorkIdleSingleMode{ + ProgressInfo: ProgressInfo{ + Chara: SingleModeChara{ + SingleModeCharaID: 1831, + CardID: 104601, + CharaGrade: 1, + Speed: 115, + Stamina: 130, + Power: 85, + Wiz: 107, + Guts: 112, + Vital: 100, + MaxSpeed: 1616, + MaxStamina: 1334, + MaxPower: 1300, + MaxWiz: 1316, + MaxGuts: 1509, + DefaultMaxSpeed: 1200, + DefaultMaxStamina: 1200, + DefaultMaxPower: 1200, + DefaultMaxWiz: 1200, + DefaultMaxGuts: 1200, + MaxVital: 100, + Motivation: 3, + Fans: 1, + Rarity: 3, + RaceProgramID: 0, + ReserveRaceProgramID: 0, + RaceRunningStyle: 1, + IsShortRace: 0, + TalentLevel: 5, + Skills: []Skill{ + {SkillID: 100461, Level: 1}, + }, + DisableSkillIDs: []horse.SkillID{}, + SkillTips: []SkillTip{ + {GroupID: 90024, Rarity: 1, Level: 2}, + {GroupID: 90009, Rarity: 1, Level: 1}, + }, + SupportCards: []SingleModeSupportCard{ + { + Position: 1, + SupportCardID: 30010, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 2, + SupportCardID: 30108, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 3, + SupportCardID: 30062, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 4, + SupportCardID: 30107, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 5, + SupportCardID: 30028, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 6, + SupportCardID: 30052, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 596515219419, + }, + }, + SuccessionTrainedCharaID1: 4699, + SuccessionTrainedCharaID2: 4702, + ProperDistanceShort: horse.AptitudeLvB, + ProperDistanceMile: horse.AptitudeLvA, + ProperDistanceMiddle: horse.AptitudeLvA, + ProperDistanceLong: horse.AptitudeLvE, + ProperRunningStyleNige: horse.AptitudeLvA, + ProperRunningStyleSenko: horse.AptitudeLvD, + ProperRunningStyleSashi: horse.AptitudeLvG, + ProperRunningStyleOikomi: horse.AptitudeLvG, + ProperGroundTurf: horse.AptitudeLvB, + ProperGroundDirt: horse.AptitudeLvA, + Turn: 1, + SkillPoint: 0, + ShortCutState: 0, + State: 0, + PlayingState: 1, + ScenarioID: 3, + RouteID: 31, + StartTime: "2026-07-29 03:42:04", + Evaluations: []Evaluation{ + { + TargetID: 1, + TrainingPartner: 1, + Evaluation: 15, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 2, + TrainingPartner: 2, + Evaluation: 20, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 3, + TrainingPartner: 3, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 4, + TrainingPartner: 4, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 5, + TrainingPartner: 5, + Evaluation: 35, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 6, + TrainingPartner: 6, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 101, + TrainingPartner: 101, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 102, + TrainingPartner: 102, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 103, + TrainingPartner: 103, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 104, + TrainingPartner: 104, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 106, + TrainingPartner: 106, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + }, + TrainingLevels: []TrainingLevel{ + {CommandID: 101, Level: 1}, + {CommandID: 102, Level: 1}, + {CommandID: 103, Level: 1}, + {CommandID: 105, Level: 1}, + {CommandID: 106, Level: 1}, + {CommandID: 601, Level: 5}, + {CommandID: 602, Level: 5}, + {CommandID: 603, Level: 5}, + {CommandID: 604, Level: 5}, + {CommandID: 605, Level: 5}, + }, + NicknameIDs: []int32{}, + CharaEffectIDs: []int32{}, + RouteRaceIDs: []int32{ + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + }, + GuestOutings: []GuestOuting{}, + SkillUpgrades: []SingleModeSkillUpgrade{}, }, + StartTime: "2026-07-29 03:42:04", + EndTime: "2026-07-29 04:32:04", + DressID: 0, }, - { - Year: 2, - GainFactorInfo: []Factor{ - {FactorID: 103, Level: 0}, - {FactorID: 1000802, Level: 0}, - {FactorID: 2016603, Level: 0}, - {FactorID: 2023302, Level: 0}, - {FactorID: 503, Level: 0}, - {FactorID: 2102103, Level: 0}, - {FactorID: 503, Level: 0}, - {FactorID: 2016002, Level: 0}, - {FactorID: 2100502, Level: 0}, - {FactorID: 403, Level: 0}, - {FactorID: 2001902, Level: 0}, - {FactorID: 302, Level: 0}, - {FactorID: 302, Level: 0}, - {FactorID: 1203, Level: 0}, - {FactorID: 10190102, Level: 0}, + ProgressLog: IdleSingleModeProgressLog{ + CharaEffectLog: []CharaEffectLog{ + {CharaEffectID: 16, IsActive: false}, }, + SupportCardGains: []IdleSingleModeSupportCardGain{ + { + SupportCardID: 30010, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 40}, + Stamina: IdleSingleModeSignedInt{Value: 24}, + Power: IdleSingleModeSignedInt{Value: 24}, + Wiz: IdleSingleModeSignedInt{Value: 136}, + Guts: IdleSingleModeSignedInt{Value: 24}, + SkillPoint: 224, + SkillTips: []SkillTip{ + {GroupID: 20001, Rarity: 1, Level: 1}, + {GroupID: 20049, Rarity: 1, Level: 1}, + }, + }, + }, + { + SupportCardID: 30108, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 38}, + Stamina: IdleSingleModeSignedInt{Value: 25}, + Power: IdleSingleModeSignedInt{Value: 25}, + Wiz: IdleSingleModeSignedInt{Value: 95}, + Guts: IdleSingleModeSignedInt{Value: 25}, + SkillPoint: 286, + SkillTips: []SkillTip{ + {GroupID: 20018, Rarity: 1, Level: 4}, + {GroupID: 20170, Rarity: 1, Level: 4}, + }, + }, + }, + { + SupportCardID: 30062, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 22}, + Stamina: IdleSingleModeSignedInt{Value: 130}, + Power: IdleSingleModeSignedInt{Value: 22}, + Wiz: IdleSingleModeSignedInt{Value: 22}, + Guts: IdleSingleModeSignedInt{Value: 46}, + SkillPoint: 164, + SkillTips: []SkillTip{ + {GroupID: 20054, Rarity: 1, Level: 1}, + {GroupID: 20055, Rarity: 1, Level: 1}, + }, + }, + }, + { + SupportCardID: 30107, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 96}, + Stamina: IdleSingleModeSignedInt{Value: 25}, + Power: IdleSingleModeSignedInt{Value: 62}, + Wiz: IdleSingleModeSignedInt{Value: 25}, + Guts: IdleSingleModeSignedInt{Value: 25}, + SkillPoint: 201, + SkillTips: []SkillTip{ + {GroupID: 20018, Rarity: 1, Level: 1}, + {GroupID: 20160, Rarity: 1, Level: 3}, + }, + }, + }, + { + SupportCardID: 30028, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 82}, + Stamina: IdleSingleModeSignedInt{Value: 24}, + Power: IdleSingleModeSignedInt{Value: 60}, + Wiz: IdleSingleModeSignedInt{Value: 24}, + Guts: IdleSingleModeSignedInt{Value: 24}, + SkillPoint: 199, + SkillTips: []SkillTip{ + {GroupID: 20038, Rarity: 1, Level: 3}, + {GroupID: 20035, Rarity: 1, Level: 5}, + }, + }, + }, + { + SupportCardID: 30052, + GainInfo: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 48}, + Stamina: IdleSingleModeSignedInt{Value: 20}, + Power: IdleSingleModeSignedInt{Value: 20}, + Wiz: IdleSingleModeSignedInt{Value: 20}, + Guts: IdleSingleModeSignedInt{Value: 48}, + SkillPoint: 387, + SkillTips: []SkillTip{}, + }, + }, + }, + EventGain: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 598}, + Stamina: IdleSingleModeSignedInt{Value: 281}, + Power: IdleSingleModeSignedInt{Value: 438}, + Wiz: IdleSingleModeSignedInt{Value: 419}, + Guts: IdleSingleModeSignedInt{Value: 342}, + SkillPoint: 2405, + SkillTips: []SkillTip{ + {GroupID: 20071, Rarity: 2, Level: 1}, + {GroupID: 20004, Rarity: 1, Level: 4}, + {GroupID: 20167, Rarity: 1, Level: 3}, + {GroupID: 20235, Rarity: 1, Level: 1}, + {GroupID: 20054, Rarity: 1, Level: 2}, + {GroupID: 20025, Rarity: 1, Level: 1}, + {GroupID: 21007, Rarity: 1, Level: 1}, + {GroupID: 21007, Rarity: 2, Level: 3}, + {GroupID: 20166, Rarity: 2, Level: 3}, + {GroupID: 20220, Rarity: 1, Level: 1}, + {GroupID: 20226, Rarity: 1, Level: 1}, + {GroupID: 20017, Rarity: 1, Level: 1}, + {GroupID: 20053, Rarity: 1, Level: 1}, + {GroupID: 20135, Rarity: 1, Level: 1}, + {GroupID: 20233, Rarity: 1, Level: 3}, + {GroupID: 20073, Rarity: 1, Level: 1}, + {GroupID: 20128, Rarity: 1, Level: 1}, + }, + }, + SuccessionGain: IdleSingleModeGainInfo{ + Speed: IdleSingleModeSignedInt{Value: 71}, + Stamina: IdleSingleModeSignedInt{Value: 129}, + Power: IdleSingleModeSignedInt{Value: 3}, + Wiz: IdleSingleModeSignedInt{Value: 59}, + Guts: IdleSingleModeSignedInt{Value: 39}, + MaxSpeed: 24, + MaxStamina: 48, + MaxPower: 0, + MaxWiz: 21, + MaxGuts: 17, + ProperDistanceShort: 0, + ProperDistanceMile: 0, + ProperDistanceMiddle: 0, + ProperDistanceLong: 0, + ProperRunningStyleNige: 0, + ProperRunningStyleSenko: 0, + ProperRunningStyleSashi: 0, + ProperRunningStyleOikomi: 0, + ProperGroundTurf: 4, + ProperGroundDirt: 1, + SkillPoint: 0, + SkillTips: []SkillTip{ + {GroupID: 90009, Rarity: 1, Level: 4}, + {GroupID: 90024, Rarity: 1, Level: 3}, + {GroupID: 20038, Rarity: 1, Level: 2}, + {GroupID: 20071, Rarity: 1, Level: 5}, + {GroupID: 20126, Rarity: 1, Level: 5}, + {GroupID: 21003, Rarity: 1, Level: 3}, + {GroupID: 20004, Rarity: 1, Level: 1}, + {GroupID: 20003, Rarity: 1, Level: 1}, + {GroupID: 20203, Rarity: 1, Level: 2}, + {GroupID: 20159, Rarity: 1, Level: 1}, + {GroupID: 20021, Rarity: 1, Level: 4}, + {GroupID: 20222, Rarity: 1, Level: 1}, + {GroupID: 20014, Rarity: 1, Level: 1}, + {GroupID: 21001, Rarity: 1, Level: 1}, + }, + }, + SuccessionFactorGains: []IdleSingleModeSuccessionFactorGain{ + { + Year: 1, + GainFactorInfo: []Factor{ + {FactorID: 402, Level: 0}, + {FactorID: 10240102, Level: 0}, + {FactorID: 202, Level: 0}, + {FactorID: 10090101, Level: 0}, + {FactorID: 103, Level: 0}, + {FactorID: 1102, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 202, Level: 0}, + {FactorID: 1103, Level: 0}, + {FactorID: 203, Level: 0}, + {FactorID: 1103, Level: 0}, + }, + }, + { + Year: 2, + GainFactorInfo: []Factor{ + {FactorID: 402, Level: 0}, + {FactorID: 1203, Level: 0}, + {FactorID: 1001903, Level: 0}, + {FactorID: 2003802, Level: 0}, + {FactorID: 2007103, Level: 0}, + {FactorID: 2012602, Level: 0}, + {FactorID: 202, Level: 0}, + {FactorID: 10090101, Level: 0}, + {FactorID: 103, Level: 0}, + {FactorID: 1102, Level: 0}, + {FactorID: 3000402, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 1000502, Level: 0}, + {FactorID: 2100303, Level: 0}, + {FactorID: 202, Level: 0}, + {FactorID: 203, Level: 0}, + }, + }, + { + Year: 3, + GainFactorInfo: []Factor{ + {FactorID: 402, Level: 0}, + {FactorID: 2007103, Level: 0}, + {FactorID: 2020302, Level: 0}, + {FactorID: 10240102, Level: 0}, + {FactorID: 202, Level: 0}, + {FactorID: 103, Level: 0}, + {FactorID: 1001702, Level: 0}, + {FactorID: 1003101, Level: 0}, + {FactorID: 503, Level: 0}, + {FactorID: 2015902, Level: 0}, + {FactorID: 2102103, Level: 0}, + {FactorID: 202, Level: 0}, + {FactorID: 203, Level: 0}, + {FactorID: 2002102, Level: 0}, + }, + }, + }, + RaceHistory: []IdleSingleModeRaceHistory{ + { + RaceHistory: SingleRaceHistory{ + Turn: 12, + ProgramID: 846, + Weather: 1, + GroundCondition: 2, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 8, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 400, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 1398, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 23, + ProgramID: 624, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 3, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 90, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 4, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + GainedFans: 13986, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 24, + ProgramID: 625, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 16, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 92, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 13608, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 31, + ProgramID: 163, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 10, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 73, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 21978, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 33, + ProgramID: 164, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 13, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 75, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 4, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 20979, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 34, + ProgramID: 166, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 11, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 78, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 39960, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 36, + ProgramID: 74, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 18, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 80, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 30, + ItemID: 110, + ItemNum: 40, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 29970, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 37, + ProgramID: 1023, + Weather: 2, + GroundCondition: 2, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 8, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 101, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 30, + ItemID: 110, + ItemNum: 40, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 8991, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 42, + ProgramID: 75, + Weather: 1, + GroundCondition: 2, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 16, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 81, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 1, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 25974, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 44, + ProgramID: 168, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 11, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 83, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 10, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 90, + ItemID: 43, + ItemNum: 10, + }, + }, + GainedFans: 23976, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 45, + ProgramID: 1132, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 5, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 103, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 15984, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 46, + ProgramID: 78, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 13, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 85, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 4, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 21978, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 47, + ProgramID: 80, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 7, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 88, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 19080, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 48, + ProgramID: 1027, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 12, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 106, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + GainedFans: 14688, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 51, + ProgramID: 1106, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 14, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 175, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 30, + ItemID: 110, + ItemNum: 40, + }, + }, + GainedFans: 11988, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 52, + ProgramID: 1, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 13, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 69, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 30, + ItemID: 110, + ItemNum: 40, + }, + }, + GainedFans: 19980, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 54, + ProgramID: 3, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 15, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 71, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + GainedFans: 26973, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 56, + ProgramID: 4, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 3, + FrameOrder: 10, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 3, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 7491, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 3, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 57, + ProgramID: 5, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 3, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 76, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 4, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 20979, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 59, + ProgramID: 73, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 13, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 79, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 4, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 30, + ItemID: 110, + ItemNum: 40, + }, + }, + GainedFans: 25974, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 60, + ProgramID: 1022, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 10, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 105, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 11988, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 67, + ProgramID: 1109, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 4, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 179, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 11988, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 68, + ProgramID: 76, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 14, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 84, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 29970, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 69, + ProgramID: 1132, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 11, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 103, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 15984, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 70, + ProgramID: 79, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 7, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 87, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 56160, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 71, + ProgramID: 80, + Weather: 3, + GroundCondition: 4, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 16, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 88, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{}, + GainedFans: 18720, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 72, + ProgramID: 1027, + Weather: 1, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 11, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 11, + ItemID: 106, + ItemNum: 2, + }, + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + { + ItemType: 11, + ItemID: 13, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 800, + }, + }, + GainedFans: 15264, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 74, + ProgramID: 2022, + Weather: 2, + GroundCondition: 1, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 10, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + }, + GainedFans: 13986, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 76, + ProgramID: 2120, + Weather: 1, + GroundCondition: 2, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 3, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + { + ItemType: 30, + ItemID: 110, + ItemNum: 80, + }, + }, + GainedFans: 19980, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + { + RaceHistory: SingleRaceHistory{ + Turn: 78, + ProgramID: 2216, + Weather: 3, + GroundCondition: 4, + RunningStyle: 1, + ResultRank: 1, + FrameOrder: 11, + NPCCount: 0, + }, + RaceRewardInfo: CharaRaceReward{ + ResultRank: 1, + ResultTime: 0, + RaceReward: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + { + ItemType: 11, + ItemID: 7, + ItemNum: 2, + }, + }, + RaceRewardBonus: []RaceReward{ + { + ItemType: 91, + ItemID: 59, + ItemNum: 1200, + }, + { + ItemType: 30, + ItemID: 110, + ItemNum: 80, + }, + }, + GainedFans: 59940, + CampaignIDs: []int32{223}, + RaceRewardPlusBonus: []RaceReward{}, + RaceRewardBonusWin: []RaceReward{}, + }, + LoseTipsID: 0, + }, + }, + GainSkillIDs: []horse.SkillID{}, + TotalSkillPoint: 3866, }, - { - Year: 3, - GainFactorInfo: []Factor{ - {FactorID: 103, Level: 0}, - {FactorID: 2003501, Level: 0}, - {FactorID: 2009102, Level: 0}, - {FactorID: 10200101, Level: 0}, - {FactorID: 503, Level: 0}, - {FactorID: 1002002, Level: 0}, - {FactorID: 2012502, Level: 0}, - {FactorID: 503, Level: 0}, - {FactorID: 2012602, Level: 0}, - {FactorID: 2015902, Level: 0}, - {FactorID: 403, Level: 0}, - {FactorID: 302, Level: 0}, - {FactorID: 302, Level: 0}, + End: End{ + Chara: SingleModeChara{ + SingleModeCharaID: 1831, + CardID: 104601, + CharaGrade: 10, + Speed: 1089, + Stamina: 743, + Power: 739, + Wiz: 886, + Guts: 673, + Vital: 10, + MaxSpeed: 1624, + MaxStamina: 1348, + MaxPower: 1300, + MaxWiz: 1321, + MaxGuts: 1517, + DefaultMaxSpeed: 1200, + DefaultMaxStamina: 1200, + DefaultMaxPower: 1200, + DefaultMaxWiz: 1200, + DefaultMaxGuts: 1200, + MaxVital: 100, + Motivation: 5, + Fans: 657766, + Rarity: 3, + RaceProgramID: 0, + ReserveRaceProgramID: 0, + RaceRunningStyle: 1, + IsShortRace: 0, + TalentLevel: 5, + Skills: []Skill{ + {SkillID: 100461, Level: 4}, + }, + DisableSkillIDs: []horse.SkillID{}, + SkillTips: []SkillTip{ + {GroupID: 90009, Rarity: 1, Level: 4}, + {GroupID: 90024, Rarity: 1, Level: 3}, + {GroupID: 20038, Rarity: 1, Level: 5}, + {GroupID: 20071, Rarity: 1, Level: 5}, + {GroupID: 20071, Rarity: 2, Level: 1}, + {GroupID: 20126, Rarity: 1, Level: 5}, + {GroupID: 21003, Rarity: 1, Level: 3}, + {GroupID: 20004, Rarity: 1, Level: 5}, + {GroupID: 20003, Rarity: 1, Level: 1}, + {GroupID: 20203, Rarity: 1, Level: 2}, + {GroupID: 20159, Rarity: 1, Level: 1}, + {GroupID: 20021, Rarity: 1, Level: 4}, + {GroupID: 20222, Rarity: 1, Level: 1}, + {GroupID: 20014, Rarity: 1, Level: 1}, + {GroupID: 21001, Rarity: 1, Level: 1}, + {GroupID: 20167, Rarity: 1, Level: 3}, + {GroupID: 20235, Rarity: 1, Level: 1}, + {GroupID: 20054, Rarity: 1, Level: 3}, + {GroupID: 20025, Rarity: 1, Level: 1}, + {GroupID: 21007, Rarity: 1, Level: 1}, + {GroupID: 21007, Rarity: 2, Level: 3}, + {GroupID: 20166, Rarity: 2, Level: 3}, + {GroupID: 20220, Rarity: 1, Level: 1}, + {GroupID: 20226, Rarity: 1, Level: 1}, + {GroupID: 20017, Rarity: 1, Level: 1}, + {GroupID: 20053, Rarity: 1, Level: 1}, + {GroupID: 20135, Rarity: 1, Level: 1}, + {GroupID: 20001, Rarity: 1, Level: 1}, + {GroupID: 20049, Rarity: 1, Level: 1}, + {GroupID: 20018, Rarity: 1, Level: 5}, + {GroupID: 20170, Rarity: 1, Level: 4}, + {GroupID: 20055, Rarity: 1, Level: 1}, + {GroupID: 20160, Rarity: 1, Level: 3}, + {GroupID: 20035, Rarity: 1, Level: 5}, + {GroupID: 20233, Rarity: 1, Level: 3}, + {GroupID: 20073, Rarity: 1, Level: 1}, + {GroupID: 20128, Rarity: 1, Level: 1}, + }, + SupportCards: []SingleModeSupportCard{ + { + Position: 1, + SupportCardID: 30010, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 2, + SupportCardID: 30108, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 3, + SupportCardID: 30062, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 4, + SupportCardID: 30107, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 5, + SupportCardID: 30028, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 0, + }, + { + Position: 6, + SupportCardID: 30052, + LimitBreakCount: 4, + Exp: 118185, + OwnerViewerID: 596515219419, + }, + }, + SuccessionTrainedCharaID1: 4699, + SuccessionTrainedCharaID2: 4702, + ProperDistanceShort: horse.AptitudeLvB, + ProperDistanceMile: horse.AptitudeLvA, + ProperDistanceMiddle: horse.AptitudeLvA, + ProperDistanceLong: horse.AptitudeLvE, + ProperRunningStyleNige: horse.AptitudeLvA, + ProperRunningStyleSenko: horse.AptitudeLvD, + ProperRunningStyleSashi: horse.AptitudeLvG, + ProperRunningStyleOikomi: horse.AptitudeLvG, + ProperGroundTurf: horse.AptitudeLvA, + ProperGroundDirt: horse.AptitudeLvS, + Turn: 78, + SkillPoint: 3866, + ShortCutState: 0, + State: 3, + PlayingState: 1, + ScenarioID: 3, + RouteID: 31, + StartTime: "2026-07-29 03:42:04", + Evaluations: []Evaluation{ + { + TargetID: 1, + TrainingPartner: 1, + Evaluation: 15, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 2, + TrainingPartner: 2, + Evaluation: 20, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 3, + TrainingPartner: 3, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 4, + TrainingPartner: 4, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 5, + TrainingPartner: 5, + Evaluation: 35, + IsOuting: 0, + StoryStep: 0, + IsAppear: 1, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 6, + TrainingPartner: 6, + Evaluation: 30, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 101, + TrainingPartner: 101, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 102, + TrainingPartner: 102, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 103, + TrainingPartner: 103, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 104, + TrainingPartner: 104, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + { + TargetID: 106, + TrainingPartner: 106, + Evaluation: 0, + IsOuting: 0, + StoryStep: 0, + IsAppear: 0, + GroupOutingInfo: []GroupOuting{}, + }, + }, + TrainingLevels: []TrainingLevel{ + {CommandID: 101, Level: 1}, + {CommandID: 102, Level: 1}, + {CommandID: 103, Level: 1}, + {CommandID: 105, Level: 1}, + {CommandID: 106, Level: 1}, + {CommandID: 601, Level: 5}, + {CommandID: 602, Level: 5}, + {CommandID: 603, Level: 5}, + {CommandID: 604, Level: 5}, + {CommandID: 605, Level: 5}, + }, + NicknameIDs: []int32{}, + CharaEffectIDs: []int32{}, + RouteRaceIDs: []int32{ + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + }, + GuestOutings: []GuestOuting{}, + SkillUpgrades: []SingleModeSkillUpgrade{}, + }, + RewardSummary: RewardSummary{ + AddItem: []AddItem{ + {ItemID: 59, Number: 34000}, + {ItemID: 90, Number: 2}, + {ItemID: 4, Number: 10}, + {ItemID: 92, Number: 2}, + {ItemID: 7, Number: 20}, + {ItemID: 73, Number: 2}, + {ItemID: 75, Number: 2}, + {ItemID: 78, Number: 2}, + {ItemID: 80, Number: 2}, + {ItemID: 110, Number: 360}, + {ItemID: 101, Number: 2}, + {ItemID: 13, Number: 22}, + {ItemID: 81, Number: 2}, + {ItemID: 1, Number: 2}, + {ItemID: 83, Number: 2}, + {ItemID: 10, Number: 2}, + {ItemID: 43, Number: 10}, + {ItemID: 103, Number: 4}, + {ItemID: 85, Number: 2}, + {ItemID: 88, Number: 4}, + {ItemID: 106, Number: 4}, + {ItemID: 175, Number: 2}, + {ItemID: 69, Number: 2}, + {ItemID: 71, Number: 2}, + {ItemID: 76, Number: 2}, + {ItemID: 79, Number: 2}, + {ItemID: 105, Number: 2}, + {ItemID: 179, Number: 2}, + {ItemID: 84, Number: 2}, + {ItemID: 87, Number: 2}, + }, }, }, }, - RaceHistory: []IdleSingleModeRaceHistory{ - { - RaceHistory: SingleRaceHistory{ - Turn: 12, - ProgramID: 1067, - Weather: 2, - GroundCondition: 2, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 2, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 400}, - }, - RaceRewardBonus: []RaceReward{}, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 1398, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - { - RaceHistory: SingleRaceHistory{ - Turn: 44, - ProgramID: 168, - Weather: 1, - GroundCondition: 1, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 11, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 11, ItemID: 83, ItemNum: 2}, - {ItemType: 91, ItemID: 59, ItemNum: 800}, - {ItemType: 11, ItemID: 10, ItemNum: 2}, - }, - RaceRewardBonus: []RaceReward{ - {ItemType: 30, ItemID: 110, ItemNum: 40}, - }, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 23976, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - { - RaceHistory: SingleRaceHistory{ - Turn: 48, - ProgramID: 81, - Weather: 1, - GroundCondition: 1, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 4, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 11, ItemID: 91, ItemNum: 2}, - {ItemType: 91, ItemID: 59, ItemNum: 800}, - {ItemType: 11, ItemID: 10, ItemNum: 2}, - }, - RaceRewardBonus: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 800}, - {ItemType: 30, ItemID: 110, ItemNum: 40}, - }, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 59940, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - { - RaceHistory: SingleRaceHistory{ - Turn: 54, - ProgramID: 12, - Weather: 2, - GroundCondition: 1, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 7, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 800}, - {ItemType: 11, ItemID: 10, ItemNum: 2}, - }, - RaceRewardBonus: []RaceReward{}, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 13387, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - { - RaceHistory: SingleRaceHistory{ - Turn: 56, - ProgramID: 4, - Weather: 1, - GroundCondition: 1, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 6, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 11, ItemID: 74, ItemNum: 2}, - {ItemType: 91, ItemID: 59, ItemNum: 800}, - {ItemType: 11, ItemID: 10, ItemNum: 2}, - }, - RaceRewardBonus: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 800}, - {ItemType: 30, ItemID: 110, ItemNum: 40}, - }, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 29970, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - { - RaceHistory: SingleRaceHistory{ - Turn: 60, - ProgramID: 74, - Weather: 2, - GroundCondition: 1, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 8, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 11, ItemID: 80, ItemNum: 2}, - {ItemType: 91, ItemID: 59, ItemNum: 800}, - {ItemType: 11, ItemID: 7, ItemNum: 2}, - }, - RaceRewardBonus: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 800}, - }, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 29970, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - { - RaceHistory: SingleRaceHistory{ - Turn: 68, - ProgramID: 76, - Weather: 1, - GroundCondition: 1, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 14, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 11, ItemID: 84, ItemNum: 2}, - {ItemType: 91, ItemID: 59, ItemNum: 800}, - {ItemType: 11, ItemID: 7, ItemNum: 2}, - }, - RaceRewardBonus: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 800}, - }, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 29970, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - { - RaceHistory: SingleRaceHistory{ - Turn: 72, - ProgramID: 81, - Weather: 2, - GroundCondition: 1, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 6, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 11, ItemID: 91, ItemNum: 2}, - {ItemType: 91, ItemID: 59, ItemNum: 800}, - {ItemType: 11, ItemID: 10, ItemNum: 2}, - }, - RaceRewardBonus: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 800}, - {ItemType: 30, ItemID: 110, ItemNum: 40}, - }, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 59940, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - { - RaceHistory: SingleRaceHistory{ - Turn: 74, - ProgramID: 2031, - Weather: 2, - GroundCondition: 2, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 10, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 1200}, - {ItemType: 11, ItemID: 10, ItemNum: 2}, - }, - RaceRewardBonus: []RaceReward{}, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 13986, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - { - RaceHistory: SingleRaceHistory{ - Turn: 76, - ProgramID: 2130, - Weather: 1, - GroundCondition: 1, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 1, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 1200}, - {ItemType: 11, ItemID: 10, ItemNum: 2}, - }, - RaceRewardBonus: []RaceReward{ - {ItemType: 30, ItemID: 110, ItemNum: 80}, - }, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 19980, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - { - RaceHistory: SingleRaceHistory{ - Turn: 78, - ProgramID: 2228, - Weather: 2, - GroundCondition: 2, - RunningStyle: 1, - ResultRank: 1, - FrameOrder: 4, - NpcCount: 0, - }, - RaceRewardInfo: CharaRaceReward{ - ResultRank: 1, - ResultTime: 0, - RaceReward: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 1200}, - {ItemType: 11, ItemID: 10, ItemNum: 2}, - }, - RaceRewardBonus: []RaceReward{ - {ItemType: 91, ItemID: 59, ItemNum: 1200}, - {ItemType: 30, ItemID: 110, ItemNum: 80}, - }, - RaceRewardPlusBonus: []RaceReward{}, - RaceRewardBonusWin: []RaceReward{}, - RaceRewardLimit: []RaceRewardLimit{}, - GainedFans: 59940, - CampaignIDs: []int32{223}, - }, - LoseTipsID: 0, - }, - }, - GainSkillIDs: []horse.SkillID{}, - TotalSkillPoint: 3904, }, } - var got WorkIdleSingleMode - d := json.NewDecoder(strings.NewReader(testJSON)) - d.DisallowUnknownFields() - if err := d.Decode(&got); err != nil { - t.Error(err) - } - if diff := cmp.Diff(want, got); diff != "" { - t.Errorf("wrong data (+got/-want):\n%s", diff) + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + got, err := loadISM(strings.NewReader(c.json)) + if err != nil { + t.Error(err) + } + if diff := cmp.Diff(c.want, got); diff != "" { + t.Errorf("wrong data (+got/-want):\n%s", diff) + } + }) } } diff --git a/main.go b/main.go index eaf9308..b01ddc7 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,6 @@ package main import ( "bufio" "encoding/csv" - "encoding/json" "flag" "log/slog" "os" @@ -46,10 +45,8 @@ func dofile(w *csv.Writer, name string) { } defer f.Close() - var ism WorkIdleSingleMode - d := json.NewDecoder(f) - d.DisallowUnknownFields() - if err := d.Decode(&ism); err != nil { + ism, err := loadISM(f) + if err != nil { log.Error("decode", slog.Any("err", err)) return } diff --git a/row.go b/row.go index f61ba6b..e1fa31b 100644 --- a/row.go +++ b/row.go @@ -69,8 +69,8 @@ func ismRows(key string, ism WorkIdleSingleMode) iter.Seq[Row] { } row := Row{ File: key, - Scenario: int(ism.Chara.ScenarioID), - Character: int(ism.Chara.CardID), + Scenario: int(ism.ProgressInfo.Chara.ScenarioID), + Character: int(ism.ProgressInfo.Chara.CardID), Deck1: int(pl.SupportCardGains[0].SupportCardID), Deck2: int(pl.SupportCardGains[1].SupportCardID), Deck3: int(pl.SupportCardGains[2].SupportCardID), diff --git a/testdata.json b/testdata/v2.5.1.json similarity index 100% rename from testdata.json rename to testdata/v2.5.1.json diff --git a/testdata/v2.5.2-beta2.json b/testdata/v2.5.2-beta2.json new file mode 100644 index 0000000..c30eb0f --- /dev/null +++ b/testdata/v2.5.2-beta2.json @@ -0,0 +1,2808 @@ +{ + "chara_info": { + "single_mode_chara_id": 1829, + "card_id": 102401, + "chara_grade": 1, + "speed": 107, + "stamina": 118, + "power": 103, + "wiz": 147, + "guts": 133, + "vital": 100, + "max_speed": 1616, + "max_stamina": 1300, + "max_power": 1318, + "max_wiz": 1332, + "max_guts": 1516, + "default_max_speed": 1200, + "default_max_stamina": 1200, + "default_max_power": 1200, + "default_max_wiz": 1200, + "default_max_guts": 1200, + "max_vital": 100, + "motivation": 3, + "fans": 1, + "rarity": 4, + "race_program_id": 0, + "reserve_race_program_id": 0, + "race_running_style": 1, + "is_short_race": 0, + "proper_ground_turf": 7, + "proper_ground_dirt": 7, + "proper_running_style_nige": 7, + "proper_running_style_senko": 7, + "proper_running_style_sashi": 6, + "proper_running_style_oikomi": 6, + "proper_distance_short": 4, + "proper_distance_mile": 5, + "proper_distance_middle": 7, + "proper_distance_long": 7, + "talent_level": 5, + "skill_array": [ + { + "skill_id": 100241, + "level": 2 + } + ], + "disable_skill_id_array": [], + "skill_tips_array": [ + { + "group_id": 90014, + "rarity": 1, + "level": 2 + }, + { + "group_id": 90020, + "rarity": 1, + "level": 1 + } + ], + "support_card_array": [ + { + "position": 1, + "support_card_id": 30010, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 2, + "support_card_id": 30108, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 3, + "support_card_id": 30062, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 4, + "support_card_id": 30107, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 5, + "support_card_id": 30028, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 6, + "support_card_id": 30052, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 872748063176 + } + ], + "succession_trained_chara_id_1": 4637, + "succession_trained_chara_id_2": 4694, + "turn": 1, + "skill_point": 0, + "short_cut_state": 0, + "state": 0, + "playing_state": 1, + "scenario_id": 3, + "route_id": 14, + "start_time": "2026-07-28 18:11:42", + "evaluation_info_array": [ + { + "target_id": 1, + "training_partner_id": 1, + "evaluation": 15, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 2, + "training_partner_id": 2, + "evaluation": 20, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 3, + "training_partner_id": 3, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 4, + "training_partner_id": 4, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 5, + "training_partner_id": 5, + "evaluation": 35, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 6, + "training_partner_id": 6, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 101, + "training_partner_id": 101, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 102, + "training_partner_id": 102, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 103, + "training_partner_id": 103, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 104, + "training_partner_id": 104, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 106, + "training_partner_id": 106, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + } + ], + "training_level_info_array": [ + { + "command_id": 101, + "level": 1 + }, + { + "command_id": 102, + "level": 1 + }, + { + "command_id": 103, + "level": 1 + }, + { + "command_id": 105, + "level": 1 + }, + { + "command_id": 106, + "level": 1 + }, + { + "command_id": 601, + "level": 5 + }, + { + "command_id": 602, + "level": 5 + }, + { + "command_id": 603, + "level": 5 + }, + { + "command_id": 604, + "level": 5 + }, + { + "command_id": 605, + "level": 5 + } + ], + "nickname_id_array": [], + "chara_effect_id_array": [], + "route_race_id_array": [ + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156 + ], + "guest_outing_info_array": [], + "skill_upgrade_info_array": [] + }, + "progress_log_info": { + "chara_effect_log_array": [ + { + "chara_effect_id": 3, + "is_active": false + } + ], + "support_card_gain_info_array": [ + { + "support_card_id": 30010, + "gain_info": { + "speed": { + "sign": 0, + "value": 40 + }, + "stamina": { + "sign": 0, + "value": 24 + }, + "power": { + "sign": 0, + "value": 24 + }, + "wiz": { + "sign": 0, + "value": 136 + }, + "guts": { + "sign": 0, + "value": 24 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 224, + "skill_tips_array": [ + { + "group_id": 20019, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20026, + "rarity": 1, + "level": 1 + } + ] + } + }, + { + "support_card_id": 30108, + "gain_info": { + "speed": { + "sign": 0, + "value": 38 + }, + "stamina": { + "sign": 0, + "value": 25 + }, + "power": { + "sign": 0, + "value": 25 + }, + "wiz": { + "sign": 0, + "value": 95 + }, + "guts": { + "sign": 0, + "value": 25 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 286, + "skill_tips_array": [ + { + "group_id": 20138, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20030, + "rarity": 1, + "level": 4 + } + ] + } + }, + { + "support_card_id": 30062, + "gain_info": { + "speed": { + "sign": 0, + "value": 22 + }, + "stamina": { + "sign": 0, + "value": 130 + }, + "power": { + "sign": 0, + "value": 22 + }, + "wiz": { + "sign": 0, + "value": 22 + }, + "guts": { + "sign": 0, + "value": 46 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 164, + "skill_tips_array": [ + { + "group_id": 20054, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20071, + "rarity": 1, + "level": 1 + } + ] + } + }, + { + "support_card_id": 30107, + "gain_info": { + "speed": { + "sign": 0, + "value": 96 + }, + "stamina": { + "sign": 0, + "value": 25 + }, + "power": { + "sign": 0, + "value": 62 + }, + "wiz": { + "sign": 0, + "value": 25 + }, + "guts": { + "sign": 0, + "value": 25 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 201, + "skill_tips_array": [ + { + "group_id": 20018, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20165, + "rarity": 1, + "level": 3 + } + ] + } + }, + { + "support_card_id": 30028, + "gain_info": { + "speed": { + "sign": 0, + "value": 82 + }, + "stamina": { + "sign": 0, + "value": 24 + }, + "power": { + "sign": 0, + "value": 60 + }, + "wiz": { + "sign": 0, + "value": 24 + }, + "guts": { + "sign": 0, + "value": 24 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 199, + "skill_tips_array": [ + { + "group_id": 20033, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20043, + "rarity": 1, + "level": 3 + } + ] + } + }, + { + "support_card_id": 30052, + "gain_info": { + "speed": { + "sign": 0, + "value": 48 + }, + "stamina": { + "sign": 0, + "value": 20 + }, + "power": { + "sign": 0, + "value": 20 + }, + "wiz": { + "sign": 0, + "value": 20 + }, + "guts": { + "sign": 0, + "value": 48 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 388, + "skill_tips_array": [] + } + } + ], + "event_gain_info": { + "speed": { + "sign": 0, + "value": 669 + }, + "stamina": { + "sign": 0, + "value": 325 + }, + "power": { + "sign": 0, + "value": 467 + }, + "wiz": { + "sign": 0, + "value": 419 + }, + "guts": { + "sign": 0, + "value": 303 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 2798, + "skill_tips_array": [ + { + "group_id": 20166, + "rarity": 2, + "level": 3 + }, + { + "group_id": 20071, + "rarity": 2, + "level": 1 + }, + { + "group_id": 20071, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20059, + "rarity": 1, + "level": 1 + }, + { + "group_id": 21007, + "rarity": 1, + "level": 1 + }, + { + "group_id": 21007, + "rarity": 2, + "level": 3 + }, + { + "group_id": 20023, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20135, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20004, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20013, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20033, + "rarity": 2, + "level": 3 + }, + { + "group_id": 20246, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20110, + "rarity": 1, + "level": 3 + } + ] + }, + "succession_gain_info": { + "speed": { + "sign": 0, + "value": 59 + }, + "stamina": { + "sign": 0, + "value": 0 + }, + "power": { + "sign": 0, + "value": 124 + }, + "wiz": { + "sign": 0, + "value": 142 + }, + "guts": { + "sign": 0, + "value": 50 + }, + "max_speed": 23, + "max_stamina": 1, + "max_power": 26, + "max_wiz": 45, + "max_guts": 20, + "proper_distance_short": 0, + "proper_distance_mile": 1, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 5, + "skill_point": 0, + "skill_tips_array": [ + { + "group_id": 90014, + "rarity": 1, + "level": 3 + }, + { + "group_id": 90020, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20054, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20035, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20203, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20126, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20046, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20160, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20091, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20166, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20125, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20132, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20007, + "rarity": 1, + "level": 1 + } + ] + }, + "succession_factor_gain_array": [ + { + "year": 1, + "gain_factor_info_array": [ + { + "factor_id": 103, + "level": 0 + }, + { + "factor_id": 10200101, + "level": 0 + }, + { + "factor_id": 503, + "level": 0 + }, + { + "factor_id": 1202, + "level": 0 + }, + { + "factor_id": 10140102, + "level": 0 + }, + { + "factor_id": 503, + "level": 0 + }, + { + "factor_id": 1202, + "level": 0 + }, + { + "factor_id": 403, + "level": 0 + }, + { + "factor_id": 3202, + "level": 0 + }, + { + "factor_id": 302, + "level": 0 + }, + { + "factor_id": 1203, + "level": 0 + }, + { + "factor_id": 302, + "level": 0 + }, + { + "factor_id": 1203, + "level": 0 + } + ] + }, + { + "year": 2, + "gain_factor_info_array": [ + { + "factor_id": 103, + "level": 0 + }, + { + "factor_id": 2005402, + "level": 0 + }, + { + "factor_id": 10200101, + "level": 0 + }, + { + "factor_id": 503, + "level": 0 + }, + { + "factor_id": 1202, + "level": 0 + }, + { + "factor_id": 2012602, + "level": 0 + }, + { + "factor_id": 503, + "level": 0 + }, + { + "factor_id": 403, + "level": 0 + }, + { + "factor_id": 2003502, + "level": 0 + }, + { + "factor_id": 2020302, + "level": 0 + }, + { + "factor_id": 302, + "level": 0 + }, + { + "factor_id": 2004603, + "level": 0 + }, + { + "factor_id": 302, + "level": 0 + }, + { + "factor_id": 2016002, + "level": 0 + } + ] + }, + { + "year": 3, + "gain_factor_info_array": [ + { + "factor_id": 103, + "level": 0 + }, + { + "factor_id": 2003501, + "level": 0 + }, + { + "factor_id": 2009102, + "level": 0 + }, + { + "factor_id": 2016603, + "level": 0 + }, + { + "factor_id": 503, + "level": 0 + }, + { + "factor_id": 2012502, + "level": 0 + }, + { + "factor_id": 2013202, + "level": 0 + }, + { + "factor_id": 10140102, + "level": 0 + }, + { + "factor_id": 503, + "level": 0 + }, + { + "factor_id": 1000702, + "level": 0 + }, + { + "factor_id": 1002002, + "level": 0 + }, + { + "factor_id": 403, + "level": 0 + }, + { + "factor_id": 2003502, + "level": 0 + }, + { + "factor_id": 302, + "level": 0 + }, + { + "factor_id": 2004603, + "level": 0 + }, + { + "factor_id": 302, + "level": 0 + }, + { + "factor_id": 3000202, + "level": 0 + } + ] + } + ], + "race_history_array": [ + { + "race_history": { + "turn": 12, + "program_id": 1067, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 7, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 400 + } + ], + "race_reward_bonus": [], + "gained_fans": 1398, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 23, + "program_id": 624, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 8, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 90, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 4, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "gained_fans": 13608, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 24, + "program_id": 625, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 4, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 92, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 30, + "item_id": 110, + "item_num": 40 + } + ], + "gained_fans": 13986, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 31, + "program_id": 163, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 10, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 73, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 21978, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 33, + "program_id": 164, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 8, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 75, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 4, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "gained_fans": 19656, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 34, + "program_id": 166, + "weather": 1, + "ground_condition": 2, + "running_style": 1, + "result_rank": 1, + "frame_order": 8, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 78, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 90, + "item_id": 43, + "item_num": 10 + } + ], + "gained_fans": 39960, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 36, + "program_id": 74, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 9, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 80, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "gained_fans": 29970, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 37, + "program_id": 1023, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 11, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 101, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 30, + "item_id": 110, + "item_num": 40 + } + ], + "gained_fans": 8991, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 42, + "program_id": 75, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 1, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 81, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 1, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 24804, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 44, + "program_id": 168, + "weather": 3, + "ground_condition": 3, + "running_style": 1, + "result_rank": 1, + "frame_order": 9, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 83, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 10, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 30, + "item_id": 110, + "item_num": 40 + } + ], + "gained_fans": 23976, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 45, + "program_id": 77, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 9, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 86, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 20979, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 46, + "program_id": 78, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 17, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 85, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 4, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 20196, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 47, + "program_id": 80, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 8, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 88, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 18720, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 48, + "program_id": 81, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 10, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 91, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 10, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 57240, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 51, + "program_id": 1106, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 4, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 175, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 90, + "item_id": 43, + "item_num": 10 + } + ], + "gained_fans": 11988, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 52, + "program_id": 1, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 16, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 69, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 30, + "item_id": 110, + "item_num": 40 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 30, + "item_id": 110, + "item_num": 40 + } + ], + "gained_fans": 19440, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 54, + "program_id": 12, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 10, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 10, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 13387, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 56, + "program_id": 4, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 17, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 74, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 10, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 29970, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 57, + "program_id": 5, + "weather": 3, + "ground_condition": 4, + "running_style": 1, + "result_rank": 1, + "frame_order": 13, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 76, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 4, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 19278, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 59, + "program_id": 73, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 11, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 79, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 4, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 24804, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 60, + "program_id": 74, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 7, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 80, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "gained_fans": 29970, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 67, + "program_id": 1109, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 2, + "frame_order": 1, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 2, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "race_reward_bonus": [], + "gained_fans": 4795, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 68, + "program_id": 76, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 2, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 84, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 29970, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 69, + "program_id": 1026, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 16, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 103, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "gained_fans": 15984, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 70, + "program_id": 79, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 13, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 87, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 56160, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 72, + "program_id": 81, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 10, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 91, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 10, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 59940, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 74, + "program_id": 2020, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 5, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + } + ], + "gained_fans": 13986, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 76, + "program_id": 2121, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 4, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + } + ], + "gained_fans": 19980, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 78, + "program_id": 2218, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 3, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + }, + { + "item_type": 30, + "item_id": 110, + "item_num": 80 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 59940, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + } + ], + "gain_skill_id_array": [], + "total_skill_point": 4260 + }, + "end_info": { + "chara_starting_info": { + "single_mode_chara_id": 1829, + "card_id": 102401, + "chara_grade": 10, + "speed": 1140, + "stamina": 691, + "power": 883, + "wiz": 988, + "guts": 657, + "vital": 0, + "max_speed": 1623, + "max_stamina": 1301, + "max_power": 1326, + "max_wiz": 1345, + "max_guts": 1520, + "default_max_speed": 1200, + "default_max_stamina": 1200, + "default_max_power": 1200, + "default_max_wiz": 1200, + "default_max_guts": 1200, + "max_vital": 100, + "motivation": 5, + "fans": 741405, + "rarity": 4, + "race_program_id": 0, + "reserve_race_program_id": 0, + "race_running_style": 1, + "is_short_race": 0, + "proper_ground_turf": 7, + "proper_ground_dirt": 8, + "proper_running_style_nige": 7, + "proper_running_style_senko": 7, + "proper_running_style_sashi": 6, + "proper_running_style_oikomi": 6, + "proper_distance_short": 4, + "proper_distance_mile": 5, + "proper_distance_middle": 7, + "proper_distance_long": 7, + "talent_level": 5, + "skill_array": [ + { + "skill_id": 100241, + "level": 5 + } + ], + "disable_skill_id_array": [], + "skill_tips_array": [ + { + "group_id": 90014, + "rarity": 1, + "level": 3 + }, + { + "group_id": 90020, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20054, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20035, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20203, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20126, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20046, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20160, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20091, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20166, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20166, + "rarity": 2, + "level": 3 + }, + { + "group_id": 20125, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20132, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20007, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20071, + "rarity": 2, + "level": 1 + }, + { + "group_id": 20071, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20059, + "rarity": 1, + "level": 1 + }, + { + "group_id": 21007, + "rarity": 1, + "level": 1 + }, + { + "group_id": 21007, + "rarity": 2, + "level": 3 + }, + { + "group_id": 20023, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20135, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20004, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20013, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20019, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20026, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20138, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20030, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20018, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20165, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20033, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20033, + "rarity": 2, + "level": 3 + }, + { + "group_id": 20043, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20246, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20110, + "rarity": 1, + "level": 3 + } + ], + "support_card_array": [ + { + "position": 1, + "support_card_id": 30010, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 2, + "support_card_id": 30108, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 3, + "support_card_id": 30062, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 4, + "support_card_id": 30107, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 5, + "support_card_id": 30028, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 6, + "support_card_id": 30052, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 872748063176 + } + ], + "succession_trained_chara_id_1": 4637, + "succession_trained_chara_id_2": 4694, + "turn": 78, + "skill_point": 4260, + "short_cut_state": 0, + "state": 3, + "playing_state": 1, + "scenario_id": 3, + "route_id": 14, + "start_time": "2026-07-28 18:11:42", + "evaluation_info_array": [ + { + "target_id": 1, + "training_partner_id": 1, + "evaluation": 15, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 2, + "training_partner_id": 2, + "evaluation": 20, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 3, + "training_partner_id": 3, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 4, + "training_partner_id": 4, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 5, + "training_partner_id": 5, + "evaluation": 35, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 6, + "training_partner_id": 6, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 101, + "training_partner_id": 101, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 102, + "training_partner_id": 102, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 103, + "training_partner_id": 103, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 104, + "training_partner_id": 104, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 106, + "training_partner_id": 106, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + } + ], + "training_level_info_array": [ + { + "command_id": 101, + "level": 1 + }, + { + "command_id": 102, + "level": 1 + }, + { + "command_id": 103, + "level": 1 + }, + { + "command_id": 105, + "level": 1 + }, + { + "command_id": 106, + "level": 1 + }, + { + "command_id": 601, + "level": 5 + }, + { + "command_id": 602, + "level": 5 + }, + { + "command_id": 603, + "level": 5 + }, + { + "command_id": 604, + "level": 5 + }, + { + "command_id": 605, + "level": 5 + } + ], + "nickname_id_array": [], + "chara_effect_id_array": [], + "route_race_id_array": [ + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156 + ], + "guest_outing_info_array": [], + "skill_upgrade_info_array": [] + }, + "reward_summary_info": { + "add_item_list": [ + { + "item_id": 59, + "number": 32800 + }, + { + "item_id": 90, + "number": 2 + }, + { + "item_id": 4, + "number": 10 + }, + { + "item_id": 92, + "number": 2 + }, + { + "item_id": 7, + "number": 22 + }, + { + "item_id": 110, + "number": 280 + }, + { + "item_id": 73, + "number": 2 + }, + { + "item_id": 75, + "number": 2 + }, + { + "item_id": 78, + "number": 2 + }, + { + "item_id": 43, + "number": 20 + }, + { + "item_id": 80, + "number": 4 + }, + { + "item_id": 101, + "number": 2 + }, + { + "item_id": 13, + "number": 10 + }, + { + "item_id": 81, + "number": 2 + }, + { + "item_id": 1, + "number": 2 + }, + { + "item_id": 83, + "number": 2 + }, + { + "item_id": 10, + "number": 10 + }, + { + "item_id": 86, + "number": 2 + }, + { + "item_id": 85, + "number": 2 + }, + { + "item_id": 88, + "number": 2 + }, + { + "item_id": 91, + "number": 4 + }, + { + "item_id": 175, + "number": 2 + }, + { + "item_id": 69, + "number": 2 + }, + { + "item_id": 74, + "number": 2 + }, + { + "item_id": 76, + "number": 2 + }, + { + "item_id": 79, + "number": 2 + }, + { + "item_id": 84, + "number": 2 + }, + { + "item_id": 103, + "number": 2 + }, + { + "item_id": 87, + "number": 2 + } + ] + } + } +} \ No newline at end of file diff --git a/testdata/v2.5.4.json b/testdata/v2.5.4.json new file mode 100644 index 0000000..95d5a81 --- /dev/null +++ b/testdata/v2.5.4.json @@ -0,0 +1,2893 @@ +{ + "progress_info": { + "chara_info": { + "single_mode_chara_id": 1831, + "card_id": 104601, + "chara_grade": 1, + "speed": 115, + "stamina": 130, + "power": 85, + "wiz": 107, + "guts": 112, + "vital": 100, + "max_speed": 1616, + "max_stamina": 1334, + "max_power": 1300, + "max_wiz": 1316, + "max_guts": 1509, + "default_max_speed": 1200, + "default_max_stamina": 1200, + "default_max_power": 1200, + "default_max_wiz": 1200, + "default_max_guts": 1200, + "max_vital": 100, + "motivation": 3, + "fans": 1, + "rarity": 3, + "race_program_id": 0, + "reserve_race_program_id": 0, + "race_running_style": 1, + "is_short_race": 0, + "proper_ground_turf": 6, + "proper_ground_dirt": 7, + "proper_running_style_nige": 7, + "proper_running_style_senko": 4, + "proper_running_style_sashi": 1, + "proper_running_style_oikomi": 1, + "proper_distance_short": 6, + "proper_distance_mile": 7, + "proper_distance_middle": 7, + "proper_distance_long": 3, + "talent_level": 5, + "skill_array": [ + { + "skill_id": 100461, + "level": 1 + } + ], + "disable_skill_id_array": [], + "skill_tips_array": [ + { + "group_id": 90024, + "rarity": 1, + "level": 2 + }, + { + "group_id": 90009, + "rarity": 1, + "level": 1 + } + ], + "support_card_array": [ + { + "position": 1, + "support_card_id": 30010, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 2, + "support_card_id": 30108, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 3, + "support_card_id": 30062, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 4, + "support_card_id": 30107, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 5, + "support_card_id": 30028, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 6, + "support_card_id": 30052, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 596515219419 + } + ], + "succession_trained_chara_id_1": 4699, + "succession_trained_chara_id_2": 4702, + "turn": 1, + "skill_point": 0, + "short_cut_state": 0, + "state": 0, + "playing_state": 1, + "scenario_id": 3, + "route_id": 31, + "start_time": "2026-07-29 03:42:04", + "evaluation_info_array": [ + { + "target_id": 1, + "training_partner_id": 1, + "evaluation": 15, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 2, + "training_partner_id": 2, + "evaluation": 20, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 3, + "training_partner_id": 3, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 4, + "training_partner_id": 4, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 5, + "training_partner_id": 5, + "evaluation": 35, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 6, + "training_partner_id": 6, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 101, + "training_partner_id": 101, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 102, + "training_partner_id": 102, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 103, + "training_partner_id": 103, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 104, + "training_partner_id": 104, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 106, + "training_partner_id": 106, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + } + ], + "training_level_info_array": [ + { + "command_id": 101, + "level": 1 + }, + { + "command_id": 102, + "level": 1 + }, + { + "command_id": 103, + "level": 1 + }, + { + "command_id": 105, + "level": 1 + }, + { + "command_id": 106, + "level": 1 + }, + { + "command_id": 601, + "level": 5 + }, + { + "command_id": 602, + "level": 5 + }, + { + "command_id": 603, + "level": 5 + }, + { + "command_id": 604, + "level": 5 + }, + { + "command_id": 605, + "level": 5 + } + ], + "nickname_id_array": [], + "chara_effect_id_array": [], + "route_race_id_array": [ + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370 + ], + "guest_outing_info_array": [], + "skill_upgrade_info_array": [] + }, + "start_time": "2026-07-29 03:42:04", + "end_time": "2026-07-29 04:32:04", + "dress_id": 0 + }, + "progress_log_info": { + "chara_effect_log_array": [ + { + "chara_effect_id": 16, + "is_active": false + } + ], + "support_card_gain_info_array": [ + { + "support_card_id": 30010, + "gain_info": { + "speed": { + "sign": 0, + "value": 40 + }, + "stamina": { + "sign": 0, + "value": 24 + }, + "power": { + "sign": 0, + "value": 24 + }, + "wiz": { + "sign": 0, + "value": 136 + }, + "guts": { + "sign": 0, + "value": 24 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 224, + "skill_tips_array": [ + { + "group_id": 20001, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20049, + "rarity": 1, + "level": 1 + } + ] + } + }, + { + "support_card_id": 30108, + "gain_info": { + "speed": { + "sign": 0, + "value": 38 + }, + "stamina": { + "sign": 0, + "value": 25 + }, + "power": { + "sign": 0, + "value": 25 + }, + "wiz": { + "sign": 0, + "value": 95 + }, + "guts": { + "sign": 0, + "value": 25 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 286, + "skill_tips_array": [ + { + "group_id": 20018, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20170, + "rarity": 1, + "level": 4 + } + ] + } + }, + { + "support_card_id": 30062, + "gain_info": { + "speed": { + "sign": 0, + "value": 22 + }, + "stamina": { + "sign": 0, + "value": 130 + }, + "power": { + "sign": 0, + "value": 22 + }, + "wiz": { + "sign": 0, + "value": 22 + }, + "guts": { + "sign": 0, + "value": 46 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 164, + "skill_tips_array": [ + { + "group_id": 20054, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20055, + "rarity": 1, + "level": 1 + } + ] + } + }, + { + "support_card_id": 30107, + "gain_info": { + "speed": { + "sign": 0, + "value": 96 + }, + "stamina": { + "sign": 0, + "value": 25 + }, + "power": { + "sign": 0, + "value": 62 + }, + "wiz": { + "sign": 0, + "value": 25 + }, + "guts": { + "sign": 0, + "value": 25 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 201, + "skill_tips_array": [ + { + "group_id": 20018, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20160, + "rarity": 1, + "level": 3 + } + ] + } + }, + { + "support_card_id": 30028, + "gain_info": { + "speed": { + "sign": 0, + "value": 82 + }, + "stamina": { + "sign": 0, + "value": 24 + }, + "power": { + "sign": 0, + "value": 60 + }, + "wiz": { + "sign": 0, + "value": 24 + }, + "guts": { + "sign": 0, + "value": 24 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 199, + "skill_tips_array": [ + { + "group_id": 20038, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20035, + "rarity": 1, + "level": 5 + } + ] + } + }, + { + "support_card_id": 30052, + "gain_info": { + "speed": { + "sign": 0, + "value": 48 + }, + "stamina": { + "sign": 0, + "value": 20 + }, + "power": { + "sign": 0, + "value": 20 + }, + "wiz": { + "sign": 0, + "value": 20 + }, + "guts": { + "sign": 0, + "value": 48 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 387, + "skill_tips_array": [] + } + } + ], + "event_gain_info": { + "speed": { + "sign": 0, + "value": 598 + }, + "stamina": { + "sign": 0, + "value": 281 + }, + "power": { + "sign": 0, + "value": 438 + }, + "wiz": { + "sign": 0, + "value": 419 + }, + "guts": { + "sign": 0, + "value": 342 + }, + "max_speed": 0, + "max_stamina": 0, + "max_power": 0, + "max_wiz": 0, + "max_guts": 0, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 0, + "proper_ground_dirt": 0, + "skill_point": 2405, + "skill_tips_array": [ + { + "group_id": 20071, + "rarity": 2, + "level": 1 + }, + { + "group_id": 20004, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20167, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20235, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20054, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20025, + "rarity": 1, + "level": 1 + }, + { + "group_id": 21007, + "rarity": 1, + "level": 1 + }, + { + "group_id": 21007, + "rarity": 2, + "level": 3 + }, + { + "group_id": 20166, + "rarity": 2, + "level": 3 + }, + { + "group_id": 20220, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20226, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20017, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20053, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20135, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20233, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20073, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20128, + "rarity": 1, + "level": 1 + } + ] + }, + "succession_gain_info": { + "speed": { + "sign": 0, + "value": 71 + }, + "stamina": { + "sign": 0, + "value": 129 + }, + "power": { + "sign": 0, + "value": 3 + }, + "wiz": { + "sign": 0, + "value": 59 + }, + "guts": { + "sign": 0, + "value": 39 + }, + "max_speed": 24, + "max_stamina": 48, + "max_power": 0, + "max_wiz": 21, + "max_guts": 17, + "proper_distance_short": 0, + "proper_distance_mile": 0, + "proper_distance_middle": 0, + "proper_distance_long": 0, + "proper_running_style_nige": 0, + "proper_running_style_senko": 0, + "proper_running_style_sashi": 0, + "proper_running_style_oikomi": 0, + "proper_ground_turf": 4, + "proper_ground_dirt": 1, + "skill_point": 0, + "skill_tips_array": [ + { + "group_id": 90009, + "rarity": 1, + "level": 4 + }, + { + "group_id": 90024, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20038, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20071, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20126, + "rarity": 1, + "level": 5 + }, + { + "group_id": 21003, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20004, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20003, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20203, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20159, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20021, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20222, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20014, + "rarity": 1, + "level": 1 + }, + { + "group_id": 21001, + "rarity": 1, + "level": 1 + } + ] + }, + "succession_factor_gain_array": [ + { + "year": 1, + "gain_factor_info_array": [ + { + "factor_id": 402, + "level": 0 + }, + { + "factor_id": 10240102, + "level": 0 + }, + { + "factor_id": 202, + "level": 0 + }, + { + "factor_id": 10090101, + "level": 0 + }, + { + "factor_id": 103, + "level": 0 + }, + { + "factor_id": 1102, + "level": 0 + }, + { + "factor_id": 503, + "level": 0 + }, + { + "factor_id": 202, + "level": 0 + }, + { + "factor_id": 1103, + "level": 0 + }, + { + "factor_id": 203, + "level": 0 + }, + { + "factor_id": 1103, + "level": 0 + } + ] + }, + { + "year": 2, + "gain_factor_info_array": [ + { + "factor_id": 402, + "level": 0 + }, + { + "factor_id": 1203, + "level": 0 + }, + { + "factor_id": 1001903, + "level": 0 + }, + { + "factor_id": 2003802, + "level": 0 + }, + { + "factor_id": 2007103, + "level": 0 + }, + { + "factor_id": 2012602, + "level": 0 + }, + { + "factor_id": 202, + "level": 0 + }, + { + "factor_id": 10090101, + "level": 0 + }, + { + "factor_id": 103, + "level": 0 + }, + { + "factor_id": 1102, + "level": 0 + }, + { + "factor_id": 3000402, + "level": 0 + }, + { + "factor_id": 503, + "level": 0 + }, + { + "factor_id": 1000502, + "level": 0 + }, + { + "factor_id": 2100303, + "level": 0 + }, + { + "factor_id": 202, + "level": 0 + }, + { + "factor_id": 203, + "level": 0 + } + ] + }, + { + "year": 3, + "gain_factor_info_array": [ + { + "factor_id": 402, + "level": 0 + }, + { + "factor_id": 2007103, + "level": 0 + }, + { + "factor_id": 2020302, + "level": 0 + }, + { + "factor_id": 10240102, + "level": 0 + }, + { + "factor_id": 202, + "level": 0 + }, + { + "factor_id": 103, + "level": 0 + }, + { + "factor_id": 1001702, + "level": 0 + }, + { + "factor_id": 1003101, + "level": 0 + }, + { + "factor_id": 503, + "level": 0 + }, + { + "factor_id": 2015902, + "level": 0 + }, + { + "factor_id": 2102103, + "level": 0 + }, + { + "factor_id": 202, + "level": 0 + }, + { + "factor_id": 203, + "level": 0 + }, + { + "factor_id": 2002102, + "level": 0 + } + ] + } + ], + "race_history_array": [ + { + "race_history": { + "turn": 12, + "program_id": 846, + "weather": 1, + "ground_condition": 2, + "running_style": 1, + "result_rank": 1, + "frame_order": 8, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 400 + } + ], + "race_reward_bonus": [], + "gained_fans": 1398, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 23, + "program_id": 624, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 3, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 90, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 4, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "gained_fans": 13986, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 24, + "program_id": 625, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 16, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 92, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 13608, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 31, + "program_id": 163, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 10, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 73, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 21978, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 33, + "program_id": 164, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 13, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 75, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 4, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 20979, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 34, + "program_id": 166, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 11, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 78, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 39960, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 36, + "program_id": 74, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 18, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 80, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 30, + "item_id": 110, + "item_num": 40 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 29970, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 37, + "program_id": 1023, + "weather": 2, + "ground_condition": 2, + "running_style": 1, + "result_rank": 1, + "frame_order": 8, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 101, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 30, + "item_id": 110, + "item_num": 40 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 8991, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 42, + "program_id": 75, + "weather": 1, + "ground_condition": 2, + "running_style": 1, + "result_rank": 1, + "frame_order": 16, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 81, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 1, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 25974, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 44, + "program_id": 168, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 11, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 83, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 10, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 90, + "item_id": 43, + "item_num": 10 + } + ], + "gained_fans": 23976, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 45, + "program_id": 1132, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 5, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 103, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 15984, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 46, + "program_id": 78, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 13, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 85, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 4, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 21978, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 47, + "program_id": 80, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 7, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 88, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 19080, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 48, + "program_id": 1027, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 12, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 106, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "gained_fans": 14688, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 51, + "program_id": 1106, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 14, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 175, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 30, + "item_id": 110, + "item_num": 40 + } + ], + "gained_fans": 11988, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 52, + "program_id": 1, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 13, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 69, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 30, + "item_id": 110, + "item_num": 40 + } + ], + "gained_fans": 19980, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 54, + "program_id": 3, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 15, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 71, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "gained_fans": 26973, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 56, + "program_id": 4, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 3, + "frame_order": 10, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 3, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "race_reward_bonus": [], + "gained_fans": 7491, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 3 + }, + { + "race_history": { + "turn": 57, + "program_id": 5, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 3, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 76, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 4, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 20979, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 59, + "program_id": 73, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 13, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 79, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 4, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 30, + "item_id": 110, + "item_num": 40 + } + ], + "gained_fans": 25974, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 60, + "program_id": 1022, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 10, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 105, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 11988, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 67, + "program_id": 1109, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 4, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 179, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 11988, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 68, + "program_id": 76, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 14, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 84, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 29970, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 69, + "program_id": 1132, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 11, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 103, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 15984, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 70, + "program_id": 79, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 7, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 87, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 56160, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 71, + "program_id": 80, + "weather": 3, + "ground_condition": 4, + "running_style": 1, + "result_rank": 1, + "frame_order": 16, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 88, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [], + "gained_fans": 18720, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 72, + "program_id": 1027, + "weather": 1, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 11, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 11, + "item_id": 106, + "item_num": 2 + }, + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + }, + { + "item_type": 11, + "item_id": 13, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 800 + } + ], + "gained_fans": 15264, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 74, + "program_id": 2022, + "weather": 2, + "ground_condition": 1, + "running_style": 1, + "result_rank": 1, + "frame_order": 10, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + } + ], + "gained_fans": 13986, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 76, + "program_id": 2120, + "weather": 1, + "ground_condition": 2, + "running_style": 1, + "result_rank": 1, + "frame_order": 3, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + }, + { + "item_type": 30, + "item_id": 110, + "item_num": 80 + } + ], + "gained_fans": 19980, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + }, + { + "race_history": { + "turn": 78, + "program_id": 2216, + "weather": 3, + "ground_condition": 4, + "running_style": 1, + "result_rank": 1, + "frame_order": 11, + "npc_count": 0 + }, + "race_reward_info": { + "result_rank": 1, + "result_time": 0, + "race_reward": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + }, + { + "item_type": 11, + "item_id": 7, + "item_num": 2 + } + ], + "race_reward_bonus": [ + { + "item_type": 91, + "item_id": 59, + "item_num": 1200 + }, + { + "item_type": 30, + "item_id": 110, + "item_num": 80 + } + ], + "gained_fans": 59940, + "campaign_id_array": [ + 223 + ], + "race_reward_plus_bonus": [], + "race_reward_bonus_win": [] + }, + "lose_tips_id": 0 + } + ], + "gain_skill_id_array": [], + "total_skill_point": 3866 + }, + "end_info": { + "chara_info": { + "single_mode_chara_id": 1831, + "card_id": 104601, + "chara_grade": 10, + "speed": 1089, + "stamina": 743, + "power": 739, + "wiz": 886, + "guts": 673, + "vital": 10, + "max_speed": 1624, + "max_stamina": 1348, + "max_power": 1300, + "max_wiz": 1321, + "max_guts": 1517, + "default_max_speed": 1200, + "default_max_stamina": 1200, + "default_max_power": 1200, + "default_max_wiz": 1200, + "default_max_guts": 1200, + "max_vital": 100, + "motivation": 5, + "fans": 657766, + "rarity": 3, + "race_program_id": 0, + "reserve_race_program_id": 0, + "race_running_style": 1, + "is_short_race": 0, + "proper_ground_turf": 7, + "proper_ground_dirt": 8, + "proper_running_style_nige": 7, + "proper_running_style_senko": 4, + "proper_running_style_sashi": 1, + "proper_running_style_oikomi": 1, + "proper_distance_short": 6, + "proper_distance_mile": 7, + "proper_distance_middle": 7, + "proper_distance_long": 3, + "talent_level": 5, + "skill_array": [ + { + "skill_id": 100461, + "level": 4 + } + ], + "disable_skill_id_array": [], + "skill_tips_array": [ + { + "group_id": 90009, + "rarity": 1, + "level": 4 + }, + { + "group_id": 90024, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20038, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20071, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20071, + "rarity": 2, + "level": 1 + }, + { + "group_id": 20126, + "rarity": 1, + "level": 5 + }, + { + "group_id": 21003, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20004, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20003, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20203, + "rarity": 1, + "level": 2 + }, + { + "group_id": 20159, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20021, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20222, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20014, + "rarity": 1, + "level": 1 + }, + { + "group_id": 21001, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20167, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20235, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20054, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20025, + "rarity": 1, + "level": 1 + }, + { + "group_id": 21007, + "rarity": 1, + "level": 1 + }, + { + "group_id": 21007, + "rarity": 2, + "level": 3 + }, + { + "group_id": 20166, + "rarity": 2, + "level": 3 + }, + { + "group_id": 20220, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20226, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20017, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20053, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20135, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20001, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20049, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20018, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20170, + "rarity": 1, + "level": 4 + }, + { + "group_id": 20055, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20160, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20035, + "rarity": 1, + "level": 5 + }, + { + "group_id": 20233, + "rarity": 1, + "level": 3 + }, + { + "group_id": 20073, + "rarity": 1, + "level": 1 + }, + { + "group_id": 20128, + "rarity": 1, + "level": 1 + } + ], + "support_card_array": [ + { + "position": 1, + "support_card_id": 30010, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 2, + "support_card_id": 30108, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 3, + "support_card_id": 30062, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 4, + "support_card_id": 30107, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 5, + "support_card_id": 30028, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 0 + }, + { + "position": 6, + "support_card_id": 30052, + "limit_break_count": 4, + "exp": 118185, + "owner_viewer_id": 596515219419 + } + ], + "succession_trained_chara_id_1": 4699, + "succession_trained_chara_id_2": 4702, + "turn": 78, + "skill_point": 3866, + "short_cut_state": 0, + "state": 3, + "playing_state": 1, + "scenario_id": 3, + "route_id": 31, + "start_time": "2026-07-29 03:42:04", + "evaluation_info_array": [ + { + "target_id": 1, + "training_partner_id": 1, + "evaluation": 15, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 2, + "training_partner_id": 2, + "evaluation": 20, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 3, + "training_partner_id": 3, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 4, + "training_partner_id": 4, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 5, + "training_partner_id": 5, + "evaluation": 35, + "is_outing": 0, + "story_step": 0, + "is_appear": 1, + "group_outing_info_array": [] + }, + { + "target_id": 6, + "training_partner_id": 6, + "evaluation": 30, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 101, + "training_partner_id": 101, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 102, + "training_partner_id": 102, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 103, + "training_partner_id": 103, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 104, + "training_partner_id": 104, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + }, + { + "target_id": 106, + "training_partner_id": 106, + "evaluation": 0, + "is_outing": 0, + "story_step": 0, + "is_appear": 0, + "group_outing_info_array": [] + } + ], + "training_level_info_array": [ + { + "command_id": 101, + "level": 1 + }, + { + "command_id": 102, + "level": 1 + }, + { + "command_id": 103, + "level": 1 + }, + { + "command_id": 105, + "level": 1 + }, + { + "command_id": 106, + "level": 1 + }, + { + "command_id": 601, + "level": 5 + }, + { + "command_id": 602, + "level": 5 + }, + { + "command_id": 603, + "level": 5 + }, + { + "command_id": 604, + "level": 5 + }, + { + "command_id": 605, + "level": 5 + } + ], + "nickname_id_array": [], + "chara_effect_id_array": [], + "route_race_id_array": [ + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370 + ], + "guest_outing_info_array": [], + "skill_upgrade_info_array": [] + }, + "reward_summary_info": { + "add_item_list": [ + { + "item_id": 59, + "number": 34000 + }, + { + "item_id": 90, + "number": 2 + }, + { + "item_id": 4, + "number": 10 + }, + { + "item_id": 92, + "number": 2 + }, + { + "item_id": 7, + "number": 20 + }, + { + "item_id": 73, + "number": 2 + }, + { + "item_id": 75, + "number": 2 + }, + { + "item_id": 78, + "number": 2 + }, + { + "item_id": 80, + "number": 2 + }, + { + "item_id": 110, + "number": 360 + }, + { + "item_id": 101, + "number": 2 + }, + { + "item_id": 13, + "number": 22 + }, + { + "item_id": 81, + "number": 2 + }, + { + "item_id": 1, + "number": 2 + }, + { + "item_id": 83, + "number": 2 + }, + { + "item_id": 10, + "number": 2 + }, + { + "item_id": 43, + "number": 10 + }, + { + "item_id": 103, + "number": 4 + }, + { + "item_id": 85, + "number": 2 + }, + { + "item_id": 88, + "number": 4 + }, + { + "item_id": 106, + "number": 4 + }, + { + "item_id": 175, + "number": 2 + }, + { + "item_id": 69, + "number": 2 + }, + { + "item_id": 71, + "number": 2 + }, + { + "item_id": 76, + "number": 2 + }, + { + "item_id": 79, + "number": 2 + }, + { + "item_id": 105, + "number": 2 + }, + { + "item_id": 179, + "number": 2 + }, + { + "item_id": 84, + "number": 2 + }, + { + "item_id": 87, + "number": 2 + } + ] + } + } +} \ No newline at end of file