Add actual carts and shit
Upgrade UI to Level 6 Balls
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ namespace KernelPanic.Meta
|
||||
public bool starterChosen;
|
||||
public List<string> ownedUnitIds = new();
|
||||
public List<string> bannerPoolIds = new();
|
||||
public List<CardLoadoutSaveEntry> cardLoadouts = new();
|
||||
public LastRunLoadoutSaveEntry lastRunLoadout = new();
|
||||
|
||||
public static SaveData CreateDefault()
|
||||
{
|
||||
@@ -71,24 +71,20 @@ namespace KernelPanic.Meta
|
||||
{
|
||||
ownedUnitIds ??= new List<string>();
|
||||
bannerPoolIds ??= new List<string>();
|
||||
cardLoadouts ??= new List<CardLoadoutSaveEntry>();
|
||||
for (int i = 0; i < cardLoadouts.Count; i++)
|
||||
{
|
||||
cardLoadouts[i] ??= new CardLoadoutSaveEntry();
|
||||
cardLoadouts[i].EnsureLists();
|
||||
}
|
||||
lastRunLoadout ??= new LastRunLoadoutSaveEntry();
|
||||
lastRunLoadout.EnsureLists();
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public sealed class CardLoadoutSaveEntry
|
||||
public sealed class LastRunLoadoutSaveEntry
|
||||
{
|
||||
public string distroId;
|
||||
public List<string> equippedCardIds = new();
|
||||
public List<string> cardIds = new();
|
||||
|
||||
public void EnsureLists()
|
||||
{
|
||||
equippedCardIds ??= new List<string>();
|
||||
cardIds ??= new List<string>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user