horsegen: treat inherited skills as being in the original's group

This commit is contained in:
2026-01-16 23:30:14 -05:00
parent cb1c51db05
commit a86aa0daeb
3 changed files with 64 additions and 74 deletions

View File

@@ -74,19 +74,8 @@ func ExecCharacter(t *template.Template, region string, kk, g io.Writer, c []Nam
func ExecSkill(t *template.Template, region string, kk, g io.Writer, groups []NamedID[SkillGroup], skills []Skill) error {
m := make(map[int][]Skill, len(groups))
u := make(map[int]int, len(groups))
for _, t := range skills {
m[t.GroupID] = append(m[t.GroupID], t)
if t.Rarity >= 4 {
// Add inheritable uniques to u so we can add inherited versions to groups.
u[t.ID] = t.GroupID
}
}
// Now that u is set up, iterate through again and add in inherited skills.
for _, t := range skills {
if t.InheritID != 0 {
m[u[t.InheritID]] = append(m[u[t.InheritID]], t)
}
}
data := struct {
Region string

View File

@@ -17,7 +17,7 @@ SELECT
d.id,
n.name,
n.description,
d.group_id,
IIF(d.unique_skill_id_1 = 0, d.group_id, ud.group_id) AS group_id,
CASE
WHEN g.name IS NOT NULL THEN g.name
WHEN d.unique_skill_id_1 != 0 THEN n.name
@@ -48,8 +48,8 @@ SELECT
d.target_value_1_3,
d.precondition_2,
d.condition_2,
float_ability_time_2,
float_cooldown_time_2,
d.float_ability_time_2,
d.float_cooldown_time_2,
d.ability_type_2_1,
d.ability_value_usage_2_1,
d.float_ability_value_2_1,
@@ -71,6 +71,7 @@ SELECT
ROW_NUMBER() OVER (ORDER BY d.id) - 1 AS "index"
FROM skill_data d
JOIN skill_names n ON d.id = n.id
LEFT JOIN skill_data ud ON d.unique_skill_id_1 = ud.id
LEFT JOIN skill_groups g ON d.group_id = g.group_id
LEFT JOIN single_mode_skill_need_point p ON d.id = p.id
ORDER BY d.id