Add actual carts and shit

Upgrade UI to Level 6

Balls
This commit is contained in:
2026-07-06 13:41:15 +02:00
parent f69e832503
commit 8b6c6235c2
17 changed files with 978 additions and 165 deletions
+13
View File
@@ -10,10 +10,12 @@ namespace KernelPanic.Meta
public sealed class PlayerCollection
{
private readonly List<DistroDefinition> ownedUnits = new();
private int featuredIndex;
// TODO: Populate owned units from SaveService during bootstrap.
// TODO: Add newly unlocked units from GachaService rewards when pulls exist.
public IReadOnlyList<DistroDefinition> OwnedUnits => ownedUnits;
public DistroDefinition FeaturedUnit => ownedUnits.Count == 0 ? null : ownedUnits[Math.Clamp(featuredIndex, 0, ownedUnits.Count - 1)];
public event Action Changed;
@@ -26,7 +28,18 @@ namespace KernelPanic.Meta
// Persistence is wired by the owner so this domain class stays IO-free.
ownedUnits.Add(unit);
featuredIndex = Math.Clamp(featuredIndex, 0, ownedUnits.Count - 1);
Changed?.Invoke();
}
public void SelectNextFeatured()
{
if (ownedUnits.Count < 2)
{
return;
}
featuredIndex = (featuredIndex + 1) % ownedUnits.Count;
}
}
}