Files
ismdata/ism_test.go
T

4796 lines
129 KiB
Go

package main
import (
_ "embed"
"strings"
"testing"
"git.sunturtle.xyz/zephyr/horse"
"github.com/google/go-cmp/cmp"
)
//go:embed testdata/v2.5.1.json
var v2_5_1 string
//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: 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{},
},
},
},
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},
},
},
{
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,
},
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},
},
},
},
},
},
{
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,
},
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,
},
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},
},
},
},
},
},
}
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)
}
})
}
}