diff --git a/SVSim.Database/Models/Config/ArenaTwoPickConfig.cs b/SVSim.Database/Models/Config/ArenaTwoPickConfig.cs new file mode 100644 index 0000000..6886e94 --- /dev/null +++ b/SVSim.Database/Models/Config/ArenaTwoPickConfig.cs @@ -0,0 +1,30 @@ +namespace SVSim.Database.Models.Config; + +/// +/// Take Two run mechanics: rarity weights, class/neutral mix, per-battle XP, season ids, +/// allowed-class allow-list. The pool's set scoping lives on ; +/// this section is purely mechanics + the reward-schedule/challenge ids stamped on each run. +/// +[ConfigSection("ArenaTwoPick")] +public class ArenaTwoPickConfig +{ + public int RewardScheduleId { get; set; } = 1; + public int ChallengeId { get; set; } = 1; + public int MaxLosses { get; set; } = 2; + public int ClassXpPerBattle { get; set; } = 100; + public int SpotPointsPerBattle { get; set; } = 10; + + public double LegendaryRate { get; set; } = 0.06; + public double GoldRate { get; set; } = 0.17; + public double SilverRate { get; set; } = 0.33; + public double BronzeRate { get; set; } = 0.44; + + public double NeutralMixRate { get; set; } = 0.25; + + public List AllowedClassIds { get; set; } = new(); + + public static ArenaTwoPickConfig ShippedDefaults() => new() + { + AllowedClassIds = new List { 1, 2, 3, 4, 5, 6, 7, 8 }, + }; +}