diff --git a/Theriapolis.Godot/Scenes/Aside.cs b/Theriapolis.Godot/Scenes/Aside.cs index fd20c80..62fd93e 100644 --- a/Theriapolis.Godot/Scenes/Aside.cs +++ b/Theriapolis.Godot/Scenes/Aside.cs @@ -85,7 +85,14 @@ public partial class Aside : MarginContainer private void BuildDetailsGrid() { - if (_draft!.IsHybrid) + string sexLabel = _draft!.Sex switch + { + "male" => "Male", + "female" => "Female", + _ => "", + }; + + if (_draft.IsHybrid) { // Hybrid layout: SIRE / DAM column headers above the parent // detail rows, then the Calling / Background row spans both @@ -102,6 +109,10 @@ public partial class Aside : MarginContainer lineageGrid.AddChild(MakeCell("Clade", CodexContent.Clade(_draft.DamCladeId)?.Name)); lineageGrid.AddChild(MakeCell("Species", CodexContent.SpeciesById(_draft.SireSpeciesId)?.Name)); lineageGrid.AddChild(MakeCell("Species", CodexContent.SpeciesById(_draft.DamSpeciesId)?.Name)); + // Sex is a character-level field, not per-parent — span left + // column with an empty filler in the right. + lineageGrid.AddChild(MakeCell("Sex", sexLabel)); + lineageGrid.AddChild(new Control()); } else { @@ -109,6 +120,8 @@ public partial class Aside : MarginContainer _content.AddChild(lineageGrid); lineageGrid.AddChild(MakeCell("Clade", CodexContent.Clade(_draft.CladeId)?.Name)); lineageGrid.AddChild(MakeCell("Species", CodexContent.SpeciesById(_draft.SpeciesId)?.Name)); + lineageGrid.AddChild(MakeCell("Sex", sexLabel)); + lineageGrid.AddChild(new Control()); } // Calling + Background — last row of the lineage block, with