Files
tekton/CHANGELOG_DRAFT.md
T
adtpdn 7380161743 feat: add Candy Cannon Survival game mode with collectible tiles
Version bump to 2.3.6. New game mode features 20×20 arena with central cannon obstacle, three escalating phases (Open Arena, Route Pressure, Survival), and collectible tiles (Hearts, Diamonds, Stars, Coins) with pattern-matching missions. Players dodge candy volleys while completing collection goals.

Updated export paths and version strings across all platforms (Windows, Android, Web, Linux).
2026-05-24 06:56:57 +08:00

11 KiB
Raw Blame History

[2.3.6] — 2026-05-22

  • 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!

[2.3.5] — 2026-05-22

  • Refactored lobby.gd into 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.gd session encryption — replaced static key with device-specific key derived from OS.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) in gacha_panel.gd to support server-side gacha rolls.
  • Removed dummy wallet seeding from gacha_panel.gd — wallet balances now sourced exclusively from server.
  • Added store_type field to currency purchase payload for IAP receipt routing.
  • Added server-side IAP receipt validation in economy.lua with Google Play, Apple, and test-mode receipt support.
  • Registered gacha Lua module in main.lua server entrypoint.
  • Cleaned up stub methods (achievements, leaderboard, shop wrappers) from backend_service.gd.
  • Fixed featured_banners type safety in gacha_manager.gd — guards against non-array server responses.
  • Removed stale tiles_armagedon_a1.res from project root (asset relocated to assets/models/meshes/).

[2.3.4] — 2026-05-15

  • Modernized GachaPanel and FragmentCraftPanel UI 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 GachaPanel to display both Star and Gold balances simultaneously for better resource management.
  • Introduced separate UI panels in FragmentCraftPanel to display Common, Uncommon, and Rare fragment quantities individually.
  • Refactored FragmentCraftPanel action buttons to use the Tekton BtnDark style with consistent padding and corner radii.
  • Fixed nearly invisible "Rates" text in Gacha by changing font color from dark brown to light grey.
  • Updated ProfilePanel category 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 StyleBoxFlat instantiation for tabs in GachaPanel and ProfilePanel to 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 RichTextLabel with 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 in shop_panel.gd to 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.tscn to 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 MailboxBtn text glitch — removed text override, replaced with MailBadge Label overlay in top-right corner of button.
  • Fixed mark_as_read() in MailManager — now persists read_ids to server via new save_mail_state RPC.
  • Admin Panel: Announcement tab Target User field 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.tscn for end date and supports reassigning recipient (username lookup + move).
  • Admin Panel: End Now button sets end_date to current timestamp; Delete permanently removes mail from server storage.
  • Server: Added admin_list_mail RPC — paginates all inbox/personal storage objects across all users via storageList.
  • Server: Added admin_update_mail RPC — extract-then-reinsert pattern supports field edits and cross-user mail movement.
  • Server: Added admin_delete_mail_server RPC — hard-removes mail from global config or personal inbox storage.
  • Server: Added save_mail_state RPC — merges client read_ids into server inbox/state without 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 @username auto-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 /clear command — clears DM chat history locally; on Global tab, only admin/owner/moderator can use it.
  • Admin /clear on Global also calls admin_clear_global_chat RPC to permanently delete persisted messages server-side.
  • Added admin_clear_global_chat RPC in tekton_admin.js — paginates and removes all messages from the channel.
  • Fixed theme_override_colors property error on dynamically created Button nodes — replaced with add_theme_color_override().

[2.3.0] — 2026-05-06

  • Fixed boot screen crash caused by TextureButton cast as Button returning nil (as Buttonas BaseButton).
  • Routed boot screen button .text assignments through child Label nodes for TextureButton compatibility.
  • Changed changelog bullet list to BBCode [table=2] layout for proper hanging indent on wrapped lines.
  • Fixed changelog RichTextLabel scroll by removing fit_content = true flag.
  • Synced player avatar, username, leaderboard score, and rank to the Room List panel header on open.
  • Restored preserved hosting logic — wired Play tab FreeModeBtn and StopNGoBtn to host room with correct game mode.
  • Wired Room tab RoomFreeModeBtn and RoomStopNGoBtn to filter room list by game mode (toggle).
  • Encoded game mode as [Mode] Room NNNN prefix in room name for LAN room discovery filtering.
  • Added game_mode field to room dictionaries across LobbyManager (Nakama + LAN) and NakamaManager match 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_request ensuring 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..."