From 6b0b467f312b795db3b73a0bf94a890dd5662bb5 Mon Sep 17 00:00:00 2001 From: gamer147 Date: Sat, 4 Jul 2026 14:54:43 -0400 Subject: [PATCH] config(default-grants): zero out shipped Crystals/Rupees/Ether Tutorial gifts now cover the starter pack + starter deck flow (crystals + ether + tickets granted via ViewerPresents on signup), so the 50k/50k/50k default deposit was double-dipping. Zero the ShippedDefaults so a fresh viewer's currency reflects exactly what they've earned. Also update the two tests that asserted the old 50k baseline. Co-Authored-By: Claude Opus 4.7 --- SVSim.Database/Models/Config/DefaultGrantsConfig.cs | 6 +++--- SVSim.UnitTests/Controllers/AchievementControllerTests.cs | 2 +- SVSim.UnitTests/Models/GameConfigurationJsonbTests.cs | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/SVSim.Database/Models/Config/DefaultGrantsConfig.cs b/SVSim.Database/Models/Config/DefaultGrantsConfig.cs index db75d145..a4d4897e 100644 --- a/SVSim.Database/Models/Config/DefaultGrantsConfig.cs +++ b/SVSim.Database/Models/Config/DefaultGrantsConfig.cs @@ -4,9 +4,9 @@ namespace SVSim.Database.Models.Config; [ConfigSection("DefaultGrants")] public class DefaultGrantsConfig { - public ulong Crystals { get; set; } = 50000; - public ulong Rupees { get; set; } = 50000; - public ulong Ether { get; set; } = 50000; + public ulong Crystals { get; set; } = 0; + public ulong Rupees { get; set; } = 0; + public ulong Ether { get; set; } = 0; public static DefaultGrantsConfig ShippedDefaults() => new(); } diff --git a/SVSim.UnitTests/Controllers/AchievementControllerTests.cs b/SVSim.UnitTests/Controllers/AchievementControllerTests.cs index d86086f9..d7862bf6 100644 --- a/SVSim.UnitTests/Controllers/AchievementControllerTests.cs +++ b/SVSim.UnitTests/Controllers/AchievementControllerTests.cs @@ -100,7 +100,7 @@ public class AchievementControllerTests var grant = rewardList[0]; Assert.That(grant.GetProperty("reward_type").GetInt32(), Is.EqualTo(9)); // For currency grants, reward_num is the POST-STATE TOTAL (per project convention, - // matches /pack/open behavior). Default-seeded viewer has 50000 rupees → 50100 after grant. + // matches /pack/open behavior). Default-seeded viewer starts at 0 rupees → 100 after grant. Assert.That(grant.GetProperty("reward_num").GetInt32(), Is.GreaterThanOrEqualTo(100), "reward_num is post-state total for currencies, must be at least the granted amount"); } diff --git a/SVSim.UnitTests/Models/GameConfigurationJsonbTests.cs b/SVSim.UnitTests/Models/GameConfigurationJsonbTests.cs index 87c63d8e..09300e55 100644 --- a/SVSim.UnitTests/Models/GameConfigurationJsonbTests.cs +++ b/SVSim.UnitTests/Models/GameConfigurationJsonbTests.cs @@ -55,9 +55,9 @@ public class GameConfigurationJsonbTests Assert.That(slot8!.Silver, Is.EqualTo(0.7692).Within(1e-9)); var grants = JsonSerializer.Deserialize(byName["DefaultGrants"].ValueJson)!; - Assert.That(grants.Crystals, Is.EqualTo(50000UL)); - Assert.That(grants.Rupees, Is.EqualTo(50000UL)); - Assert.That(grants.Ether, Is.EqualTo(50000UL)); + Assert.That(grants.Crystals, Is.EqualTo(0UL)); + Assert.That(grants.Rupees, Is.EqualTo(0UL)); + Assert.That(grants.Ether, Is.EqualTo(0UL)); var player = JsonSerializer.Deserialize(byName["Player"].ValueJson)!; Assert.That(player.MaxFriends, Is.EqualTo(20));