12 KiB
12 KiB
[2.3.7] — 2026-05-25
- Added Candy Cannon timer, firing mechanics, and 5-shot volleys to Gauntlet.
- Added new game mode: Candy Cannon Survival — dodge candy volleys from a giant cannon in the center of the arena!
- New 20×20 arena with a central Candy Cannon obstacle and three escalating phases: Open Arena, Route Pressure, and Survival.
- Candy Cannon Survival is now selectable from the lobby game mode list with its own dedicated arena.
- The arena now spawns collectible tiles (Hearts, Diamonds, Stars, Coins) with pattern-matching missions — complete goals while dodging candy!
- Integrated automated testing into CI pipeline — all commits now run unit and integration tests via GitHub Actions.
- Set up complete GitHub Actions CI/CD pipeline with build, test, and deployment workflows for Windows, Android, and macOS platforms.
[2.3.5] — 2026-05-22
- Refactored
lobby.gdinto modular helper classes (LobbyChat,LobbyMainMenu,LobbyRoomList,LobbyRoom) to reduce file size and improve maintainability. - Externalized Nakama connection config in
nakama_manager.gd— server key, host, port, and scheme now read from environment variables with ProjectSettings fallback. - Hardened
auth_manager.gdsession encryption — replaced static key with device-specific key derived fromOS.get_unique_id().sha256_text(). - Removed Steam email-based fallback auth; Steam login now requires a valid auth ticket (no more dev-mode workaround).
- Wired
GachaManager.pull()as async (await) ingacha_panel.gdto support server-side gacha rolls. - Removed dummy wallet seeding from
gacha_panel.gd— wallet balances now sourced exclusively from server. - Added
store_typefield to currency purchase payload for IAP receipt routing. - Added server-side IAP receipt validation in
economy.luawith Google Play, Apple, and test-mode receipt support. - Registered
gachaLua module inmain.luaserver entrypoint. - Cleaned up stub methods (achievements, leaderboard, shop wrappers) from
backend_service.gd. - Fixed
featured_bannerstype safety ingacha_manager.gd— guards against non-array server responses. - Removed stale
tiles_armagedon_a1.resfrom project root (asset relocated toassets/models/meshes/).
[2.3.4] — 2026-05-15
- Modernized
GachaPanelandFragmentCraftPanelUI to align with the Tekton dark theme and Lobby aesthetics. - Updated panel borders to use standard 4px content margins, matching the Login and Lobby interfaces.
- Redesigned banner selection tabs (Star/Gold) into compact navigation elements with state-driven styling (Inactive: Cyan, Active: Dark Blue).
- Replaced single-line currency balances with individual themed panels containing icons and right-aligned values.
- Updated
GachaPanelto display both Star and Gold balances simultaneously for better resource management. - Introduced separate UI panels in
FragmentCraftPanelto display Common, Uncommon, and Rare fragment quantities individually. - Refactored
FragmentCraftPanelaction buttons to use the TektonBtnDarkstyle with consistent padding and corner radii. - Fixed nearly invisible "Rates" text in Gacha by changing font color from dark brown to light grey.
- Updated
ProfilePanelcategory tabs to use descriptive text labels ("Head", "Costume", "Gloves", "Accessory") instead of emojis. - Standardized currency and fragment balance panels to be fixed-width and compact, removing excessive horizontal stretching.
- Dynamic
StyleBoxFlatinstantiation for tabs inGachaPanelandProfilePanelto ensure visual consistency across all modal screens.
[2.3.3] — 2026-05-13
- Modernized Shop UI to match Lobby's dark theme; removed orange/brown accents in favor of a neutral dark-grey aesthetic.
- Replaced Label-based currency indicators with pill-shaped containers and high-quality gold/star textures.
- Integrated
RichTextLabelwith BBCode support for inline currency icons across all shop cards (Gold, Star, and Cosmetic). - Implemented active-state highlighting for shop tabs with distinct visual feedback (white bg/dark text for active).
- Added featured banner system with sidebar support for event-based selling and special item spotlights.
- Added "Shop" tab to Admin Panel to manage 3 featured banner slots and their associated event labels.
- Standardized UI margins, button padding, and minimum sizes to ensure layout consistency and prevent text overlap.
- Added server-side RPCs (
admin_set_featured_banners,admin_get_featured_banners) for persistent shop configuration. - Fixed missing dependency errors (sky_sea_01.png and tiles_slot.png) by clearing stale .godot cache and UID references.
- Implemented
_populate_banners()function inshop_panel.gdto fix "Function not found" runtime error.
[2.3.2] — 2026-05-12
- Integrated Mailbox UI into lobby with CanvasLayer overlay (renders above 3D viewport).
- Redesigned
mailbox_panel.tscnto 3-column layout: scrollable mail list | content area | reward slots. - Auto read-all and auto claim-all triggered on mailbox open — no "NEW" tags remain after viewing.
- Fixed
MailboxBtntext glitch — removed text override, replaced withMailBadgeLabel overlay in top-right corner of button. - Fixed
mark_as_read()inMailManager— now persistsread_idsto server via newsave_mail_stateRPC. - Admin Panel: Announcement tab
Target Userfield now accepts username, display name, or user_id with Find button for resolution. - Admin Panel: New Mail Manager tab listing all global and personal sent mails with Type, Title, Sender, Start, Expires, Status columns.
- Admin Panel: Edit dialog for mails uses
date_picker.tscnfor end date and supports reassigning recipient (username lookup + move). - Admin Panel: End Now button sets
end_dateto current timestamp; Delete permanently removes mail from server storage. - Server: Added
admin_list_mailRPC — paginates allinbox/personalstorage objects across all users viastorageList. - Server: Added
admin_update_mailRPC — extract-then-reinsert pattern supports field edits and cross-user mail movement. - Server: Added
admin_delete_mail_serverRPC — hard-removes mail from global config or personal inbox storage. - Server: Added
save_mail_stateRPC — merges clientread_idsinto serverinbox/statewithout clobbering claimed/deleted IDs.
[2.3.1] — 2026-05-11
- Integrated DM tab system directly into the lobby chatbox — DMs now open as closeable tabs inside ChatPanel instead of a fullscreen overlay.
- Removed static DMTabBtn; DM tabs are dynamically created per friend using a scene-local DMTabTemplate with (X) close button.
- Added
@usernameauto-suggest popup in ChatInput — typing@shows a live-filtered friend list; tap/click to select and format as@username (message). - FriendSuggestPanel moved to scene node (editable in editor) with touch/mobile support via item_selected signal.
- DM messages render in the shared GlobalChat RichTextLabel, switched by active tab context.
- Incoming DMs from friends automatically create a new tab without opening the Social Panel.
- Fixed self-DM tab creation — outgoing DM echo no longer triggers a tab for own username.
- Chat timestamps updated to
[ DD-MM-YY - HH:MM ]format; DM history loaded oldest-to-newest (oldest at top, newest at bottom). - Added
/clearcommand — clears DM chat history locally; on Global tab, only admin/owner/moderator can use it. - Admin
/clearon Global also callsadmin_clear_global_chatRPC to permanently delete persisted messages server-side. - Added
admin_clear_global_chatRPC intekton_admin.js— paginates and removes all messages from the channel. - Fixed
theme_override_colorsproperty error on dynamically created Button nodes — replaced withadd_theme_color_override().
[2.3.0] — 2026-05-06
- Fixed boot screen crash caused by
TextureButtoncast asButtonreturning nil (as Button→as BaseButton). - Routed boot screen button
.textassignments through childLabelnodes forTextureButtoncompatibility. - Changed changelog bullet list to BBCode
[table=2]layout for proper hanging indent on wrapped lines. - Fixed changelog
RichTextLabelscroll by removingfit_content = trueflag. - Synced player avatar, username, leaderboard score, and rank to the Room List panel header on open.
- Restored preserved hosting logic — wired Play tab
FreeModeBtnandStopNGoBtnto host room with correct game mode. - Wired Room tab
RoomFreeModeBtnandRoomStopNGoBtnto filter room list by game mode (toggle). - Encoded game mode as
[Mode] Room NNNNprefix in room name for LAN room discovery filtering. - Added
game_modefield to room dictionaries acrossLobbyManager(Nakama + LAN) andNakamaManagermatch listing.
[2.2.1] — 2026-05-01
- Updated daily login logic to support multiple reward types (star, gold, fragments).
- Fixed leaderboard UI to dynamically update with player changes.
- Added full backend Nakama support for daily login claiming and administration.
- Refactored Admin Panel to include a bordered 30-day grid layout with January-December selection.
[2.2.0] — 2026-04-30
- Redesigned Social Panel with a 3-tab layout (Search, Requests, Friends) to fix UI overlap issues.
- Fixed an issue where offline friend requests were not being delivered properly.
- Added persistent storage for Direct Messages, loading previous chat history when opening a DM.
- Improved real-time Nakama socket listening to allow incoming DMs to be received instantly even when the chat tab is closed.
- Fixed account state pollution where friend data leaked when switching users without restarting the client.
- Corrected server-side RPCs for Nakama
send_friend_requestensuring persistent push notifications. - Re-themed Social Panel DM UI to use dark brown fonts for high-contrast readability.
[2.1.9] — 2026-04-29
- Added friend system with friend list, direct messaging, and lobby invitations
- Improved Steam login support
- Added Social Panel with Friends, Global Chat, and Direct Message tabs
- Added ability to add/remove friends from lobby player slots
- Added Invite Friends button to lobby
- Added lobby invite notifications
- Fixed account type display in profile panel
[2.1.8] — 2026-04-24
- Optimized network synchronization with deterministic tile slots and granular board sync
- Removed lag-sensitive server adjacency checks to fix "disappearing tiles" on high-latency connections
- Fixed "No multiplayer peer assigned" crash during host disconnection and cleanup
- Finalized AP system removal, transitioning to a fully real-time authoritative model
- Restored bot mission completion logic
- Stabilized Nakama socket cleanup during match-to-lobby transitions
- Fixed Tekton not rotating toward spawning direction when throwing tiles
- Fixed purple powerup tiles spawning on top of existing layer 1 tiles
- Added animation delay to tile spawning to match Tekton throw animation timing
- Implemented 1-tile perimeter buffer on all spawn areas to prevent edge spawning and stuck gaps
- Tekton NPCs now spawn exclusively in corner zones; players spawn in middle zones
- Fixed outline shader being lost when applying skin material overrides
- Added Unstuck button to pause menu to teleport stuck players to a safe area
[2.1.7] — 2026-04-24
- Upgraded Gacha interface with dynamic CSGO-style sequential reveal animations
- Added an animation skip button for faster 10x multi-pulls
- Fixed a bug where opening the Craft menu from Gacha would show an empty screen
- Stabilized login flow by resetting connection states after failed auto-logins
[2.1.6] — 2026-04-24
- Added Gacha system with Star and Gold banners (1x & 10x pulls)
- Fragment Craft system — collect drops to craft exclusive skins
- Fixed boot screen stuck on "Checking versions..."