From 0d01727e480bc6cb6755a63e72d121aa5b37d678 Mon Sep 17 00:00:00 2001 From: gamer147 Date: Sat, 13 Jun 2026 15:55:12 -0400 Subject: [PATCH] chore(config): split NormalBonusEntry, strengthen Normal-defaults warning File-per-class convention + explicit warning against the property-initializer collection-default bug class (2026-05-24). --- SVSim.Database/Models/Config/LoginBonusConfig.cs | 16 +++++----------- SVSim.Database/Models/Config/NormalBonusEntry.cs | 12 ++++++++++++ 2 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 SVSim.Database/Models/Config/NormalBonusEntry.cs diff --git a/SVSim.Database/Models/Config/LoginBonusConfig.cs b/SVSim.Database/Models/Config/LoginBonusConfig.cs index 93a17ea9..f8109ee9 100644 --- a/SVSim.Database/Models/Config/LoginBonusConfig.cs +++ b/SVSim.Database/Models/Config/LoginBonusConfig.cs @@ -17,8 +17,11 @@ public class LoginBonusConfig public string Img { get; set; } = "0"; /// - /// Normal-cycle reward entries, 1-based by Day. Defaults to a 15-day cycle copied - /// verbatim from the prod tutorial capture (traffic_prod_tutorial.ndjson). + /// Normal-cycle reward entries, 1-based by Day. Defaults to new() (empty); + /// real entries live in . Do not move them into this + /// property initializer — collection initializers silently empty out under + /// GameConfigService.Get<T>()'s tier-merge (config-defaults convention, + /// historical bug 2026-05-24). /// public List Normal { get; set; } = new(); @@ -47,12 +50,3 @@ public class LoginBonusConfig }, }; } - -public class NormalBonusEntry -{ - public int Day { get; set; } - public int EffectId { get; set; } = 1; - public UserGoodsType RewardType { get; set; } - public long RewardDetailId { get; set; } - public int RewardNumber { get; set; } -} diff --git a/SVSim.Database/Models/Config/NormalBonusEntry.cs b/SVSim.Database/Models/Config/NormalBonusEntry.cs new file mode 100644 index 00000000..8f78ee76 --- /dev/null +++ b/SVSim.Database/Models/Config/NormalBonusEntry.cs @@ -0,0 +1,12 @@ +using SVSim.Database.Enums; + +namespace SVSim.Database.Models.Config; + +public class NormalBonusEntry +{ + public int Day { get; set; } + public int EffectId { get; set; } = 1; + public UserGoodsType RewardType { get; set; } + public long RewardDetailId { get; set; } + public int RewardNumber { get; set; } +}