M6.17: Variant content + Sheep/Goat split + calling lore + uniform card layout
Species variants populated against the M6.13 schema: - Lion-Folk sex axis: Mane Guard (male) / Huntress Reflexes (female, +5 ft speed + advantage on initiative). - Elk-Folk sex axis: Antler Combat with 10 ft reach when full rack (male, retains seasonal Antler Drag) / Kick (female, prone on crit). Base traits restored to doc canon: Herd Coordination (Help → +3) + Endurance Runner (40 ft + advantage CON vs forced march); base speed bumped 30 → 40; new base detriment Herd Instinct. Ram-Folk replaced with separate Sheep-Folk + Goat-Folk species rather than a lineage-axis variant on a single Ram entry. Bovidae now has 4 species. The lineage-axis toggle UI in StepSpecies BuildCard rolled back; the schema stays for sex-axis (Lion/Elk) which auto-resolves. ContentLoadTests + HybridCharacterTests updated; Size.cs comment too. Calling lore: ClassDef gains Description; classes.json populated for all 8 callings with the doc's italic blockquote + paragraph profile. StepClass surfaces the description on the card. Card layout uniformity: StepClass / StepSubclass / StepBackground all switched to single-column ExpandFill grids (matching StepClade / StepSpecies). Each card now spans the wizard's content width so the description and feature chips have room to breathe. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -47,9 +47,11 @@ public partial class StepClass : VBoxContainer, IStep
|
||||
AutowrapMode = TextServer.AutowrapMode.WordSmart,
|
||||
});
|
||||
|
||||
_grid = new GridContainer { Columns = 3, SizeFlagsHorizontal = SizeFlags.ShrinkCenter };
|
||||
_grid.AddThemeConstantOverride("h_separation", 16);
|
||||
_grid.AddThemeConstantOverride("v_separation", 16);
|
||||
// Single-column layout matches StepClade / StepSpecies — each card
|
||||
// spans the wizard's content width so the description text fits
|
||||
// comfortably and the calling's tone lands before the mechanics.
|
||||
_grid = new GridContainer { Columns = 1, SizeFlagsHorizontal = SizeFlags.ExpandFill };
|
||||
_grid.AddThemeConstantOverride("v_separation", 12);
|
||||
AddChild(_grid);
|
||||
|
||||
Refresh();
|
||||
@@ -68,7 +70,7 @@ public partial class StepClass : VBoxContainer, IStep
|
||||
bool selected = _draft.ClassId == cls.Id;
|
||||
|
||||
var card = CodexCard.Make();
|
||||
card.CustomMinimumSize = new Vector2(200, 0);
|
||||
card.SizeFlagsHorizontal = Control.SizeFlags.ExpandFill;
|
||||
CodexCard.SetSelected(card, selected);
|
||||
|
||||
card.GuiInput += (InputEvent e) =>
|
||||
@@ -97,6 +99,16 @@ public partial class StepClass : VBoxContainer, IStep
|
||||
ThemeTypeVariation = "CardMeta",
|
||||
});
|
||||
|
||||
if (!string.IsNullOrEmpty(cls.Description))
|
||||
{
|
||||
box.AddChild(new Label
|
||||
{
|
||||
Text = cls.Description,
|
||||
AutowrapMode = TextServer.AutowrapMode.WordSmart,
|
||||
MouseFilter = Control.MouseFilterEnum.Pass,
|
||||
});
|
||||
}
|
||||
|
||||
if (cls.Saves.Length > 0)
|
||||
{
|
||||
var savesRow = new HBoxContainer();
|
||||
|
||||
Reference in New Issue
Block a user