Skip to main content

Changelog - v1.7.0 - Forge & Foresight

A content and quality update built around the Forge (Epic equipment rarity + Blacksmith upgrades), Weapon Disciplines (Phase 2 of the discipline system), a new Snooze & Reopen flow for events, and a deep auth/performance/admin refactor pass — plus a long list of polish and bug fixes.

Epic Equipment & The Forge

  • New Epic rarity for market weapons with its own quality profile, drop pool and combat effects
  • Epic items highlighted in the sidebar/inventory; equipment now sorted by rarity
  • Dedicated DD Epic asset cache with an onError fallback chain for missing artwork
  • Shared _shared/itemDefinitions.ts as the single source of truth for both market generators
  • Heavy Axe renamed to Falcata; Victory Wreath image fixed
  • New Blacksmith Upgrade Panel — spend gold to upgrade items into a higher rarity tier

Weapon Disciplines — Disciplines Phase 2

  • Weapon-specific discipline trees with their own passives
  • New combat handlers: Opening Cut, Killer Rhythm, Riposte Instinct, Arena Executioner, Arena Return Bonus, Last Stand, Icon of Ludus, and Arena Composure (QTE)
  • Shared damage-pool helper, tactical damage pool, and tactical-aggression gating for cleaner round resolution
  • Auto-combat path now correctly reads discipline fields; defender path emits RLP and achievement events
  • New Discipline Tutorial with modal trigger and corrected z-index / click-flow targeting
  • Player respec RPC hardened with server-side ownership and budget validation

Events — Snooze & Reopen

  • New Snooze & Reopen flow lets you defer events instead of losing them on auto-deny
  • Polished event display logic, unified effect previews
  • Trigger evaluator bug fixed (no more silent auto-ignore on the "Patent" branch)
  • Gold-cost events surface "insufficient funds" cleanly on the server side

Performance & Caching

  • SWR-style cache patch across the data layer; auth caching layers refactored
  • Roster fetches coalesced — fewer duplicated round-trips on initial load
  • New withTimeout helper for robust edge-function calls
  • Heartbeat system for roster freshness (code path ready, default off)
  • Reduced diagnostic logging, discipline snapshot cache, targeted cache invalidations
  • Auth flow hardened: login redirect bug fixed; empty-cache returns no longer mask real errors

Admin Backend

  • Slimmed-down Messages overview: pagination + system-generated threads hidden — admin-authored threads only, ~1374 → 50 per page, backed by an aggregated DB view
  • Replay filter UI in the Replay Manager
  • Sound Studio and Achievement Manager polish

UI / UX Polish

  • Tooltip cards made click-permeable; popover→modal conversions where overlap was a problem
  • Discipline modal: outside-click close + z-index layering fixed
  • Subtle glow effects for buttons/menus, smoother modal close animation
  • Updated default background; asset images now render immediately (no pop-in)
  • New Help / Wiki link in the sidebar
  • Fame icon replaces Trophy icon where semantically correct

Bug Fixes

  • Gladiator portrait reset now restores the original market portrait instead of jumping to a random hash fallback (new original_avatar_url column + backfill, applied for starter and purchased gladiators)
  • Ludus name duplication ("House House Of …") cleaned up in the database — one-time correction for affected accounts
  • Market duplicates: 18-instead-of-9 race condition fully eliminated
  • Milestone self-heal bug fixed (missed milestones now reapply on page load)
  • Prestige cap UI bug, Invest button dialog, Respec z-index, tutorial overlay targets all corrected
  • Opponent HP in replays initialized correctly; opponent avatar fixed in fight history
  • Champion healing corrected; injury & bleeding-hazard calculation hardened
  • RPC token collision fix prevents stale tokens from overwriting newer ones