chore: release version 2.3.5 and refactor lobby

Bump export_presets.cfg version to 2.3.5. Update CHANGELOG_DRAFT.md.
Refactor lobby.gd into LobbyChat, LobbyMainMenu, LobbyRoomList, LobbyRoom.
Move Nakama config to environment variables in nakama_manager.gd.
Derive auth_manager.gd encryption key from OS.get_unique_id().sha256_text().
Remove Steam email auth fallback. Require auth ticket.
Make GachaManager.pull() async in gacha_panel.gd.
Remove dummy wallet seeding. Add store_type to IAP payload.
Validate IAP receipts server-side in economy.lua.
Register gacha module in main.lua.
Clean backend_service.gd stubs.
Fix featured_banners type safety in gacha_manager.gd. Guards non-array responses.
Move tiles_armagedon_a1.res to assets/models/meshes/. Fix import fallback_path.
This commit is contained in:
2026-05-22 12:08:11 +08:00
parent 8430d1054e
commit decdb74ade
356 changed files with 27438 additions and 1630 deletions
+4 -2
View File
@@ -360,7 +360,8 @@ func fetch_shop_catalog() -> void:
if payload and payload.has("catalog"):
shop_catalog = payload.catalog
if payload.has("featured_banners"):
featured_banners = payload.get("featured_banners", [])
var _banners = payload.get("featured_banners", [])
featured_banners = _banners if typeof(_banners) == TYPE_ARRAY else []
emit_signal("profile_updated")
## Admin-only: grants a large amount of gold via a server-authoritative RPC.
@@ -384,7 +385,8 @@ func buy_currency(package_id: String) -> bool:
var payload = JSON.stringify({
"package_id": package_id,
"idempotency_key": str(randi()) + "_" + str(Time.get_ticks_usec()),
"receipt": "mock_receipt_for_now"
"receipt": "mock_receipt_for_now",
"store_type": "test"
})
var result = await NakamaManager.client.rpc_async(