refactor(user-class): require owned skin list, read IsRandomLeaderSkin from data

This commit is contained in:
gamer147
2026-06-09 17:31:06 -04:00
parent da6b448598
commit f204656f4d
2 changed files with 7 additions and 4 deletions

View File

@@ -192,7 +192,9 @@ public class LoadController : SVSimController
.Select(d => new UserDeck(d)).ToList() .Select(d => new UserDeck(d)).ToList()
}, },
UserCards = allCardsAsOwned.Select(card => new UserCard(card)).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(), Sleeves = cosmetics.SleeveIds.Select(id => new SleeveIdentifier { SleeveId = id }).ToList(),
UserEmblems = cosmetics.EmblemIds.Select(id => new EmblemIdentifier { EmblemId = id }).ToList(), UserEmblems = cosmetics.EmblemIds.Select(id => new EmblemIdentifier { EmblemId = id }).ToList(),
UserDegrees = cosmetics.DegreeIds.Select(id => new DegreeIdentifier { DegreeId = id }).ToList(), UserDegrees = cosmetics.DegreeIds.Select(id => new DegreeIdentifier { DegreeId = id }).ToList(),

View File

@@ -39,15 +39,16 @@ public class UserClass
[Key("default_leader_skin_id")] [Key("default_leader_skin_id")]
public int DefaultLeaderSkinId { get; set; } public int DefaultLeaderSkinId { get; set; }
public UserClass(ViewerClassData viewerClass) public UserClass(ViewerClassData viewerClass, IReadOnlyCollection<int> ownedSkinIdsForClass)
{ {
this.ClassId = viewerClass.Class.Id; this.ClassId = viewerClass.Class.Id;
this.IsAvailable = 1; this.IsAvailable = 1;
this.Level = viewerClass.Level; this.Level = viewerClass.Level;
this.Exp = viewerClass.Exp; this.Exp = viewerClass.Exp;
this.IsRandomLeaderSkin = 0; this.IsRandomLeaderSkin = viewerClass.IsRandomLeaderSkin ? 1 : 0;
this.LeaderSkinId = viewerClass.LeaderSkin.Id; this.LeaderSkinId = viewerClass.LeaderSkin.Id;
this.DefaultLeaderSkinId = viewerClass.Class.DefaultLeaderSkin.Id; this.LeaderSkinIds = ownedSkinIdsForClass.ToList();
this.DefaultLeaderSkinId = viewerClass.Class.DefaultLeaderSkin?.Id ?? 0;
} }
public UserClass() public UserClass()