- StoryConfig.ClassXpPerClear retired; equivalent knob moves to BattleXpConfig.StoryXpPerClear (falls back to XpPerWin when null). - StoryService.FinishAsync now grants class XP via IBattleXpService with BattleXpMode.Story on the firstClear && isPlayShape branch. Persists post-grant Level/Exp to Viewer.Classes. - Wire fields (get_class_experience, class_level) stringified as before. - StoryConfig kept as an empty [ConfigSection] for future story-specific knobs. StoryServiceTests updated to reflect the new default path (XpPerWin=100 crosses classexp.csv L1=50 → L2 with 50 carry). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
14 lines
480 B
C#
14 lines
480 B
C#
namespace SVSim.Database.Models.Config;
|
|
|
|
/// <summary>
|
|
/// Story-family placeholder config section. Class XP per clear moved to
|
|
/// <see cref="BattleXpConfig.StoryXpPerClear"/> (BattleXpMode.Story) as part of the
|
|
/// unified per-mode XP surface. Kept as an empty section so future story-specific
|
|
/// knobs (dialogue speed, auto-skip, etc.) have a home.
|
|
/// </summary>
|
|
[ConfigSection("Story")]
|
|
public class StoryConfig
|
|
{
|
|
public static StoryConfig ShippedDefaults() => new();
|
|
}
|