Skip to content

Patch Notes Page 88

  • Improved Discord join flow feedback and connect gating.
  • Discord activity join callbacks now only transition to the Lobby view after a successful direct-connect handshake start.
  • Added a Join menu inline error surface for failed/rejected connect attempts, including host rejection reasons.
  • Added multiplayer rejection-state observability in NetSession.
  • Added consumeLastJoinError() so game UI can react to host-side rejections instead of relying on logs only.
  • Added automated network rejection regression coverage.
  • Added tests/NetSessionJoinTests.cpp and net_session_join_tests target.
  • Test cases now assert host rejection behavior for build mismatch, lobby-full, and match-in-progress joins.
  • Expanded Discord integration into activity join-token and invite foundations.
  • Added game/discord/DiscordJoinService.* and data-driven rules in Discord runtime configuration.json` for join-token generation/validation (prefix, TTL, skew, build-match policy, and join eligibility gates).
  • Added Discord activity-join callback plumbing in engine/platform/discord/DiscordRuntime.* so join secrets are captured from Discord and surfaced to the game layer.
  • Wired Discord join callbacks in GameRoot to route accepted tokens into existing direct-connect flow, with graceful rejection logs for invalid/expired/mismatched tokens.
  • Hardened multiplayer join safety checks in NetSession.
  • Host now rejects join attempts when lobby is full, match is already in progress, password is invalid, or client build does not match.
  • Client now handles host rejections cleanly via Welcome metadata (accepted + rejectReason) instead of silently retrying forever.
  • Added Discord join automated coverage.
  • Added tests/DiscordJoinServiceTests.cpp and CMake target discord_join_tests.
  • Added Discord identity bootstrap (Milestone 1 foundation).
  • Added game/discord/DiscordIdentityService.* to map runtime state into linked/unlinked identity diagnostics.
  • Extended engine/platform/discord/DiscordRuntime.* with current-user identity caching and Connected Games settings hooks.
  • Added menu-safe Discord status surfaces.
  • Main, Host, Join, and Lobby menus now display live Discord state text (for example Off/Connecting/Linked/Link Required).
  • Status details are exposed via UI element tooltips and continue to degrade gracefully when Discord is unavailable.
  • Added automated coverage for identity state mapping.
  • Added tests/DiscordIdentityServiceTests.cpp and discord_identity_tests CMake target.
  • Started Discord Social SDK foundation integration (Milestone 0).
  • Added optional engine-level Discord runtime adapter (engine/platform/discord/DiscordRuntime.*) with init, per-frame callback pumping, status logging, and shutdown handling.
  • Wired Discord lifecycle into game startup/update/shutdown with graceful fallback when disabled or unavailable.
  • Added build-time Discord SDK wiring and runtime staging.
  • Added CMake option ZETA_ENABLE_DISCORD (default OFF) and local SDK include/link detection for discord_social_sdk.
  • Windows builds now stage discord_partner_sdk.dll next to the game executable when Discord integration is enabled.
  • Added initial Discord runtime config and docs.
  • Added Discord runtime configuration.json` for data-driven enablement, app id, connect policy, and SDK log settings.
  • Updated README and GAME_SPEC with Discord foundation setup notes.
  • Fixed a main-menu idle crash caused by dynamic enemy spawns.
  • Stabilized ECS component iteration when systems spawn or destroy entities during update loops.
  • Prevented Dragon encounter and special-enemy runtime spawns from invalidating active ECS iteration state.
  • Hardened Dragon encounter protection against Kaboom powerups.
  • Kaboom no longer drops from enemy powerup rolls while a Dragon encounter is active.
  • Kaboom detonation now explicitly excludes Dragon and Dragon pylon entities as a fail-safe.
  • Improved Dragon pylon combat readability.
  • Pylon world health/shield bars are now drawn above the full pylon asset instead of only the lower base.
  • Expanded Dragon encounter regression coverage.
  • Added automated flame-breath burn verification in enemy_special_tests.
  • Added minimap custom-blip color verification in new minimap_hud_tests (covers blue objective blip rendering path used by Dragon pylons).
  • Improved test target wiring for encounter scope validation.
  • Added tests/MiniMapHUDTests.cpp and registered minimap_hud_tests in CMakeLists.txt.
  • Extended tests/EnemySpecialSystemTests.cpp with explicit Dragon fire-breath burn behavior checks.
  • Added the Dragon encounter objective phase.
  • Dragon phase now spawns a persistent Dragon Gate entrance and a scripted emerge path.
  • Spawned 4 Dragon pylons as objective entities with split lower/upper visuals and solid lower collision.
  • Dragon health floor is now unlocked in 25% steps per destroyed pylon (100/75/50/25/0).
  • Expanded encounter combat behavior and support roles.
  • Dragon Gate now periodically summons goblin/orc battalions and healer variants.
  • Added goblin/orc healer archetypes with support AI (Dragon-first heal priority, ally fallback, avoid-player movement).
  • Added pylon defender guard behavior (orbit while idle, engage when players approach).
  • Dragon now heals while disengaging in aerial phases and Dragon flame breath now applies burn DoT on hero hits.
  • Improved encounter readability and HUD signaling.
  • Added always-front world-sprite slices for gate/pylon upper sections.
  • Minimap now supports per-blip color data and renders pylons as blue objective markers.
  • Pylon kills now grant XP only and skip loot/copper/item drop paths.
  • Added automated regression coverage for Dragon encounter logic.
  • Extended dragon_immunity_tests for Dragon health-floor clamp progression checks.
  • Added enemy_special_tests covering Dragon encounter gate lifecycle and healer target priority.