gamer147
df65b7a9c8
feat(missions): common DTOs (UserMission, UserAchievement, BPMonthlyMission, MissionInfoData)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-27 10:30:29 -04:00
gamer147
c7dfd43daa
review(bp): doc fixes + sales_period_info non-nullable + drop checked cast + TODO
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-27 00:00:24 -04:00
gamer147
2cb8c271a8
feat(bp): /battle_pass/buy — crystal-cost + retroactive premium grants
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-26 23:36:18 -04:00
gamer147
0ceab721e9
feat(bp): /battle_pass/item_list — derives product per active season
...
Adds BattlePassSalesPeriodInfoDto, BattlePassProductDto, BattlePassItemListResponse DTOs,
GetItemListAsync on BattlePassService (one product if not premium + CanPurchase, empty if
already premium or off-season), and the /battle_pass/item_list controller action.
2 new integration tests; all 408 pass.
2026-05-26 23:26:46 -04:00
gamer147
6ed61ea9f1
feat(bp): /battle_pass/info response DTOs — string-typed wire numerics
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-26 23:05:51 -04:00
gamer147
7abdfe27cb
review(bp): drop fragile cast, thread CT, internalize cache reset
...
- IndexResponse.BattlePassLevelInfo widened to IReadOnlyDictionary<string,BattlePassLevel>?
so any IReadOnlyDictionary impl (FrozenDictionary, wrapper, etc.) serializes correctly
instead of silently null-ing via a failed as-cast
- LoadController.Index now takes CancellationToken ct and threads it to GetLevelCurveAsync
instead of CancellationToken.None
- BattlePassRepository.ResetLevelCurveCache changed from public to internal; added
InternalsVisibleTo("SVSim.UnitTests") to SVSim.Database.csproj (was absent)
2026-05-26 23:01:26 -04:00
gamer147
9043e20646
feat(bp): IBattlePassService skeleton + level-curve method + DI
2026-05-26 22:49:30 -04:00
gamer147
141f34f817
chore(bootstrap): refresh stale GlobalsImporter references in docs/test names
2026-05-26 16:44:54 -04:00
gamer147
9090086a47
Class leader fixes
2026-05-26 10:01:37 -04:00
gamer147
b6966ece6e
Prebuilt deck purchasing and fixes
2026-05-26 09:16:21 -04:00
gamer147
fa0901b776
More story fixes
2026-05-25 19:07:49 -04:00
gamer147
5e7a65fe5a
Story
2026-05-25 14:36:12 -04:00
gamer147
558e8288eb
Puzzles
2026-05-25 12:03:47 -04:00
gamer147
c14408ba06
Seeding reorg
2026-05-24 21:13:15 -04:00
gamer147
12fb2f4801
Card liquefication
2026-05-24 14:42:44 -04:00
gamer147
d9ef9fe1fc
Pack logic cleanup
2026-05-24 09:27:10 -04:00
gamer147
79209bd70b
Pack opening
2026-05-24 02:03:13 -04:00
gamer147
bdff142d16
Practice/deck editing mostly there
2026-05-24 00:17:28 -04:00
gamer147
21b97269ff
Practice battles work
2026-05-23 22:46:11 -04:00
gamer147
499e218be7
Deck fixes
2026-05-23 21:36:27 -04:00
gamer147
d3b2970e11
Deck list work
2026-05-23 19:57:34 -04:00
gamer147
66184b3685
Things were working, suddenly regressed
2026-05-23 18:14:42 -04:00
gamer147
5f44ee0c7e
Getting ready to seed more data
2026-05-23 15:47:23 -04:00
gamer147
631e42289a
Need to fix index load issues
2026-05-23 14:50:16 -04:00
gamer147
bf6ddf5428
Forgot unversioned xd
2026-05-23 14:18:18 -04:00
gamer147
6b70850b7b
More features
2026-05-23 14:18:01 -04:00
gamer147
b2024af852
Lots of data and model setup
2025-05-18 02:27:17 -04:00
gamer147
79505e0c1a
DTOs for index mostly done, doing DB models
2024-09-12 00:35:31 -04:00
gamer147
ac3b002d74
Stuff works
2024-09-08 10:27:12 -04:00
gamer147
7e4bce9ac5
Testing more garbage encryption
2024-09-07 22:14:24 -04:00
gamer147
ee7e276036
Updates
2024-09-05 08:32:54 -04:00