Files
horse/umadump/ism/ism.go
T
zephyr 381df5bd35
ci/woodpecker/push/horsebot Pipeline was successful
ci/woodpecker/push/zenno Pipeline was successful
umadump/ism: new end info fields
2026-10-07 16:35:31 -04:00

346 lines
16 KiB
Go

package ism
import (
"git.sunturtle.xyz/zephyr/horse"
"git.sunturtle.xyz/zephyr/horse/umadump"
)
type Skill struct {
ID horse.SkillID `json:"skill_id"`
Level int32 `json:"level"`
}
type SkillTip struct {
GroupID horse.SkillGroupID `json:"group_id"`
Rarity int32 `json:"rarity"`
Level int32 `json:"level"`
}
type SingleModeSupportCard struct {
Position int32 `json:"position"`
ID horse.SupportCardID `json:"support_card_id"`
LimitBreak int32 `json:"limit_break_count"`
Exp int32 `json:"exp"`
OwnerID int32 `json:"owner_viewer_id"`
}
type GroupOuting struct {
CharaID horse.CharacterID `json:"chara_id"`
IsOuting int32 `json:"is_outing"`
StoryStep int32 `json:"story_step"`
}
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"`
IsAppear int32 `json:"is_appear"`
GroupOutings []GroupOuting `json:"group_outing_info_array"`
}
type TrainingLevel struct {
CommandID int32 `json:"command_id"`
Level int32 `json:"level"`
}
type GuestOuting struct {
SupportCardID horse.SupportCardID `json:"support_card_id"`
StoryStep int32 `json:"story_step"`
GroupOutings []GroupOuting `json:"group_outing_info_array"`
}
type SingleModeSkillUpgrade struct {
ConditionID int32 `json:"condition_id"`
Total int32 `json:"total_count"`
Current int32 `json:"current_count"`
}
type SingleModeChara struct {
SingleModeCharaID int32 `json:"single_mode_chara_id"`
CardID horse.UmaID `json:"card_id"`
CharaGrade int32 `json:"chara_grade"`
Speed int32 `json:"speed"`
Stamina int32 `json:"stamina"`
Power int32 `json:"power"`
Wiz int32 `json:"wiz"`
Guts int32 `json:"guts"`
Vital int32 `json:"vital"`
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"`
DefaultMaxSpeed int32 `json:"default_max_speed"`
DefaultMaxStamina int32 `json:"default_max_stamina"`
DefaultMaxPower int32 `json:"default_max_power"`
DefaultMaxWiz int32 `json:"default_max_wiz"`
DefaultMaxGuts int32 `json:"default_max_guts"`
MaxVital int32 `json:"max_vital"`
Motivation int32 `json:"motivation"`
Fans int32 `json:"fans"`
Rarity int32 `json:"rarity"`
RaceProgramID int32 `json:"race_program_id"`
ReserveRaceProgramID int32 `json:"reserve_race_program_id"`
RaceRunningStyle int32 `json:"race_running_style"`
IsShortRace int32 `json:"is_short_race"`
TalentLevel int32 `json:"talent_level"`
Skills []Skill `json:"skill_array"`
DisableSkillIDs []horse.SkillID `json:"disable_skill_id_array"`
SkillTips []SkillTip `json:"skill_tips_array"`
SupportCards []SingleModeSupportCard `json:"support_card_array"`
SuccessionTrainedCharaID1 int32 `json:"succession_trained_chara_id_1"`
SuccessionTrainedCharaID2 int32 `json:"succession_trained_chara_id_2"`
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"`
Turn int32 `json:"turn"`
SkillPoint int32 `json:"skill_point"`
ShortCutState int32 `json:"short_cut_state"`
State int32 `json:"state"`
PlayingState int32 `json:"playing_state"`
ScenarioID horse.ScenarioID `json:"scenario_id"`
RouteID int32 `json:"route_id"`
StartTime string `json:"start_time"`
Evaluations []Evaluation `json:"evaluation_info_array"`
TrainingLevels []TrainingLevel `json:"training_level_info_array"`
NicknameIDs []int32 `json:"nickname_id_array"`
CharaEffectIDs []int32 `json:"chara_effect_id_array"`
RouteRaceIDs []int32 `json:"route_race_id_array"`
GuestOutings []GuestOuting `json:"guest_outing_info_array"`
SkillUpgrades []SingleModeSkillUpgrade `json:"skill_upgrade_info_array"`
}
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 {
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 IdleSingleModeSupportCardGain struct {
SupportCardID horse.SupportCardID `json:"support_card_id"`
GainInfo IdleSingleModeGainInfo `json:"gain_info"`
}
type Factor struct {
FactorID horse.SparkID `json:"factor_id"`
Level int32 `json:"level"`
}
type IdleSingleModeSuccessionFactorGain struct {
Year int32 `json:"year"`
GainFactorInfo []Factor `json:"gain_factor_info_array"`
}
type SingleRaceHistory struct {
Turn int32 `json:"turn"`
ProgramID int32 `json:"program_id"`
Weather int32 `json:"weather"`
GroundCondition int32 `json:"ground_condition"`
RunningStyle int32 `json:"running_style"`
ResultRank int32 `json:"result_rank"`
FrameOrder int32 `json:"frame_order"`
NPCCount int32 `json:"npc_count"`
}
type RaceReward struct {
ItemType int32 `json:"item_type"`
ItemID int32 `json:"item_id"`
ItemNum int32 `json:"item_num"`
}
type RaceRewardLimit struct {
RewardID int32 `json:"reward_id"`
ItemType int32 `json:"item_type"`
ItemID int32 `json:"item_id"`
ItemNum int32 `json:"item_num"`
RestCount int32 `json:"rest_count"`
}
type CharaRaceReward struct {
ResultRank int32 `json:"result_rank"`
ResultTime int32 `json:"result_time"`
RaceReward []RaceReward `json:"race_reward"`
RaceRewardBonus []RaceReward `json:"race_reward_bonus"`
RaceRewardPlusBonus []RaceReward `json:"race_reward_plus_bonus"`
RaceRewardBonusWin []RaceReward `json:"race_reward_bonus_win"`
RaceRewardLimit []RaceRewardLimit `json:"race_reward_limit"`
GainedFans int32 `json:"gained_fans"`
CampaignIDs []int32 `json:"campaign_id_array"`
}
type IdleSingleModeRaceHistory struct {
RaceHistory SingleRaceHistory `json:"race_history"`
RaceRewardInfo CharaRaceReward `json:"race_reward_info"`
LoseTipsID int32 `json:"lose_tips_id"`
}
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 PieceData struct {
PieceID int32 `json:"piece_id"`
PieceNum int32 `json:"piece_num"`
}
type UserCard struct {
CardID horse.UmaID `json:"card_id"`
Rarity int8 `json:"rarity"`
TalentLevel int8 `json:"talent_level"`
Skills []Skill `json:"skill_data_array"`
CreateTime string `json:"create_time"`
}
type UserSupportCard struct {
ViewerID int64 `json:"viewer_id"`
SupportCardID horse.SupportCardID `json:"support_card_id"`
Exp int32 `json:"exp"`
LimitBreak int32 `json:"limit_break_count"`
FavoriteFlag int32 `json:"favorite_flag"`
Stock int32 `json:"stock"`
PossessTime string `json:"possess_time"`
}
type RewardAddSupportCardNum struct {
SupportCardID horse.SupportCardID `json:"support_card_id"`
Number int32 `json:"number"`
ItemType int32 `json:"item_type"`
}
type HonorData struct {
HonorID int32 `json:"honor_id"`
Step int32 `json:"step"`
CreateTime string `json:"create_time"`
}
type UserChara struct {
CharaID horse.CharacterID `json:"chara_id"`
TrainingNum int32 `json:"training_num"`
LovePoint int32 `json:"love_point"`
LovePointPool int32 `json:"love_point_pool"`
Fan uint64 `json:"fan"`
}
type UserCloth struct {
ClothID int32 `json:"cloth_id"`
}
type UserMusic struct {
MusicID int32 `json:"music_id"`
AcquisitionTime string `json:"acquisition_time"`
}
type CharaProfileData struct {
CharaID horse.CharacterID `json:"chara_id"`
DataID int32 `json:"data_id"`
NewFlag int32 `json:"new_flag"`
}
type RewardSummary struct {
AddItem []AddItem `json:"add_item_list"`
AddPiece []PieceData `json:"add_piece_list"`
AddCard []UserCard `json:"add_card_list"`
AddCardBonus *RewardSummary `json:"add_card_bonus_info"`
AddSupportCard []UserSupportCard `json:"add_support_card_list"`
AddSupportCardNum []RewardAddSupportCardNum `json:"add_support_card_num_array"`
AddHonor []HonorData `json:"add_honor_list"`
AddChara []UserChara `json:"add_chara_list"`
AddCloth []UserCloth `json:"add_cloth_list"`
AddMusic []UserMusic `json:"add_music_list"`
AddStoryIDs []umadump.Never `json:"add_story_id_array"` // not in my disassembly
AddFCoin int32 `json:"add_fcoin"` // carats
AddPresents int32 `json:"add_present_num"`
AddTotalFan int32 `json:"add_total_fan"`
NewCharaProfiles []CharaProfileData `json:"new_chara_profile_array"`
ForceUpdateHonorID int32 `json:"force_update_honor_id"`
}
type End struct {
Chara SingleModeChara `json:"chara_info"`
RaceConditions []umadump.Never `json:"race_condition_array"`
UncheckedEvents []umadump.Never `json:"unchecked_event_array"`
HomeInfo *umadump.Never `json:"home_info"`
WinSaddleIDs []umadump.Never `json:"win_saddle_id_array"`
EffectedFactors []umadump.Never `json:"effected_factor_array"`
RaceStartInfo *umadump.Never `json:"race_start_info"`
RaceScenario *umadump.Never `json:"race_scenario"`
AddTrophyInfo *umadump.Never `json:"add_trophy_info"`
TrophyRewardInfo *umadump.Never `json:"trophy_reward_info"`
PrevCharaGrade *umadump.Never `json:"prev_chara_grade"`
RaceAddRewardInfo []umadump.Never `json:"race_add_reward_info"`
Missions []umadump.Never `json:"mission_list"`
StoryEventMissions []umadump.Never `json:"story_event_mission_list"`
StoryEventCharaBonuses []umadump.Never `json:"story_event_chara_bonus_list"`
StartDressInfo []umadump.Never `json:"start_dress_info"`
ResumeFactorSelect *umadump.Never `json:"resume_factor_select"`
RaceRandomPrograms []umadump.Never `json:"race_random_program_array"`
RaceRewardLimitMore []umadump.Never `json:"race_reward_limit_more_list"`
SkillFilterSettings []umadump.Never `json:"skill_filter_setting_array"`
RewardSummary RewardSummary `json:"reward_summary_info"`
IsUmaplan bool `json:"is_umaplan"`
}
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 {
ProgressInfo ProgressInfo `json:"progress_info"`
ProgressLog IdleSingleModeProgressLog `json:"progress_log_info"`
End End `json:"end_info"`
OldChara *SingleModeChara `json:"chara_info"`
}