From f204656f4d612524db9bf0eb58625fd1294be539 Mon Sep 17 00:00:00 2001 From: gamer147 Date: Tue, 9 Jun 2026 17:31:06 -0400 Subject: [PATCH] refactor(user-class): require owned skin list, read IsRandomLeaderSkin from data --- SVSim.EmulatedEntrypoint/Controllers/LoadController.cs | 4 +++- SVSim.EmulatedEntrypoint/Models/Dtos/UserClass.cs | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/SVSim.EmulatedEntrypoint/Controllers/LoadController.cs b/SVSim.EmulatedEntrypoint/Controllers/LoadController.cs index 83bec93..376a14d 100644 --- a/SVSim.EmulatedEntrypoint/Controllers/LoadController.cs +++ b/SVSim.EmulatedEntrypoint/Controllers/LoadController.cs @@ -192,7 +192,9 @@ public class LoadController : SVSimController .Select(d => new UserDeck(d)).ToList() }, UserCards = allCardsAsOwned.Select(card => new UserCard(card)).ToList(), - UserClasses = viewer.Classes.Select(vc => new UserClass(vc)).ToList(), + UserClasses = viewer.Classes.Select(vc => new UserClass( + vc, + viewer.LeaderSkins.Where(s => s.ClassId == vc.Class.Id).Select(s => s.Id).ToList())).ToList(), Sleeves = cosmetics.SleeveIds.Select(id => new SleeveIdentifier { SleeveId = id }).ToList(), UserEmblems = cosmetics.EmblemIds.Select(id => new EmblemIdentifier { EmblemId = id }).ToList(), UserDegrees = cosmetics.DegreeIds.Select(id => new DegreeIdentifier { DegreeId = id }).ToList(), diff --git a/SVSim.EmulatedEntrypoint/Models/Dtos/UserClass.cs b/SVSim.EmulatedEntrypoint/Models/Dtos/UserClass.cs index af95071..754c652 100644 --- a/SVSim.EmulatedEntrypoint/Models/Dtos/UserClass.cs +++ b/SVSim.EmulatedEntrypoint/Models/Dtos/UserClass.cs @@ -39,15 +39,16 @@ public class UserClass [Key("default_leader_skin_id")] public int DefaultLeaderSkinId { get; set; } - public UserClass(ViewerClassData viewerClass) + public UserClass(ViewerClassData viewerClass, IReadOnlyCollection ownedSkinIdsForClass) { this.ClassId = viewerClass.Class.Id; this.IsAvailable = 1; this.Level = viewerClass.Level; this.Exp = viewerClass.Exp; - this.IsRandomLeaderSkin = 0; + this.IsRandomLeaderSkin = viewerClass.IsRandomLeaderSkin ? 1 : 0; this.LeaderSkinId = viewerClass.LeaderSkin.Id; - this.DefaultLeaderSkinId = viewerClass.Class.DefaultLeaderSkin.Id; + this.LeaderSkinIds = ownedSkinIdsForClass.ToList(); + this.DefaultLeaderSkinId = viewerClass.Class.DefaultLeaderSkin?.Id ?? 0; } public UserClass()