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
-52
View File
@@ -61,59 +61,7 @@ func _connect_nakama_signals() -> void:
# No need to connect through BackendService
pass
## Achievement Methods
# All platforms use Nakama for achievements
func unlock_achievement(achievement_id: String) -> void:
if nakama_backend:
# Nakama achievement implementation
pass
func set_achievement_progress(achievement_id: String, current: int, max: int) -> void:
if nakama_backend:
# Nakama progress implementation
pass
func get_achievement_progress(achievement_id: String) -> Dictionary:
if nakama_backend:
# Nakama get progress implementation
pass
return {}
func get_all_achievements() -> Array:
if nakama_backend:
# Nakama get all achievements implementation
pass
return []
## Leaderboard Methods
# All platforms use Nakama for leaderboards
func submit_leaderboard_score(leaderboard_id: String, score: int) -> void:
if nakama_backend:
# Nakama leaderboard submission - use UserProfileManager.submit_to_leaderboard()
await UserProfileManager.submit_to_leaderboard()
func get_leaderboard_entries(leaderboard_id: String, range_start: int = 1, range_end: int = 10) -> void:
if nakama_backend:
# Nakama get leaderboard entries - use LeaderboardPanel._fetch_leaderboard_data()
# This is handled by the UI panel directly
pass
## Shop Methods
# All platforms use Nakama for shop
func purchase_shop_item(item_id: String) -> void:
if nakama_backend:
# Nakama shop purchase - use UserProfileManager.purchase_item()
# This is handled by the UI panel directly via ShopPanel
pass
func get_shop_items() -> void:
if nakama_backend:
# Nakama get shop items - use UserProfileManager.fetch_shop_catalog()
# This is handled by the UI panel directly via ShopPanel
pass
## Utility Methods