is_skip_gacha_effect, use_challenge_two_pick_premium_card, and challenge_two_pick_sleeve_id all persist on ViewerInfo and round-trip through /load/index. The two challenge fields move from the global ChallengeConfig section to ViewerInfo — they're viewer preferences, not server-wide policy. Premium card defaults to 0; sleeve falls back to DefaultLoadoutConfig.SleeveId (3000011) when unset. MatchContextBuilder's TK2 sleeve read switches to the same viewer-scoped path. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
22 lines
857 B
C#
22 lines
857 B
C#
namespace SVSim.Database.Models.Config;
|
|
|
|
[ConfigSection("Challenge")]
|
|
public class ChallengeConfig
|
|
{
|
|
// Wire-mirrored fields from format_info (ChallengeData.cs parser)
|
|
public int LastCardPackSetId { get; set; }
|
|
public string CardPoolName { get; set; } = "";
|
|
public string CardPoolUrl { get; set; } = "";
|
|
public string AnnounceId { get; set; } = "";
|
|
public string StartTime { get; set; } = "";
|
|
public string EndTime { get; set; } = "";
|
|
public int TwoPickType { get; set; } = 0;
|
|
public int StrategyPickNum { get; set; } = 0;
|
|
|
|
// Server-internal: which sets the TK2 pool draws from. Empty falls back to
|
|
// RotationConfig.RotationCardSetIds at runtime in the card-pool service.
|
|
public List<int> PoolCardSetIds { get; set; } = new();
|
|
|
|
public static ChallengeConfig ShippedDefaults() => new();
|
|
}
|