horsegen: include uniques and inherits in each others' skill groups

This commit is contained in:
2026-03-09 13:00:29 -04:00
parent 2dd75edc03
commit 2ec8d9cfdb
3 changed files with 211 additions and 70 deletions

View File

@@ -3,8 +3,8 @@ WITH skill_groups AS (
)
SELECT
g.group_id,
IFNULL(s1.id, 0) AS skill1,
IFNULL(s2.id, 0) AS skill2,
COALESCE(inh_from.id, s1.id, 0) AS skill1,
COALESCE(inh_to.id, s2.id, 0) AS skill2,
IFNULL(s3.id, 0) AS skill3,
IFNULL(m1.id, 0) AS skill_bad
FROM skill_groups g
@@ -12,4 +12,6 @@ FROM skill_groups g
LEFT JOIN skill_data s2 ON g.group_id = s2.group_id AND s2.group_rate = 2
LEFT JOIN skill_data s3 ON g.group_id = s3.group_id AND s3.group_rate = 3
LEFT JOIN skill_data m1 ON g.group_id = m1.group_id AND m1.group_rate = -1
LEFT JOIN skill_data inh_to ON s1.id = inh_to.unique_skill_id_1
LEFT JOIN skill_data inh_from ON s2.unique_skill_id_1 = inh_from.id
ORDER BY g.group_id

View File

@@ -65,275 +65,343 @@
},
{
"skill_group": 10001,
"skill1": 100011
"skill1": 100011,
"skill2": 900011
},
{
"skill_group": 10002,
"skill1": 100021
"skill1": 100021,
"skill2": 900021
},
{
"skill_group": 10003,
"skill1": 100031
"skill1": 100031,
"skill2": 900031
},
{
"skill_group": 10004,
"skill1": 100041
"skill1": 100041,
"skill2": 900041
},
{
"skill_group": 10005,
"skill1": 100051
"skill1": 100051,
"skill2": 900051
},
{
"skill_group": 10006,
"skill1": 100061
"skill1": 100061,
"skill2": 900061
},
{
"skill_group": 10007,
"skill1": 100071
"skill1": 100071,
"skill2": 900071
},
{
"skill_group": 10008,
"skill1": 100081
"skill1": 100081,
"skill2": 900081
},
{
"skill_group": 10009,
"skill1": 100091
"skill1": 100091,
"skill2": 900091
},
{
"skill_group": 10010,
"skill1": 100101
"skill1": 100101,
"skill2": 900101
},
{
"skill_group": 10011,
"skill1": 100111
"skill1": 100111,
"skill2": 900111
},
{
"skill_group": 10012,
"skill1": 100121
"skill1": 100121,
"skill2": 900121
},
{
"skill_group": 10013,
"skill1": 100131
"skill1": 100131,
"skill2": 900131
},
{
"skill_group": 10014,
"skill1": 100141
"skill1": 100141,
"skill2": 900141
},
{
"skill_group": 10015,
"skill1": 100151
"skill1": 100151,
"skill2": 900151
},
{
"skill_group": 10016,
"skill1": 100161
"skill1": 100161,
"skill2": 900161
},
{
"skill_group": 10017,
"skill1": 100171
"skill1": 100171,
"skill2": 900171
},
{
"skill_group": 10018,
"skill1": 100181
"skill1": 100181,
"skill2": 900181
},
{
"skill_group": 10019,
"skill1": 100191
"skill1": 100191,
"skill2": 900191
},
{
"skill_group": 10020,
"skill1": 100201
"skill1": 100201,
"skill2": 900201
},
{
"skill_group": 10021,
"skill1": 100211
"skill1": 100211,
"skill2": 900211
},
{
"skill_group": 10022,
"skill1": 100221
"skill1": 100221,
"skill2": 900221
},
{
"skill_group": 10023,
"skill1": 100231
"skill1": 100231,
"skill2": 900231
},
{
"skill_group": 10024,
"skill1": 100241
"skill1": 100241,
"skill2": 900241
},
{
"skill_group": 10025,
"skill1": 100251
"skill1": 100251,
"skill2": 900251
},
{
"skill_group": 10026,
"skill1": 100261
"skill1": 100261,
"skill2": 900261
},
{
"skill_group": 10027,
"skill1": 100271
"skill1": 100271,
"skill2": 900271
},
{
"skill_group": 10028,
"skill1": 100281
"skill1": 100281,
"skill2": 900281
},
{
"skill_group": 10030,
"skill1": 100301
"skill1": 100301,
"skill2": 900301
},
{
"skill_group": 10032,
"skill1": 100321
"skill1": 100321,
"skill2": 900321
},
{
"skill_group": 10033,
"skill1": 100331
"skill1": 100331,
"skill2": 900331
},
{
"skill_group": 10035,
"skill1": 100351
"skill1": 100351,
"skill2": 900351
},
{
"skill_group": 10037,
"skill1": 100371
"skill1": 100371,
"skill2": 900371
},
{
"skill_group": 10038,
"skill1": 100381
"skill1": 100381,
"skill2": 900381
},
{
"skill_group": 10039,
"skill1": 100391
"skill1": 100391,
"skill2": 900391
},
{
"skill_group": 10040,
"skill1": 100401
"skill1": 100401,
"skill2": 900401
},
{
"skill_group": 10041,
"skill1": 100411
"skill1": 100411,
"skill2": 900411
},
{
"skill_group": 10045,
"skill1": 100451
"skill1": 100451,
"skill2": 900451
},
{
"skill_group": 10046,
"skill1": 100461
"skill1": 100461,
"skill2": 900461
},
{
"skill_group": 10048,
"skill1": 100481
"skill1": 100481,
"skill2": 900481
},
{
"skill_group": 10050,
"skill1": 100501
"skill1": 100501,
"skill2": 900501
},
{
"skill_group": 10052,
"skill1": 100521
"skill1": 100521,
"skill2": 900521
},
{
"skill_group": 10056,
"skill1": 100561
"skill1": 100561,
"skill2": 900561
},
{
"skill_group": 10058,
"skill1": 100581
"skill1": 100581,
"skill2": 900581
},
{
"skill_group": 10059,
"skill1": 100591
"skill1": 100591,
"skill2": 900591
},
{
"skill_group": 10060,
"skill1": 100601
"skill1": 100601,
"skill2": 900601
},
{
"skill_group": 10061,
"skill1": 100611
"skill1": 100611,
"skill2": 900611
},
{
"skill_group": 10069,
"skill1": 100691
"skill1": 100691,
"skill2": 900691
},
{
"skill_group": 10071,
"skill1": 100711
"skill1": 100711,
"skill2": 900711
},
{
"skill_group": 11001,
"skill1": 110011
"skill1": 110011,
"skill2": 910011
},
{
"skill_group": 11003,
"skill1": 110031
"skill1": 110031,
"skill2": 910031
},
{
"skill_group": 11004,
"skill1": 110041
"skill1": 110041,
"skill2": 910041
},
{
"skill_group": 11006,
"skill1": 110061
"skill1": 110061,
"skill2": 910061
},
{
"skill_group": 11011,
"skill1": 110111
"skill1": 110111,
"skill2": 910111
},
{
"skill_group": 11013,
"skill1": 110131
"skill1": 110131,
"skill2": 910131
},
{
"skill_group": 11014,
"skill1": 110141
"skill1": 110141,
"skill2": 910141
},
{
"skill_group": 11015,
"skill1": 110151
"skill1": 110151,
"skill2": 910151
},
{
"skill_group": 11017,
"skill1": 110171
"skill1": 110171,
"skill2": 910171
},
{
"skill_group": 11018,
"skill1": 110181
"skill1": 110181,
"skill2": 910181
},
{
"skill_group": 11023,
"skill1": 110231
"skill1": 110231,
"skill2": 910231
},
{
"skill_group": 11024,
"skill1": 110241
"skill1": 110241,
"skill2": 910241
},
{
"skill_group": 11026,
"skill1": 110261
"skill1": 110261,
"skill2": 910261
},
{
"skill_group": 11030,
"skill1": 110301
"skill1": 110301,
"skill2": 910301
},
{
"skill_group": 11037,
"skill1": 110371
"skill1": 110371,
"skill2": 910371
},
{
"skill_group": 11040,
"skill1": 110401
"skill1": 110401,
"skill2": 910401
},
{
"skill_group": 11045,
"skill1": 110451
"skill1": 110451,
"skill2": 910451
},
{
"skill_group": 11052,
"skill1": 110521
"skill1": 110521,
"skill2": 910521
},
{
"skill_group": 11056,
"skill1": 110561
"skill1": 110561,
"skill2": 910561
},
{
"skill_group": 20001,
@@ -1286,274 +1354,342 @@
},
{
"skill_group": 90001,
"skill1": 100011,
"skill2": 900011
},
{
"skill_group": 90002,
"skill1": 100021,
"skill2": 900021
},
{
"skill_group": 90003,
"skill1": 100031,
"skill2": 900031
},
{
"skill_group": 90004,
"skill1": 100041,
"skill2": 900041
},
{
"skill_group": 90005,
"skill1": 100051,
"skill2": 900051
},
{
"skill_group": 90006,
"skill1": 100061,
"skill2": 900061
},
{
"skill_group": 90007,
"skill1": 100071,
"skill2": 900071
},
{
"skill_group": 90008,
"skill1": 100081,
"skill2": 900081
},
{
"skill_group": 90009,
"skill1": 100091,
"skill2": 900091
},
{
"skill_group": 90010,
"skill1": 100101,
"skill2": 900101
},
{
"skill_group": 90011,
"skill1": 100111,
"skill2": 900111
},
{
"skill_group": 90012,
"skill1": 100121,
"skill2": 900121
},
{
"skill_group": 90013,
"skill1": 100131,
"skill2": 900131
},
{
"skill_group": 90014,
"skill1": 100141,
"skill2": 900141
},
{
"skill_group": 90015,
"skill1": 100151,
"skill2": 900151
},
{
"skill_group": 90016,
"skill1": 100161,
"skill2": 900161
},
{
"skill_group": 90017,
"skill1": 100171,
"skill2": 900171
},
{
"skill_group": 90018,
"skill1": 100181,
"skill2": 900181
},
{
"skill_group": 90019,
"skill1": 100191,
"skill2": 900191
},
{
"skill_group": 90020,
"skill1": 100201,
"skill2": 900201
},
{
"skill_group": 90021,
"skill1": 100211,
"skill2": 900211
},
{
"skill_group": 90022,
"skill1": 100221,
"skill2": 900221
},
{
"skill_group": 90023,
"skill1": 100231,
"skill2": 900231
},
{
"skill_group": 90024,
"skill1": 100241,
"skill2": 900241
},
{
"skill_group": 90025,
"skill1": 100251,
"skill2": 900251
},
{
"skill_group": 90026,
"skill1": 100261,
"skill2": 900261
},
{
"skill_group": 90027,
"skill1": 100271,
"skill2": 900271
},
{
"skill_group": 90028,
"skill1": 100281,
"skill2": 900281
},
{
"skill_group": 90030,
"skill1": 100301,
"skill2": 900301
},
{
"skill_group": 90032,
"skill1": 100321,
"skill2": 900321
},
{
"skill_group": 90033,
"skill1": 100331,
"skill2": 900331
},
{
"skill_group": 90035,
"skill1": 100351,
"skill2": 900351
},
{
"skill_group": 90037,
"skill1": 100371,
"skill2": 900371
},
{
"skill_group": 90038,
"skill1": 100381,
"skill2": 900381
},
{
"skill_group": 90039,
"skill1": 100391,
"skill2": 900391
},
{
"skill_group": 90040,
"skill1": 100401,
"skill2": 900401
},
{
"skill_group": 90041,
"skill1": 100411,
"skill2": 900411
},
{
"skill_group": 90045,
"skill1": 100451,
"skill2": 900451
},
{
"skill_group": 90046,
"skill1": 100461,
"skill2": 900461
},
{
"skill_group": 90048,
"skill1": 100481,
"skill2": 900481
},
{
"skill_group": 90050,
"skill1": 100501,
"skill2": 900501
},
{
"skill_group": 90052,
"skill1": 100521,
"skill2": 900521
},
{
"skill_group": 90056,
"skill1": 100561,
"skill2": 900561
},
{
"skill_group": 90058,
"skill1": 100581,
"skill2": 900581
},
{
"skill_group": 90059,
"skill1": 100591,
"skill2": 900591
},
{
"skill_group": 90060,
"skill1": 100601,
"skill2": 900601
},
{
"skill_group": 90061,
"skill1": 100611,
"skill2": 900611
},
{
"skill_group": 90069,
"skill1": 100691,
"skill2": 900691
},
{
"skill_group": 90071,
"skill1": 100711,
"skill2": 900711
},
{
"skill_group": 91001,
"skill1": 110011,
"skill2": 910011
},
{
"skill_group": 91003,
"skill1": 110031,
"skill2": 910031
},
{
"skill_group": 91004,
"skill1": 110041,
"skill2": 910041
},
{
"skill_group": 91006,
"skill1": 110061,
"skill2": 910061
},
{
"skill_group": 91011,
"skill1": 110111,
"skill2": 910111
},
{
"skill_group": 91013,
"skill1": 110131,
"skill2": 910131
},
{
"skill_group": 91014,
"skill1": 110141,
"skill2": 910141
},
{
"skill_group": 91015,
"skill1": 110151,
"skill2": 910151
},
{
"skill_group": 91017,
"skill1": 110171,
"skill2": 910171
},
{
"skill_group": 91018,
"skill1": 110181,
"skill2": 910181
},
{
"skill_group": 91023,
"skill1": 110231,
"skill2": 910231
},
{
"skill_group": 91024,
"skill1": 110241,
"skill2": 910241
},
{
"skill_group": 91026,
"skill1": 110261,
"skill2": 910261
},
{
"skill_group": 91030,
"skill1": 110301,
"skill2": 910301
},
{
"skill_group": 91037,
"skill1": 110371,
"skill2": 910371
},
{
"skill_group": 91040,
"skill1": 110401,
"skill2": 910401
},
{
"skill_group": 91045,
"skill1": 110451,
"skill2": 910451
},
{
"skill_group": 91052,
"skill1": 110521,
"skill2": 910521
},
{
"skill_group": 91056,
"skill1": 110561,
"skill2": 910561
},
{

View File

@@ -211,6 +211,9 @@ type SkillGroupID int32
// skill with the corresponding group rate.
// Some skill groups contain only Skill2 or SkillBad, while others may have all
// four skills.
//
// As a special case, horsegen lists both unique skills and their inherited
// versions in the skill groups for both.
type SkillGroup struct {
ID SkillGroupID `json:"skill_group"`
// Skill1 is the base version of the skill, either a common (white) skill