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()
},
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(),

View File

@@ -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<int> 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()