diff --git a/src/star_rail_relic_trimmer/load.py b/src/star_rail_relic_trimmer/load.py index 4485dda..cc0d19a 100644 --- a/src/star_rail_relic_trimmer/load.py +++ b/src/star_rail_relic_trimmer/load.py @@ -46,7 +46,12 @@ def deduplicate_relics(relics: list[RelicToKeep]) -> set[RelicToKeep]: return set(unique_relics.values()) -def sort_relics(relics_to_keep: Generator[RelicToKeep, Any, None]): +def sort_relics(relics_to_keep: Generator[RelicToKeep, Any, None], position: Position): + if position in (Position.Head, Position.Hands): + return sorted( + convert_model_to_dict(list(deduplicate_relics(relics_to_keep))), + key=lambda x: (x["secondary_stat"]), + ) return sorted( convert_model_to_dict(list(deduplicate_relics(relics_to_keep))), key=lambda x: (x["primary_stat"] == "ANY", x["primary_stat"]), @@ -158,12 +163,12 @@ def show_relics_to_keep(data_file: Path): ), ) - head_relics_sorted = sort_relics(prune_any(head_relics)) - hand_relics_sorted = sort_relics(prune_any(hand_relics)) - body_relics_sorted = sort_relics(prune_any(body_relics)) - feet_relics_sorted = sort_relics(prune_any(feet_relics)) - sphere_relics_sorted = sort_relics(prune_any(sphere_relics)) - rope_relics_sorted = sort_relics(prune_any(rope_relics)) + head_relics_sorted = sort_relics(prune_any(head_relics), Position.Head) + hand_relics_sorted = sort_relics(prune_any(hand_relics), Position.Hands) + body_relics_sorted = sort_relics(prune_any(body_relics), Position.Body) + feet_relics_sorted = sort_relics(prune_any(feet_relics), Position.Feet) + sphere_relics_sorted = sort_relics(prune_any(sphere_relics), Position.Sphere) + rope_relics_sorted = sort_relics(prune_any(rope_relics), Position.Rope) for _table in ( ("Head Relics", head_relics_sorted),