v0.6.0.1 upgrades Raylib-cs, introduces the equipment-appearance/cosmetic foundation, and delivers a broad combat VFX, readability and environmental-atmosphere overhaul. Groove Cascade gains a textured neon thunderhead; venues gain lighting and weather; Woodshed gains randomized wind, rain, sunshine and night transitions. Backyard Party receives gentler low-Amp encounters, safer wave/portal recovery and boss tuning. Enemy movement, loot automation and several UI flows are improved. More cosmetic item appearances and animation coverage will arrive in future patches.
These notes cover the complete net change since the last published v0.5.6.6 installer, including work previously described as unreleased. The v0.5.6.6 loot-automation and Studio-minigame features remain available; they are not being presented as new in this release.
Hotfix (2026-11-09)
- The v0.6.0.1 installer was rebuilt in place with these fixes; the version number is unchanged.
- Enemy AI: enemies again close in and attack. Movement at high frame rates or slow speeds was misread as blocked, causing constant sidesteps (fluttering), and per-enemy AI state such as spawn anchors leaked into new runs because entity IDs restart, sending new enemies back toward stale positions.
- Charmed enemies now have a pink health bar so allies are easy to tell apart from hostiles.
- Floating equipped-relic icons are restored for Head, Body, Gloves, Legs, Boots, Instrument and Offhand while fitted cosmetic coverage is incomplete.
Engine and Rendering Upgrade
- Upgrade Raylib-cs from 7.0.2 to 8.1.0, using its bundled native raylib 6.0 runtime. The game continues to target .NET 10.
- Upgrade the active game and art-generation tool references together.
- Preserve existing gradient-circle rendering through an adapter for the updated Raylib API, without changing centers, radii or colors.
- Keep the shipping dependency pinned to 8.1.0; older-binding overrides are confined to profiling A/B builds.
- Add visual-parity, clean-launch, hardware and venue-soak verification tools, alongside documented upgrade and performance reports.
- Automated and local rendering checks are not a claim that every physical controller, display-mode transition or clean Windows installation has been manually verified.
Equipment Appearances and Cosmetics
- Introduce fitted equipment overlays for the local Drummer and Guitarist, resolved from the actual equipped item's registered identity rather than its name, rarity or borrowed relic powers.
- The framework supports Head, Body, Gloves, Legs, Boots, Instrument and Offhand, with ordered layers, per-animation/direction coverage, standard/HD sheets and clean-base replacement support.
- Include the initial Drummer Marching Harness body appearance for idle in standard and HD. This is the start of the cosmetic item system, not a fully reskinned item catalog: more items and animation coverage are planned for future patches.
- Gear without a registered appearance retains its existing visuals. Appearances do not add item stats, change combat rules or introduce a separate paid/transmog system.
- Add the Gear Studio import/inspection workflow, exact relic/set/base bindings, approved export validation, incremental installation and equipment-rendering tests.
- Floating equipped-relic icons remain visible in all slots while cosmetic coverage is incomplete (restored in the hotfix below).
- Current multiplayer limitation: remote players retain the existing visual path. Seven-slot fitted-appearance synchronization is not included; network protocol remains 4.6.
Combat VFX and Readability Overhaul
- Introduce a reusable soft-material atlas for feathered halos, rings, pools, streaks and other decorative layers, keeping effects batched rather than adding effect entities or per-frame texture generation.
- Improve damage-number presentation with magnitude-aware sizing, red emphasis, dimensional shadow/glow treatment and clearer fade behavior while retaining pooled combat-text aggregation.
- Improve ground-item labels and valuable-loot presentation; align label measurement, rendering and hit areas so visual polish does not change pickup ownership or click targets.
- Replace primary oval actor shadows with sprite-alpha silhouettes and soft contact shadows. Shadows are larger, darker and angled southwest, with a restrained secondary cast responding to nearby environmental lights.
- Keep registered equipment composition in the local player's silhouette where supported.
- Improve enemy status accents, player/follower/relic effects, surface response, HUD readiness feedback and related selection/interaction presentation while preserving established palettes and telegraph meaning.
- Enemy names are larger and more legible, inset directly over their health bars on one line. Normal, champion, elite and boss styling is tier-colored, with ability/mechanic badges.
- Ground amp tubes are slightly larger visually; their gameplay behavior is unchanged.
- Effects Intensity offers Full, Balanced and Reduced presentation. Lower settings reduce decorative particles/glow and restrain motion or flashes without changing gameplay timers, hitboxes, damage, ranges, targeting or RNG.
- Retain the development-only legacy/enhanced A/B path for comparison.
Groove Cascade Thunderhead
- Replace the old fluctuating purple ellipse stack with an irregular, rounded thunderhead made of overlapping feathered billows and a continuous translucent body.
- Add cloud density, textured illuminated ribs, deep-purple shading, localized neon glow and restrained forked intracloud lightning.
- Bake smaller, smoothly blended cyan, electric-blue, violet and dark-purple patches into each billow instead of applying one top-to-bottom gradient across the whole cloud.
- Preserve transparency, filled interior coverage and softly rounded corners. Alternate/mirrored texture masks reduce repetition.
- Keep the existing strike bolts, cloud anchor, ability radius, lifetime, targeting, timing and damage unchanged.
- Reuse four previously unused cells in the existing atlas, without increasing atlas dimensions, adding new cloud batches or generating textures in the draw loop.
Environmental Lighting and Weather
- Add a persisted Environmental Effects option in Video Options, enabled by default and independent of the existing intensity selection.
- The Rusty Nail: warm incandescent light pools, dim lighting and smoky haze.
- Backyard Party outdoors: mellow, slowly varying wind with leaves/debris, dust and drifting cloud shadows. Wind uses integrated travel so particles do not jump or reverse when the breeze changes.
- Backyard kitchen: fluorescent lighting and dust that wafts on layered convection sways, with occasional soft glints.
- City Streets: more pronounced cycling rain with sheets, drops, larger splash rings and crown droplets. Street-light pools remain off on locked tiles and fade in with revealed-room fog.
- Midnight Rave: moving multicolored floodlights, floor pools and haze.
- Woodshed: begin with mellow leaves/debris, then randomly choose a different state among wind, rain, sunny weather and night. Each state holds for 45-90 seconds of active atmosphere time and blends smoothly over 10-18 seconds; consecutive identical states are excluded.
- Sunny Woodshed weather adds warm shafts and sparse drifting motes; night introduces cool moonlight, stronger floor dimming and a smaller clear player-light radius.
- Woodshed rain intensity follows its own weather blend rather than the separate City Streets rain cycle.
- Keep ambient floor dimming and the soft player-light area below actors and gameplay telegraphs; foreground particles remain below nameplates, combat text and HUD.
- Scale decorative budgets with Effects Intensity. The weather cycle is presentation-only, uses hashed timing rather than gameplay RNG, and adds no simulation/weather mechanics.
Balance and Encounter Flow
- Backyard Party yard, kitchen and side-yard wave counts scale with Amp: 60% of the original enemy budget at Amp 1, then 70%, 80%, 90% and 100% at Amps 2-5. Amp 5 and above retain the original counts, subject to whole-enemy rounding.
- Lower the basic ranged-projectile damage multiplier from 2.0 to 1.8, a 10% reduction to those attacks relative to the prior contract.
- Backyard Party venue bosses deal 25% less damage across basic attacks, specials and latch damage.
- The experimental blanket 25% reduction for every boss was reverted. It is not part of this release; the final reduction is Backyard Party-specific.
- Dying or retreating through a portal mid-wave rewinds the active Backyard Party wave and clears active enemies/pending spawns. Wave indices remain within their stage limits.
- Enemy movement uses turn-rate-limited steering, committed detours, a stuck hold rather than grinding into geometry, stable blocked facing, patrol arrival pauses and committed returns home, with slower orbit flips.
Loot Automation and Quality of Life
- Auto Equip Higher Quality can upgrade Common through Epic gear to a Relic or Set drop. Equipped Relic and Set items remain protected and never automatically replace one another.
- Higher-rarity auto-equips are not blocked merely because an individual combat stat or weapon-damage value decreases; this corrects the older v0.5.6.6 behavior description.
- Preserve locked, quest, preferred-stash, mastered, crafted, borrowed-power and socketed-item protections, socket-capacity checks, slot requirements and CD-effect compatibility. Replaced gear goes to inventory.
- Existing Auto-Pickup and Auto Breakdown behavior remains available.
- Increase the Studio landmark-map Pinball and Setlist Cards images for easier recognition.
Bug Fixes and UI
- Re-anchor the town-portal checkpoint when entering Backyard kitchen/side-yard rooms.
- Validate resumed positions against current room collision so death/portal recovery does not place the player on unwalkable furniture.
- Give New Game confirmation options more space and clearer Start Fresh/Keep framing.
- Fit the Workbench crafting preview frame to its item card instead of stretching it to the full screen height.
- Correct Video Options mouse hit testing for the expanded 13-row layout.
- Fix the ground-label font/measurement contract before increasing label presentation.
- Prevent environmental street lamps from lighting still-locked City Streets tiles.
- Refine wind, kitchen dust, actor shadow visibility and single-line enemy health/name presentation following playtesting.
Telemetry, Saves and Distribution
- Release builds and build_and_package.ps1 keep production telemetry enabled by default. Player opt-in/consent controls remain unchanged; this release does not force enrollment or enable profiling/local-sink modes.
- Production builds require a clean committed Git worktree. The packaging script derives v0.6.0.1 from Game.csproj, runs Release tests, validates the candidate payload/identity/features, and names the installer CygnalARPGSetup_v0.6.0.1.exe.
- These notes are published with the release and on the website; Markdown files are intentionally excluded from the installer payload by the packaging content contract.
- Save schema remains 2; multiplayer protocol remains 4.6. No intentional save migration or protocol change is introduced by this release.
- The website download and the stable update manifest publish the v0.6.0.1 installer through a direct Dropbox link (dl=1) with its version, publication date and SHA-256. The hash was computed from the bytes downloaded through that link and matches the locally packaged artifact.
- The installer is unsigned (no code-signing credentials are configured), consistent with previous demo releases.
- Historical release notes, dated audits and the original VFX implementation prompt retain their original version references as provenance.
Validation
- Focused cloud and Woodshed rendering/regression checks passed during implementation; offscreen renders were checked over actual game floor art.
- Full Debug suite: 2,399 passed, 0 failed, 11 opt-in tests skipped; solution build had zero warnings/errors.
- Clean production Release suite: 2,400 passed, 0 failed, 11 opt-in tests skipped; solution build had zero warnings/errors. The additional production-only test confirmed the compiled stable telemetry identity, matching assembly/file/content versions and a clean 40-character build commit.
- Release output reports FileVersion 0.6.0.1. Production telemetry remained enabled throughout this clean-build validation; consent behavior was not overridden.
- Website API type-check and production static/CSP build passed. The website retains one pre-existing next/no-img-element warning on the enemies page.
- The stable API response and rendered download page were checked to ensure the old installer remains labeled v0.5.6.6 with its unchanged URL/hash/date while v0.6.0.1 is pending. Website catalogs were regenerated from committed v0.6.0.1 source and passed all schema/reference checks; generated snapshots remain ignored build outputs, as before.
- Packaging validation fixtures passed all 33 assertions; the build/package script parsed without syntax errors.
- Warmed local cloud and Woodshed fixtures showed zero per-frame managed allocations. These isolated checks are not a guarantee of dense-combat frame-time parity.
- Packaged candidate 8a31e87570f5-78ef9a15a374a7ff-clean: unfiltered Release suite 2,411 tests, 2,400 passed, 0 failed, 11 opt-in skipped; production telemetry enabled; clean worktree.
- Hotfix packaged candidate 77ce4d989a19-5a6bbf3699fe7343-clean: Release suite 2,431 passed, 0 failed, 11 opt-in skipped; clean worktree. This installer replaced the original v0.6.0.1 download in place.- Production Release build and complete release-test results are recorded by the release-preparation commit and packaging reports. Hardware-dependent tests remain opt-in and must not be interpreted as passed when skipped.
Source Commit History Since the Previous Published Installer
- 7a01144 - Add equipment appearance overlays and gear studio.
- d2eb5d7 - Checkpoint before Backyard Party playtest fixes (checkpoint commit; no additional net feature claim).
- 2392dff - Backyard Party: Amp-scaled wave counts, death/portal wave reset, relic/set auto-equip upgrades.
- 22cfe77 - Docs/website audit to v0.5.6.6; enlarge Studio landmark images.
- 4bc3af1 - Upgrade Raylib-cs to 8.1.0 with gradient-circle adapter and validation reports.
- f433c83 - Add automated visual parity, hardware, clean-launch, and venue soak tests.
- 25beb5b - Fix pre-release playtest issues.
- 5305727 - Apply 25% boss damage reduction to all bosses (subsequently reverted).
- cdf35d1 - Revert "Apply 25% boss damage reduction to all bosses".
- 0af6a97 - VFX polish: soft materials, damage text, labels, statuses, silhouette shadows, relic/follower FX, surface light, HUD finish.
- 50d381d - VFX polish: SW shadows, tiered nameplates, env atmosphere.
- f5b866c - VFX: mellow wind, wafting kitchen dust, heavier rain, unlit locked tiles, bigger shadows with light-cast secondary, single-line nameplates.
- 84313a1 - release: prepare v0.6.0.1 with complete VFX and weather polish. Includes all subsequent pending Groove Cascade/cloud-color refinements, randomized Woodshed weather, tests, the original implementation prompt, version updates, release documentation and pending-installer website handling.
- The follow-up validation commit records the complete production test results and verified catalog/distribution state without changing the gameplay source validated above.
- 5afc672 - fix(packaging): stop shipping release notes Markdown in the payload.
- 8a31e87 - fix(packaging): account for explicitly skipped Release tests (original packaged installer source).
- 77ce4d9 - hotfix: enemy engagement AI, pink charmed lifebars, restored floating item icons (hotfix installer source).
- Publication commit - publish the v0.6.0.1 installer link and SHA-256 on the website and stable update manifest.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.6.6 improves Studio minigames, item readability and looting. New Auto-Pickup, Auto Breakdown and Auto Equip options make collecting and using loot much smoother, especially for new players. Setlist Cards (hideout poker) gains a Scoring Info pane plus rebuilt Hand Submitted and Final Payout screens that show full reward art. Battle of the Bands pinball gets the same treatment, along with a dot-matrix scoreboard, cabinet-styled controls, Fire and Lightning side-bank bonuses that stack, clearer on-table cues and better jackpot fireworks. Item cards now highlight Acclivity additions and show their sources, and inventory hints are easier to read. Song Stones now clearly say they are socketable. Online leaderboard submissions are more reliable.
Loot Quality of Life
- Auto-Pickup (new option, on by default): walking near loot pulls in every item and material that the Loot Filter does not hide. The HUD Pickup slot shows Auto while it is on. Turn it off to pick up gear manually with your Pickup binding (G by default) or by clicking item labels; the slot then shows that binding. Materials are always collected automatically, and gear you dropped yourself is never pulled back in.
- Auto Breakdown (new Loot Filter column): each item type now has a Hide checkbox and an Auto Breakdown checkbox. When a visible item type has Auto Breakdown checked, gear of that type is broken down into materials as it is vacuumed up. A floating +N with a small material icon shows what you gained; hover the icon for the material name.
- Auto Breakdown is greyed out while a row is hidden, because hidden items are never picked up. Hiding a row clears its Auto Breakdown setting.
- Relic, Set, Epic, locked and preferred-stash gear is never auto-broken down. Items you pick up with a G tap or a label click are never broken down.
- Use Left/Right to switch between the Hide and Auto Breakdown columns with a keyboard or controller, or click either checkbox.
- Auto Equip (new option, on by default): picked-up gear you can use goes straight onto the paper doll if that slot is empty. Class and level requirements still apply. Auto Equip takes priority over Auto Breakdown.
- Auto Equip Higher Quality (new option, off by default): picking up a higher-rarity item replaces the equipped one in that slot, for example a Relic replacing a Legendary weapon. The swap only happens if no main combat stat or weapon damage is lost. Equipped Relic, Set, locked, mastered, crafted or socketed gear is never replaced, and Set drops do not trigger swaps. The replaced item goes to your inventory.
- These options work in multiplayer shared-loot sessions, and each pickup is applied only once.
- The tutorial's pickup step now has you walk over the item, and explains how to turn Auto-Pickup off for manual pickup.
Setlist Cards (Hideout Poker)
- New SCORING INFO button in the table's header button strip, left of How To Play. It opens a wide, read-only pane with larger fonts, shorter text and color coding (points green, chips gold, tickets cyan, chance purple, warnings coral), divided into sections with a scrollbar. Its preview uses the same scoring rules as real play, so the numbers match what you will score.
- The Hand Submitted window was rebuilt in the same style. It shows:
- Round progress and clear status, plus any overkill.
- The full score breakdown: base hand, card values, saved discards, Crowd Warmup, Amped Hands, chips x mult, and Lucky Break x2.
- Which perks applied or triggered, and the cards you submitted.
- Perk prompts only appear when a perk draft is actually offered, so they no longer appear after the 5th perk. When a perk is offered, a prominent NEW PERK! banner calls it out.
- The Final Payout window was rebuilt. It shows the payout breakdown (run tickets, Cashout Boost, daily cap), rounds cleared, top hands and each perk's impact.
- Reward galleries show each earned reward's full-size art in a pulsing gold frame with inventory-style lightning borders. Hover a reward to open the same item preview as in the inventory (for example, a Song Stone's exact roll and level).
- Controller header navigation order: Scoring Info -> How To Play -> Perk List -> Cashier.
Battle of the Bands Pinball
- New PLAY button in the cabinet's top button strip, so you can start a game with a click as well as with Enter. A SCORING INFO button opens a side panel showing:
- Active jackpot rewards and the reward icons you have earned.
- Scoring rules, ball saves and multipliers.
- Side-bank progress and bonus timers.
- Stereo Sweep count.
- The top controls are now evenly spaced, slightly shorter and inset inside the cabinet frame. They have metal bezels and glowing dot-matrix labels, so they look like part of the machine.
- The scoreboard is now a realistic amber dot-matrix display inset within the screen bezel. Score, ball, total multiplier, jackpot and saves no longer overlap or spill past the frame.
- The Game Over window now matches poker's payout window. It shows the scoring breakdown by source, Stage Ticket breakdown, rewards earned with full-size art and hover previews, and Stage Tickets.
- Side banks:
- Each insert glows in its own color.
- Lighting all four left inserts starts a 20-second Fire bonus: all points x2, flaming bank borders, and a burning ball with a fire trail.
- Lighting all four right inserts starts a 20-second Lightning bonus: all points x2, crackling lightning borders, and an electrified ball with a lightning-bolt trail.
- Both bonuses can run at once for x4 with both effects. They apply on top of combo/powerup multipliers, for up to x16 in total.
- Completed inserts stay lit until the bonus expires. Losing a ball ends active bank bonuses, but a ball save keeps them, and opening cabinet menus pauses their timers.
- Stereo Sweep (clearing both banks on the same ball) now plays an on-table cue instead of a text banner. Left and right waveforms sweep across the table and meet in a bright center pulse, and every bank insert flashes and arcs toward it.
- Mechanics that were hard to read now have visual cues:
- Powerup inserts are labeled X2, JP+ or SAVE, and show EMPTY when you have no saves left. A dim label means the timed gate is closed.
- Activating a powerup shows brief on-table feedback.
- A glowing beacon links each bonus jackpot icon to its target. Icons that share a target are spread apart so they don't overlap.
- Collecting a reward shows its name (for example "+1 <material>" or "+N Stage Tickets").
- Jackpot reward fireworks are softer, brighter and glowier: a bloom burst plus glowing sparks with trails that slow and fall gently. Charged jackpots now bloom where they land instead of flashing the whole screen.
- The Fire and Lightning activation banners were removed; the bank and ball effects already show the bonus.
- The table collision map was cleaned up and the side-bank collision pieces were restored, so side banks can be completed again. Fixed the fourth bank hit not registering a completion.
- Fixed the ball sometimes sticking to a flipper during Fire or Lightning bonuses. Flippers now update alongside ball physics, and the bonus effects are less expensive to render.
- How To Play text and the player wiki were updated for the new rules and indicators.
Item Cards and Inventory
- Stat labels and values are color-coded to match their icons, making different bonuses easier to distinguish.
- Acclivity-added stats and borrowed relic abilities appear in red with an asterisk. When an Acclivity addition combines with an existing stat, the combined total is also red and marked.
- Expand **STAT SOURCES** to see the original and Acclivity contributions separately. Newly remixed items keep those contributions and their roll ranges after saving and reloading. Older items whose contributions were already merged cannot recover the original split.
- Item-card and inventory helper text is larger and brighter, including comparison, stat-source and scroll hints. Longer prompts wrap to stay within their frames.
Song Stones
- Item cards now show a SOCKETABLE chip instead of CANNOT EQUIP. The class-restriction text is replaced with "Add to equipment with empty sockets to grant skill bonuses." The slot label reads Socketable, and the detail tooltip shows a green Use line instead of a red Cannot equip status.
Online Leaderboards
- Score submissions are more reliable: connection timeouts are capped, connections are short-lived and pooled, transport failures are retried once, and failure messages are clearer.
- A new leaderboard error window shows full failure details until you dismiss it, in both the leaderboard and pinball screens.
Fixes
- The Midnight Rave guide arrow now points to newly revealed rooms, and to the boss room once it unlocks. Unlocking the boss opens every door.
- The inventory item preview is now drawn above the workbench, so it stays in the foreground.
Validation
- Full automated test suite passed (2,163 tests during the item-card update). New and extended tests cover:
- Setlist Cards: score preview and hand/payout results.
- Pinball: tickets, run state, start game, UI layout, side-bank bonuses and stacking, Stereo Sweep, ball trails, collision-map targets, and dot-matrix scoreboard/header bounds.
- Item-card colors and Acclivity markers, separate stat sources, relic infusions, and save round-trips.
- Rusty Nail and Midnight Rave progression.
- Loot automation: options and save round-trips, Loot Filter columns and navigation, vacuum pickup, auto breakdown, auto equip and upgrade rules, multiplayer pickups, and the tutorial pickup step. Full suite passed (2,212 tests).
- Solution build completed with zero warnings and zero errors.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.6.5 adds the Mastering Workbench, a new endgame upgrade path for gear. It also overhauls item cards so tooltips, detail panes and equip comparisons are clearer and accurate. Combat presentation improves too: a shield bubble around the player, a full status-effect HUD rail and sharp Woodshed boss sprites. Lightning frames are now cheaper to render and can be turned off in Video options.
Mastering Workbench
- New Mastering tab on the Studio workbench. It unlocks per character once you have cleared Woodshed wave 20 or higher and completed the Studio Act-II transition. A one-time introduction explains it when it unlocks.
- Mastering raises an item through eleven guaranteed tiers. Each tier multiplies the item's flat and percentage stats by a fixed factor, up to 2.83x flat and 5.75x percentage at tier 11.
- Each tier costs Sparks, Parts, one material that matches the item, and Vials. Tier 10 also needs Pure Inspiration. Upgrading several tiers at once shows one combined quote and spends everything in a single transaction.
- Parts costs are a tenth of the original design: 9,625 Parts to go from tier 0 to 10, and 12,650 Parts to reach tier 11.
- Place an inventory or equipped item in the center target slot to see a side-by-side preview of current and mastered stats, including damage and defense. Hover the item art to open the full item preview, both before and after mastering. The note listing stats that Mastering does not change (such as All Skills) sits above the target slot, and those stats are left out of the preview.
- Mastered items show a tier chip on their item card (for example M9/11) and a mastered frame. Mastered stats apply everywhere: equipment totals, item cards and comparisons.
- The advanced inventory pane can be opened while the Mastering tab is active, just like Acclivity Remix.
- Before using Acclivity on a mastered item you are warned that destructive rerolls (bricking or replacement) reset its Mastering with no refund.
- Mastering text uses larger, more readable fonts.
Item Cards
- Item tooltips, detail panes and equip comparisons were rebuilt. Stats are combined by stat type, aliases are merged, and comparisons follow the same slot routing as equipping (accessory A/B and follower slots). This is a display-only change: no gameplay, save or roll changes.
- Cards have rarity-colored frames, a pinned header that stays put while the rest scrolls, compact layout, and a unique icon and color for each stat.
- Item artwork is larger and scales with the header. Damage (weapons) and Defense (other gear) appear as a right-aligned header block with the roll range and the change versus your equipped item.
- Roll ranges for single-source stats are shown inline in light yellow. A Stat Sources section appears only for stats with more than one source, and the Acclivity/Raffle legend appears only when relevant.
- Hold Shift for the item preview; releasing Shift closes it. Hold Ctrl+Shift (or the controller compare chord) to compare against equipped gear. The screen is no longer dimmed behind the preview.
- In comparisons, NEW/LOST badges sit in their own aligned column. Differences are shown only for stats both items share, and LOST rows show the value you would lose.
- The mouse wheel scrolls the inventory list and advanced grid again. Hovering an equipped paper-doll or follower slot still scrolls the description pane.
Lightning Frames
- Epic, Set and Relic item description and preview panes, and the Mastering target slot, have a soft, glowing animated lightning ring that runs all the way around the frame. The whole ring is drawn in one batched pass, removing the frame spikes the earlier lightning caused.
- Animated lightning was removed from paper-doll slots.
- New Video option, Lightning Borders (on by default and saved to your preferences), turns off lightning on the title screen, cinematics, character creation and item frames.
Combat Presentation
- While any shield is active (barrier, Sound Barrier, fusion barriers or Prismatic Shield), the player is wrapped in a soft, reflective cyan bubble. It fades in as shields generate, flashes when it absorbs a hit, and fades out quickly when shields drop. It draws beneath floating equipped items and is wide enough to contain relic VFX, at a cost of about 150 batched quads.
- The status rail above the relic abilities now shows every active status (Slow, Shock, Bleed, Ignite, Freeze, Stun, vulnerabilities, immunities and more). It uses the same orbs drawn above the player's head, each with a radial timer ring. Slots shrink so they never overlap other HUD elements.
- Woodshed wave bosses now render sharply instead of blurry and pixelated. With HD sprites off, a boss loads its HD sprite sheet in the background, shows the standard sheet until it is ready, and unloads sheets that go unused. In both modes bosses are drawn through a sharpening upscale shader.
Fixes
- The Death Metal Skull Collector tooltip no longer says its extra ultimate slots use hotkeys T and Y. Saved copies are updated on load.
- The Character Sheet's Derived Stats table now has an Ability Dmg row. It splits the bonus into gear and other sources (set effects and the Manager's Free Promotion).
- Fixed telemetry validation and profiling benchmark test stalls, and patched audited telemetry and admin dependencies (Undici, Vitest, Vite, Zod, admin Next.js) without major-version upgrades.
Validation
- Full automated test suite passing (2025 tests), including new Mastering coverage: balance, costs, eligibility, progression, transactions, save round-trips, runtime aggregation and docked layout. Also new item presentation tests and video option save tests.
- Solution build completed with zero warnings and zero errors.
- Mastering balance remains subject to tuning based on player feedback.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.6.4 is a major enemy combat rebalance. Hostile damage now follows one authoritative scaling chain so enemy hits and items both matter. Dangerous enemy abilities get soft, readable ground telegraphs, so heavy attacks can be avoided instead of feeling like instant deaths. City Streets gets tougher enemies, more aggressive AI, clearer navigation and a stronger boss. This release also adds a new staged character creator, fixes HD enemy sprite clarity, and removes several combat hitches found in live performance captures. The changes have automated test coverage and were tuned over several playtest rounds; balance is still being tuned with player feedback.
Enemy Damage Rebalance
- All hostile damage now flows through a single model: a per-level combat unit multiplied by onboarding, Amp, venue, wave and rank factors, then by each attack's ability coefficient. The combat unit is locked in when an enemy spawns, so levelling up mid-fight never buffs enemies already fighting you.
- The Amp hostile damage curve was flattened from up to 35x to 2.55x at Amp 11, so high Amp levels no longer produce runaway one-shots. Converted-ally damage keeps its original curve.
- Baseline enemy damage was raised after playtesting so packs and items feel meaningful at every level.
- Basic ranged projectiles (Rival shots, Swifty heart shots, Zombie strings) hit 2x their base contract.
- Schlock Rocker case explosions are a near-lethal, must-avoid blast, telegraphed on the ground before impact.
- Venue bosses, elites and champions use explicit rank factors instead of stacked legacy multipliers. Backyard bosses no longer get an extra damage halving, and boss basics no longer compound.
- Swifty and Energy Vampire leech heal only from Soul actually removed, never from barrier damage.
- Songwriter exposure is now a 1.25x debuff for 1.5 seconds, with 2 seconds of immunity afterwards.
- Retro Rockstar heals now have a 0.8 second warning, a 4 second channel with four 25% pulses, and a 10 second cooldown.
- The K-pop Diva rainbow beam turns at 75 degrees per second instead of snapping to the player.
Encounter Coordination
- A new encounter coordinator spaces out heavy impacts near the player, allows only one latch or pull at a time with a short grace period, and limits overlapping case explosions.
- Melee attackers are no longer capped, so the player can be surrounded and attacked from every side.
- The ranged-shots-per-second limit was removed.
- Death blasts that land together are grouped into one budget (strongest + 25% of the second + 10% of the third, capped at 1.35x the strongest), so chain deaths can't stack into an unavoidable one-shot.
- Swifties gain a pink heart projectile secondary attack. While one Swifty holds the latch, or the player is out of latch reach, the others fire heart shots. The latch still takes priority whenever it can land.
Ability Telegraphs And VFX
- Enemy special abilities, explosions, auras, AoE attacks and death blasts now show ground telegraphs before they hit.
- All telegraphs are proper ground ellipses that match their hit areas exactly.
- Telegraphs have a soft radial gradient fill, a feathered rim with a subtle shimmer, a glowing impact front that grows toward the hit edge, a thin line marking the exact hit boundary, and a final flash just before impact.
- Telegraph timings were lengthened for readability, including the Energy Vampire, Greedy Executive, Hook Bot, Samurai, Diva, Ninja and Songwriter abilities. Death blasts give a 1 second warning, and Amp never shortens a telegraph.
- Boss telegraphs are cleared the moment the boss dies, and no danger zone is drawn for a dead source.
- Swifty heart projectiles render as outlined pink hearts.
City Streets
- The venue HUD now reads "Areas Cleared: X/9" and "Active Area: <district>", using named districts such as North Side Stripmall, Downtown Center Square and South West Corner District instead of tile file names.
- Once the eight outer areas are cleared, a glowing green arrow above the player points toward Downtown Center Square. It fades out when the first downtown wave begins.
- City Streets wave enemies stay locked on to the player instead of giving up and walking back to their spawn.
- Final downtown waves chase the player's current position instead of clumping where the player stood when the wave started.
- Enemies walk around obstructions instead of stalling behind them, and back out of corners they get wedged in.
- The Music Shop Zombie death explosion and the Greedy Executive cash explosion deal 3x damage.
- Industry Security basic attacks are raised to 4. The Industry Samurai slash is raised to 6 and its basic attack to 3.
- Critics are now a real threat. They attack and then kite instead of hanging back out of their own range. Their pulse range, attack speed, movement speed and damage were increased, and groove drain rises from 8% to 14% per hit.
- The Street Gang Leader boss has 30% more base life and deals 30% more damage with every attack.
Backyard Party
- Charmed allies follow the player through Backyard portals: they are placed around the player inside walkable bounds, then escort the player and seek out enemies.
- After you turn in the Backyard Party quest, Sir Don automatically opens follower selection. Workbench lock messages point players back to it.
- Backyard bosses animate their swings and ability casts smoothly.
HD Sprites And Performance
- HD enemy sprites render at full resolution for every enemy, matching the crisp Swifty sprites, instead of being downscaled and then magnified until they looked blurry.
- Enemy sprite sheets are prewarmed when a venue loads and decoded once instead of twice, removing a large mid-combat stall.
- Changing display mode no longer clears the enemy sprite cache, and a video-memory leak on that path was fixed.
- Toggling HD sprites mid-run shows a Caching Sprites progress overlay that re-caches player and enemy sheets in Options, so combat does not hitch afterwards.
- Converted-fan route planning, the main source of combat hitches and music stutter in Backyard Party, now caches navigation grids and edge walkability per room and warms them in the background. A four-fan burst dropped from about 120 ms to about 0.5 ms.
- World-drop sprite lookups reuse cached asset directory listings instead of probing the disk for every candidate.
- The simulation time step is clamped again, so brief stalls slow the game momentarily instead of snapping entities forward (rubber-banding).
- Converted fans retreat to plausible room exits and fade out at room boundaries, with a stuck guardrail.
Character Creator
- A new staged character creator walks you through four steps: Class, Name, Mode and Review. You can step back at any point and edit any choice from the Review screen before creating the character.
- Class: class cards show each class's role and play style. Drummer (percussion brawler) and Guitarist (directional shredder) are playable; Bassist, Vocalist and Keyboardist are shown as Coming Soon.
- Animated class previews: each class plays a full-kit showcase on a preview stage against target dummies. The previews use the same VFX renderers as gameplay, so they match in-game effects exactly, including Arena Breaker, Encore Slam and Encore Nova, No Tomorrow, Prismatic Cadenza, Wall of Death speakers, Cyclone Solo with its combo-charge meter, and Stagebreaker. Each skill-tree ability is labelled with its tree and unlock level (for example "METAL - LV 18"). Preview controls let you go back, pause, resume, skip to the next ability or replay.
- Starting kit panel: shows each class's core abilities (Drummer: Melee Strike, Drumstick Throw, Groove Slam; Guitarist: Pick Rake, Sustain Beam, Power Chord), starting gear, starting stats and its Metal, Fusion and Punk skill trees.
- Name: live validation with clear messages. Names are 3-16 characters using letters, numbers, spaces, - and _. Leading and trailing spaces are trimmed, and the reserved name "NewSave" is rejected. Controller text entry follows the same rules.
- Mode: choose Standard (unlimited respawns; gear and progress are kept) or One-Take (permanent death, a separate One-Take leaderboard, and x1.15 Hideout card ticket payouts with 2 full-payout runs per day). A clear warning is shown before you commit to One-Take.
- Review: a summary of your class, name and mode, with a name-and-class portrait caption, before you create the character.
- The creator uses themed fonts and a lightning panel border, and supports mouse, keyboard and controller navigation.
- Roadie speaker textures now resolve through the standard asset search paths, like other game art.
Other UI Changes
- Midnight Rave locked rooms keep their starfield; only newly unlocked rooms fade in.
- Status effect icons sit above the relic ability strip.
- Removed the locked-venue planning text from the venue menu.
Validation
- Full automated test suite: 1968 tests passing, including new encounter-coordinator, damage-model, City Streets area-name and character-creator coverage.
- Solution build completed with zero warnings and zero errors.
- Combat hitch fixes were confirmed with a live instrumented Backyard Party capture and isolated probes.
- Balance values come from iterative native playtests and remain subject to tuning based on player feedback.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.6.3 improves movement reliability, reduces Rusty Nail portal and floor-rendering work, and makes telemetry capture and persistence more efficient. Telemetry remains consent-gated and bounded. Performance profiling is disabled in the standard production build. Automated tests and isolated telemetry measurements cover the changes; native gameplay performance still needs validation.
Telemetry Efficiency And Reliability
- Unchanged build-state observations avoid rebuilding telemetry snapshots; warmed observer checks recorded zero thread allocations across 10,000 iterations.
- Build telemetry copies bounded state at the game-thread boundary and queues snapshot construction and canonicalization to a single background worker. Stale revisions, character sessions, and consent permits are rejected before snapshots are reported or attached to encounters.
- Encounter combat summaries use a four-buffer pool and bounded worker queue so summary construction and performance-window flushing stay off the game thread.
- Telemetry spool appends use bounded batches and one directory accounting pass; each upload batch reuses one sorted file snapshot instead of rescanning for every record.
- An isolated five-minute staging smoke persisted 2,686 events with zero spool-limit drops and 43.4 MB of spool-thread allocation, down from 256.7 MB in the pre-optimization smoke. This measures the isolated spool workload, not frame time or overall game performance.
- Queue, payload, retained-memory, disk, record-count, and retention limits remain bounded. Build snapshots are not reported or linked to encounters until local durable persistence succeeds.
Movement
- Click-to-move and enemy-approach movement are bounded to resolved movement, including blocked destinations and long frames.
- Velocity, footsteps, and movement bonuses follow actual displacement, keeping animation and movement effects consistent across frame rates.
- Added regression coverage for blocked movement, high speeds, long frames, and 30/60/144 FPS-equivalent durations.
- Player sprite-sheet prewarming reuses valid cached sheets instead of invalidating and reloading them.
- Collision-map baking skips a redundant pixel-count pass.
Rusty Nail Portals And Rendering
- Portal anchor and approach data share a per-run cache, with invalidation when collision or room geometry is refreshed.
- Newly unlocked and restored open portals prepare endpoint data outside the render loop.
- Portal rendering culls endpoints against the camera using their visual extents and avoids building prompts for distant endpoints.
- Room-framework fallback checks use cached floor textures rather than loading textures while rendering.
- Rusty Nail floor textures are incrementally prewarmed into the render cache during scene-entry prestaging.
- The Final Approach to Main Stage remains a physical connection.
Validation
- Focused Rusty Nail portal and movement tests passed: 66 tests.
- Telemetry regression tests cover bounded background handoff, cache/pool behavior, and zero-allocation steady-state observers.
- Release solution build completed with zero warnings and zero errors.
- The isolated telemetry smoke and observer allocation checks are not whole-game frame-time acceptance results.
- No native gameplay session, frame-time benchmark, or visual-equivalence capture was performed; smoothness and visual behavior remain for tester validation.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.6.2 improves optional telemetry reliability and developer dashboard accuracy. Fully equipped characters can report complete builds without confusing retained-memory estimates with upload size. Telemetry remains consent-gated, bounded, and processed off the game thread for serialization, storage, and networking.
Build Snapshot Reliability
- Separate retained-memory and encoded-event budgets allow realistic player equipment, follower gear, skills, and substantial Legacy allocations to be captured together without silently truncating them.
- Unchanged permanently rejected builds are no longer reconstructed every frame. Temporarily unavailable effective stats retry on a bounded schedule, or when relevant effective state changes.
- Pending build handoffs retain the same immutable snapshot, timestamp, sequence, and event identity across retries.
- Temporary local storage or spool capacity failures retain bounded pending build work instead of silently dropping it after queue acceptance.
- Encounters reference a build only after local durable persistence. Missing snapshots remain explicit and are never replaced with another character's or a newer build.
- Consent revocation, character switching, shutdown, and the seven-day retry/retention horizon remain respected. Memory-only work cannot survive a process crash, and previously discarded observations cannot be recreated.
Local Telemetry Status
- Privacy Choices now shows capture and local-delivery states, bounded rejection reasons, enrollment status, pending and persisted counts, storage deferrals, accepted batches, and the last batch HTTP status.
- Status text distinguishes remote queue acceptance from database commitment; upload acceptance alone does not prove a dashboard row exists.
- Sharing and deletion choices remain unchanged. No save files, installation identities, consent records, or existing telemetry are reset by this update.
Developer Dashboard
- Economy totals retain resource and source identity, so gains in one material cannot cancel spending in another.
- Build detail requests preserve the selected period and filters, including snapshots older than seven days in the 30-day view.
- Build values are labeled as captured historical state rather than current live player state.
- Installation/character scoping, owner authentication, bounded pagination, and cache protections are preserved.
Profiling And Validation
- Synthetic baseline tests run with production telemetry explicitly disabled; production synthetic-fixture restrictions retain separate coverage.
- Profiler test cleanup restores static state even after configuration failure, preventing synthetic-state contamination of save tests.
- Local validation passed 1,799 normal Release tests, 1,858 profiling Release tests, 71 backend tests, and desktop/mobile dashboard browser coverage.
- A game-generated fixture with 12 player items, six follower items, and 72 Legacy allocations encoded to approximately 25 KiB despite an approximately 141 KiB retained-memory estimate.
- Rejected-build observer checks allocated zero bytes across 100,000 unchanged observations and performed one capture attempt. These are microbenchmark results, not an FPS or first-capture frame-time guarantee.
Windows Installer
- The self-contained Windows x64 installer uses version 0.5.6.2 while preserving the existing upgrade identity and player save locations.
- Native x64 Windows and supported Windows 11 ARM64 x64 emulation remain allowed.
- Production packages require clean, revision-stamped source and exclude profiling instrumentation. The installer remains unsigned unless an Authenticode certificate is configured.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.6.1 introduces optional, consent-gated gameplay analytics and crash diagnostics so balance, drop rates, and performance can be tuned from real play sessions. Nothing is uploaded unless you opt in under Options > Privacy. This release also hardens save encryption, fixes boss corpse layering, enforces the Acclivity brick rarity floor, improves controller support for results screens and progression menus, and strengthens Windows packaging.
Optional Telemetry
- Two independent choices in Options > Privacy, both off by default: share gameplay analytics and share crash diagnostics. Declining never changes gameplay, saves, rewards, or leaderboards.
- Gameplay analytics are pseudonymous: a random installation identifier and a derived character pseudonym, never character names, save files, passphrases, leaderboard credentials, Windows usernames, or machine names.
- Captured gameplay families: sessions and presence, build snapshots (skill ranks, equipment and stats), progression (fame and levels), economy (gear, relic, set item, material and Song Stone drops, crafting, remixing, salvage, shops and minigames), encounter damage summaries, and one-minute performance windows.
- Crash diagnostics send sanitized managed error fingerprints only; memory dumps and attachments are disabled.
- Events are held in a Windows DPAPI-encrypted local queue bounded to 4,096 events, 20 MiB, and seven days, so offline play or outages never grow storage without limit.
- Serialization, encryption, disk writes, and uploads run on a background worker; the game thread only performs bounded hand-offs.
- Uploads are batched (up to 100 events or 256 KiB, about eight requests per minute) and acknowledged only after the server accepts them, so interrupted uploads retry without data loss.
- Turning a choice off stops collection and discards that category's queued events. "Delete stored telemetry" requests authenticated deletion of previously uploaded records.
- The public privacy page now documents the collected data, processors, 12-month retention, and deletion controls.
Telemetry Reliability Fixes
- Opening the character sheet no longer forces a full build snapshot every frame. Previously this flooded the local queue with thousands of large events per minute, causing real drops such as relics to be discarded once the queue filled.
- The server's JSON complexity limit now scales with the 256 KiB batch size, so batches containing several build snapshots are accepted instead of rejected.
- When the server rejects a multi-event batch, the client now halves the batch and retries within seconds instead of falling back to one event per minute, so backlogs drain promptly and valid events are never dropped alongside an invalid one.
- Spool reads use one sorted snapshot and lock per upload batch, and append accounting uses a single allocation-light directory pass, reducing background allocations about six-fold.
- HTTP 400 responses are classified by a bounded, allow-listed error code for diagnostics without retaining response bodies.
Telemetry Dashboard
- The private developer dashboard's class filter now attributes performance windows, progression, and economy events through their character session, so filtering by class (for example Guitarist) shows the matching runs.
Gameplay And Saves
- Save encryption uses a stable data key with safe recovery, and save writes can no longer be silently lost.
- Save passphrase options are restored, and a defeated boss corpse once again renders behind live actors.
- Acclivity bricks now respect their rarity floor.
- A blocked-position recovery prevents the player from becoming stuck in Woodshed collision pockets after a teleport.
Controller Support
- Woodshed, Pinball, and Hideout Poker results screens are now fully controller-driven: the D-pad moves focus between sort, Submit, and Close buttons with a visible highlight, A activates, and X closes. Previously, leaderboard Submit required a mouse click.
- Leaderboard submission triggers once per press. Holding or repeatedly pressing A cannot send duplicate requests, a failed submission can be retried, and a submitted score cannot be sent again.
- The button press that opens or closes a results screen no longer leaks into gameplay as an attack, interaction, or click on the screen underneath.
- The Legacy Tree link in the skill tree is reachable with the D-pad (press Up from the top row) and opens with A, even when no skill points are unspent.
- LB/RB switch between the character and follower views on the character sheet.
- The Hideout Poker run recap scrolls with LT/RT.
- Controller button prompts now appear on the skill tree, the Legacy link, results screens, the character sheet view toggle, and the Options > Privacy screen.
- Starting a new game from the pause menu now defaults the confirmation to No.
- Keyboard and mouse controls are unchanged.
Windows Packaging
- Production telemetry installers are built only from a clean Git worktree, stamped with the source revision, and exclude all profiling instrumentation.
- The installer remains a self-contained Windows x64 package that preserves the existing upgrade identity and stores saves under local application data.
Verification
- Ordinary Release test suite passed 1,749/1,749 after the controller update (1,734/1,734 at the telemetry release); instrumented profiling suite passed 1,793/1,793; telemetry Worker, schema, and D1 suite passed 71/71 with a clean typecheck.
- A matched 30-minute fixed-seed benchmark (259,200 frames per mode) showed identical gameplay state on every frame with telemetry on versus off. Frame-time median and P95 changed by +2.8% and +2.5%, P99 improved by 0.93 ms, and frames over 25 ms dropped from 274 to 158, all within the release acceptance policy.
- A production drain check after the fixes recorded zero build-snapshot churn, 17/17 batches accepted, and zero HTTP 400 responses.
Known Limitations
- Telemetry is client-reported and pseudonymous; it informs balance and is not authoritative.
- Deletion removes records from the telemetry database; hosting-provider logs and backups expire on their own schedules.
- The installer remains unsigned when no Authenticode certificate is configured.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.5.7 is a hardening release focused on save safety, portable Windows packaging, leaderboard resilience, and presentation fixes. Existing character saves remain playable, including safely supported historical character IDs.
Saves And Recovery
- Character IDs are validated before they participate in save, backup, journal, delete, and online-identity paths, preserving supported legacy identifiers without allowing unsafe path components.
- Character saves can use a versioned AES-256-GCM envelope derived from the player's passphrase, while plaintext legacy saves remain importable for migration.
- Existing saves can be re-encrypted transactionally when a passphrase is created or changed. Recovery and local key-cache options are documented as lockout prevention, not anti-tamper protection.
- Save writes continue to use atomic replacement, durable flushes, backups, and detached snapshots.
- A defeated boss corpse now renders behind the player and other live actors, preventing the death pose from appearing to float in front of the player.
Windows Packaging
- The release package is a self-contained Windows x64 Release publish and includes the required .NET runtime and native Raylib dependency, so players do not need a global .NET installation.
- The packaging pipeline stages a fresh versioned publish directory, validates required runtime/content files, and writes a SHA-256 content manifest and build stamp.
- The installer preserves the existing upgrade identity and stores saves separately under the user's local application data.
- The distributed installer is unsigned when no external Authenticode signing certificate is configured.
Global Leaderboards And API
- Run start and finish payloads now validate boards, classes, modes, seasons, scores, durations, game versions, and request sizes without imposing an artificial low score ceiling.
- Client-reported leaderboard results remain explicitly unverified. Server authentication, timestamps, idempotency, rate limits, and moderation reduce abuse but do not prove locally simulated gameplay was honest.
- Leaderboard deduplication is scoped to the character identity and ranking dimensions instead of only board, score, and duration.
- Public standings exclude hidden submissions and revoked identities. Pagination uses structured base64url cursors for stable tied-score traversal.
- Rate-limit increments use an atomic D1 operation. A protected operator moderation path records hide, reinstate, and identity-revocation actions in the audit table.
- Online submission remains optional and can be disabled server-side without disabling offline play.
Website And Release Delivery
- The website now advertises the v0.5.5.7 Windows installer and documents optional, pseudonymous, client-reported leaderboard submissions.
- Static website builds verify their security headers and externalize generated Next.js hydration scripts so strict `script-src 'self'` policies do not blank the page after refresh.
- Dropbox-hosted gameplay videos are allowed through the narrowly scoped media policy.
- Release checks use bounded retry behavior and do not create a title-screen network loop.
Verification
- Release solution build passed with zero errors and zero warnings.
- Filtered Game.Tests suite passed 1,440 tests.
- Self-contained win-x64 publish passed with a generated content manifest and build stamp.
- Local API migration, validation, pagination, moderation, and concurrent rate-limit smoke tests passed.
- Website export passed all 240 static routes, CSP verification, and production-output browser checks for refresh, representative routes, mobile navigation, and embedded video readiness.
Known Limitations
- Leaderboard credentials remain in the existing local identity-file format; separate OS credential storage is deferred.
- Client-reported scores are not cheat-proof or authoritative.
- Clean-machine Windows installation, code signing, and some staging/production operational rehearsals remain environment-specific checks.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.5.6 refines procedural-venue presentation and corrects the Platinum Encore CD music path. City Streets and Midnight Rave now reveal rooms against the starfield without leaking unrevealed tile art, while door and edge treatment follows connected-room state.
Venue Fog And Reveals
- Unrevealed City Streets and Midnight Rave room tiles are no longer rendered over the starfield backdrop.
- Newly unlocked tiles fade in locally over three seconds. The prior full-screen fog overlay/breakup pass was removed, eliminating reveal flashes outside the unlocked tile.
- City Streets unlocked tile edges now retain feathered transparency when they face an outer boundary or a locked neighbor. A shared edge becomes fully continuous only after its adjacent tile unlocks.
- Midnight Rave door visibility now follows shared-door geometry and active-room progression: paths from the current uncleared room remain visible, while doors do not appear in unrevealed destination tiles.
- Standard venue-door blocking, combat reclosure, and clear-to-invisible transition behavior remain unchanged.
Starfield
- PNG space artifacts and generated galaxies now use subtle authored-orientation variation ($-18^\circ$ to $+18^\circ$) instead of full-turn random rotations. Dust wisps retain their existing broader rotation range.
Audio
- Platinum Encore now resolves to `music/cd_platinum_encore.ogg`.
- New relic drops, migration defaults, and existing saved Platinum Encore CDs on activation all use the shipped track rather than the obsolete `cd_platinum_encore_default.ogg` path.
Version And Packaging
- `Game/Game.csproj`: Version, AssemblyVersion, and FileVersion are `0.5.5.6`.
- `CygnalARPG.iss`: installer version, output filename, and staging directory are `0.5.5.6` / `C:\cygstage\cyg0556`.
- `build_and_package.ps1`: staging directory is `C:\cygstage\cyg0556`.
- `Game/Core/OnlineLeaderboardClient.cs`: leaderboard submissions identify as `0.5.5.6`.
- `Website/api/src/site-data.ts` and `Website/web/src/lib/site-config.ts`: currentVersion is `0.5.5.6`.
- Website installer download now points to `CygnalARPGSetup_v0.5.5.6.exe` on Dropbox.
Verification
- Release solution build: zero errors and zero warnings.
- Focused fog presentation tests: 10 passed.
- Focused venue-door presentation tests: 15 passed.
- Focused venue texture-fade tests: passed.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.5.3 is a leaderboard correctness and website rankings release. It fixes minigame Global submit-button UI parity, corrects two leaderboard data bugs (run-mode mis-bucketing and shared player identity), cleans up one known-bad production row, and reworks the website's Woodshed rankings table with aligned columns, a Timestamp column, sortable headers, and a true per-mode top-100 cap.
Minigame Leaderboard UI Parity
- Pinball's "Submit to Global" button now renders inline, right-anchored to the "Score:" row, instead of overlapping the bottom of the results panel.
- Poker's "Submit to Global" button is bottom-anchored inside the recap modal with a real reserved footer band, so it no longer overlaps the "Perks Selected" list on long recaps.
- Both buttons now grey out and read "Score Submitted!" after a successful submission, matching Woodshed's existing behavior.
- Pinball and Poker click hit-testing now reuse the exact same layout rects (`GameplayUiLayout.GetPinballSubmitButtonRect`, `GetHideoutCardRecapSubmitButtonRect`) as their rendering code, fixing a pre-existing 20px hitbox/visual mismatch on Pinball and preventing future drift on both.
Leaderboard Data Correctness
- Fixed Woodshed leaderboard submissions silently mis-bucketing One Take runs into the Standard table: the submitted `mode` token is now built as an explicit `"one-take"`/`"standard"` literal instead of `CharacterRunMode.ToString().ToLowerInvariant()`, which produced `"onetake"` (no hyphen) and never matched the website's category filter.
- Fixed the cached anonymous leaderboard identity (player token + display name) being shared machine-wide across every local character. It is now keyed per `CharacterId`, so each character registers and submits under its own name.
- One known-bad production `best_standings` row (a Drummer One Take run mis-attributed to a different character's identity, with the mode typo above) was split onto its own identity and corrected directly in the remote D1 database as a one-time data cleanup.
Website Rankings (`/leaderboards`)
- Standard and One Take Mode tables now share one fixed-width column set rendered via `<colgroup>`, so columns stay pixel-aligned between the two tables regardless of each table's own content widths.
- Added a Timestamp column after Amp, showing the local date/time a score was submitted.
- Level, Wave, Time, Class, and Amp column headers are now click-to-sort buttons; every sort's tie-break chain resolves Amp desc, then Wave desc, matching the "Amp outranks Wave" ranking rule. The default/initial table order follows the same rule.
- Each table is capped to the top 100 rows after sorting.
- The leaderboards API gained an additive `modeCategory` query parameter (`bs.mode LIKE '<category>|%'`) so the frontend can fetch a true top-100 per run-mode category; a single unfiltered, score-ordered fetch could otherwise starve one category if the other dominated the score range.
Version and Packaging
- `Game/Game.csproj`: Version, AssemblyVersion, and FileVersion are `0.5.5.3`.
- `CygnalARPG.iss`: installer version and output filename are `0.5.5.3`; packaging staging directory is `C:\cygstage\cyg0553` in both the build script and installer script.
- `Game/Core/OnlineLeaderboardClient.cs`: the `gameVersion` literal sent with score submissions is `0.5.5.3`.
- `Website/api/src/site-data.ts` and `Website/web/src/lib/site-config.ts`: `currentVersion` is `0.5.5.3`. The Windows installer download link intentionally still points at the live `v0.5.5.2` executable until a new installer is built and uploaded.
- Live README, project-state, architecture, engine-overview, player-wiki, and mirrored AI/design documentation identify v0.5.5.3.
Verification
- Full solution build: Release, zero errors and zero warnings (re-verified after the version bump).
- `Website/api` and `Website/web`: `npx tsc --noEmit` clean (zero errors) after the leaderboards page/API rework.
- `git diff --stat` / `--numstat` checked after each change set; no touched file showed net line shrinkage.
- Both Cloudflare Workers (`cygnal-api-production`, `cygnal-web-production`) were redeployed and confirmed live.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.5.2 is a Legacy correctness and combat-performance release. It completes the executable Crowd mechanics, tightens follower and cadence boundaries, centralizes localized secondary damage, and replaces cleanup-time Supernova inference with an injectable synchronous lethal-effect contract.
Legacy Combat Corrections
- Groupie Surge now captures converted-fan movement and contact-damage scaling when a fan begins its exit.
- Converted fans deal one swept contact hit per crossed enemy at 50% average weapon damage before Groupie scaling.
- Headliner grants 3% outgoing damage per active converted fan, capped at 30%, to eligible player and attributed item/set sources.
- Crowd Wave and Headliner expiry explosions use spatial candidate queries and centralized secondary damage.
- Guitarist Power Chord preserves one nonzero cast identity across every cone target, so Punk Voltage triggers once per cast.
- Jam Session now improves at every rank, triggering after 10, 8, or 6 successful casts at ranks 1, 2, or 3.
- Metal Inferno coalesces nearby zero-ID requests within its burst window and enforces limits of 8 grounds per owner and 24 globally.
- Amplifier Overload triggers every fifth eligible direct player hit without an undocumented cooldown and deals exactly 150% current average weapon damage.
- Backstage Recovery begins only after four seconds without a qualifying combat action.
- Merch Table Armor damage reduction is now included in the character sheet through the same multiplicative calculation used by combat.
Supernova Lethal Contract
- `PlayerAttackContext` now carries explicit elemental and lethal-trigger metadata through direct attacks and ordinary projectiles.
- Central damage detects the exact positive-to-zero Soul transition and emits a stack-only `EnemyLethalDamage` receipt.
- `World.EnemyLethalEffectSink` is injectable for focused tests and future lethal effects; the default singleton implements Supernova.
- Supernova is host/single-player authoritative, uses `EnemySpatialGrid`, and resolves damage through the centralized secondary-damage gateway.
- DoTs, followers, converted fans, clones, replays, environmental damage, non-elemental attacks, and suppressed callbacks cannot trigger Supernova.
- Item, relic, CD, and set effects remain opt-in and must provide an explicit element with callbacks enabled.
- Supernova damage is callback-suppressed, so explosion kills cannot recursively create more Supernovas.
- Cleanup no longer reconstructs a killing source from corpse statuses, and `Slow` is never interpreted as Frost.
Followers
- Crew Resilience scales only follower Max Soul, Defense, and follower-owned damage.
- Bouncer Amp You Up and Manager Promotion power are no longer inflated by Crew Resilience.
- Rank 20 still provides the authored 50% follower durability and damage increase.
Performance and Bounded State
- Converted-fan updates reuse an instance-owned entity-ID buffer instead of allocating a key list every frame.
- Wall of Death pruning reuses world-owned scratch storage instead of allocating `Keys.ToArray()`.
- Ability capability resolution no longer allocates lowercase source-ID strings on hit paths.
- Localized Crowd, Headliner, Amplifier, Metal Inferno, and Supernova work uses bounded state or spatial queries.
- Supernova adds no persistent per-enemy attribution component or lifecycle cleanup burden. Nonlethal hits perform only primitive transition and bitmask checks; sink dispatch and spatial work occur only on eligible deaths.
Version and Packaging
- `Game/Game.csproj`: Version, AssemblyVersion, and FileVersion are `0.5.5.2`.
- `CygnalARPG.iss`: installer version and output filename are `0.5.5.2`.
- Packaging staging directory is `C:\cygstage\cyg0552` in both the build script and installer script.
- Live README, project-state, architecture, engine-overview, player-wiki, and mirrored AI/design documentation identify v0.5.5.2.
Verification
- Full solution build: Release, zero errors and zero warnings.
- Full solution tests: 1,082 passed, 0 failed.
- Focused Supernova lethal-contract tests: 6 passed, 0 failed.
- Focused Legacy, follower, Crowd, Guitarist, and registry regression tests passed.
- `git diff --check` and staged diff checks are clean.
- Protected large-file line counts show no unexpected truncation.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.5.5.1 completes the runtime implementation of the six-tree Legacy progression system and consolidates follower combat statistics behind a shared snapshot calculator.
The release replaces scattered rank checks and visual-only placeholders with validated contracts, cached typed values, authoritative combat events, semantic attack attribution, real skill replay, deterministic elemental procs, multiplayer-safe state ownership, and focused regression coverage.
Highlights
- Completed all 77 Legacy node contracts across Resonance, Crowd, Elemental, Groove, Speed, and Aura.
- Added a revisioned `LegacyEffectSnapshot` cache with clamped rank reads and contract validation.
- Added semantic attack tags and cast-instance attribution for class-neutral skill behavior.
- Added ordinary projectile context propagation so delayed impacts preserve source and recursion rules.
- Added callback-free Dual Encore and Jam Session skill replay for both released classes.
- Unified Bouncer, Roadie, and Manager combat-stat derivation through a pure follower snapshot calculator.
- Expanded behavior-level regression coverage for Legacy combat, follower snapshots, and registry integrity.
Legacy Registry and Caching
- `LegacyEffectRegistry` is the canonical definition for all 77 nodes, including branch, rank cap, effect kind, trigger, and output channels.
- `LegacyRankReader` clamps finite ranks and applies diminishing returns to infinite-pool ranks.
- `LegacyProgressionData` maintains a per-world revision counter and rebuilds its cached effect snapshot only when ranks change.
- Save loading and rank mutation paths invalidate the snapshot correctly.
- Runtime systems consume typed snapshot values instead of rebuilding formulas or reading raw ranks on hot paths.
Attack Attribution and Combat
- `PlayerAttackContext` now carries source kind, semantic ability tags, cast ID, callback suppression, resource suppression, and typed-damage state.
- Semantic tags cover primary attacks, skills, area effects, Core Slams, Metal, Fusion, Punk, and single-target attacks.
- Drummer Groove Slam and Guitarist Power Chord share Core Slam behavior.
- Ordinary projectile entities preserve their originating attack context through impact resolution.
- Delayed and secondary attacks suppress callbacks where required to prevent recursive hit, proc, resource, and replay chains.
- Wall of Death tracks unique targets by cast ID, retroactively applies its threshold bonus to earlier targets, and empowers later targets in the same cast.
Resonance
- Harmonic Amplifier, Overdrive, Resonant Strike, Crescendo, Feedback Loop, Solo Act, Dual Encore, and Amplifier Overload use the centralized contract values.
- Dual Encore now triggers from a successful skill cast instead of CD activation.
- Dual Encore replays the actual triggering skill at 60% effectiveness with no Groove cost, cooldown, combo consumption, or recursive cast callback.
- Amplifier Overload uses centralized cadence, damage, and radius values.
Crowd
- Opening Act, Fan Frenzy, Mosh Pit Protocol, Stage Dive, Crowd Wave, Groupie Surge, Encore Demand, Headliner, Festival Grounds, and Wall of Death are integrated with authoritative runtime events.
- Encore Demand grants stored free casts after each five conversions and scales additional charges by rank.
- Festival Grounds modifies area radius, conversion range, and single-target damage through semantic attack capabilities.
- Crowd Control movement and stun effects exclude allied converts and use the authoritative player-damage path.
Elemental
- Fire, Frost, and Lightning proc rolls now create gameplay effects instead of VFX-only overlays.
- Pyrotechnics applies Ignite; Frost Monitor applies Chill/Freeze; Live Wire applies Shock and chain damage.
- Arc Flash adds 3% Shock damage per rank and one chain target per four ranks.
- Metal Inferno creates three-second burning ground from Metal skill impacts.
- Fusion Cryogenics applies extra Chill every third basic-projectile hit.
- Punk Voltage triggers chain Shock from Core Slam impacts.
- Supernova adds 50% elemental proc damage and retains elemental death explosions.
- The Conductor receives real elemental proc events for its four-second Tri-Force window.
- Elemental Encore can add one random secondary elemental proc without recursive re-triggering.
- Perfect Combustion preserves its DoT critical-strike path without entering discrete-hit proc chains.
Groove and Speed
- Rhythm Section, Soul Riff, Bass Drop, Time Signature, Sustain Pedal, Breakdown, Jam Session, Infinite Set, Power Ballad, and Flow State use centralized values and event ownership.
- Jam Session counts successful skill casts and replays the strongest learned assignable skill every tenth cast.
- Free-cast previews do not consume Encore Demand charges; only successful casts consume them.
- Quick Set, Stage Sprint, Double Time, Adrenaline Rush, Hit & Run, Blitz, Flurry, Hyperspeed, Berserker's Tempo, and Grand Finale are integrated across both released classes.
- Hit & Run grants its authored 0.5-second movement burst at 20% movement speed after a moving primary hit.
- Flurry counts both melee and projectile primary hits and marks generated projectiles so they cannot advance their own counter.
Aura and Survivability
- Stage Presence, Thick Skin, Sound Barrier, Reverb, Backstage Recovery, Crowd Control, Crew Resilience, Iron Curtain, Phoenix Encore, and Battle Hymn use shared runtime state and snapshot values.
- Sound Barrier refills on the exact update its recharge timer expires and is included in HUD/network barrier totals.
- Iron Curtain applies incoming/outgoing modifiers and a cooldown-gated lethal clamp.
- Phoenix Encore revives with invulnerability and a temporary damage increase.
- Battle Hymn owns periodic healing and damage-buff timing.
Followers
- Added `FollowerStatCalculator` as the shared pure calculation boundary for Bouncer, Roadie, and Manager.
- Follower snapshots combine archetype base values, equipment modifiers, Legacy bonuses, and temporary buffs.
- Crew Resilience and follower-specific equipment values are applied consistently across all archetypes.
- Added regression tests for snapshot calculations and class-specific follower behavior.
Multiplayer and Lifecycle Safety
- Host-authoritative damage, conversion, death, and scene transitions own stateful Legacy effects.
- Barrier totals include temporary and Legacy Sound Barrier values in network snapshots.
- Scene cleanup resets transient barriers, cast tracking, burning ground, and queued replay state.
- Replay casts use separate negative cast IDs and cannot overwrite singleton ultimate state.
Version and Packaging
- `Game/Game.csproj`: Version, AssemblyVersion, and FileVersion are `0.5.5.1`.
- `CygnalARPG.iss`: installer version and output filename are `0.5.5.1`.
- Packaging staging directory is `C:\cygstage\cyg0551` in both the build script and installer script.
- Live README, project-state, architecture, engine-overview, and player-wiki documentation now identify v0.5.5.1.
Verification
- Full solution build: Release, zero errors and zero warnings.
- Full solution tests: Release, passing.
- Legacy combat regression suite: 59 passed, 0 failed.
- Registry and follower snapshot tests: passing.
- `git diff --check`: clean.
- Protected networking file size check: no unexpected shrinkage.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
v0.4.4.6 is a major gameplay, systems, and presentation update focused on the Legacy Set Item ecosystem, runtime set mechanics, drop-table correctness, compatibility/migration safety, and HUD/world readability polish.
This cut also includes a targeted Deferred Damage Union mechanics fix so shielded damage interactions are fully supported.
Highlights
- Implemented and integrated the authored set-item runtime system end-to-end.
- Added canonical set catalog coverage for 8 sets / 24 pieces.
- Expanded set mechanics runtime behavior and safeguards across combat loops.
- Added/updated set drop paths and parity logic with relic-tier event chances.
- Improved item migration and save-load normalization for legacy set data.
- Added broad test coverage for set runtime, factories, migration, and UI layout behavior.
- Extended world/HUD readability for set cues, indicators, and effects.
Deferred Damage Union Fix (Shield Compatibility)
- Root issue: deferred damage intake was evaluated after barrier/shield absorption in player hit resolution.
- Fix: deferred intake now evaluates before barrier absorption, allowing shielded hits to still accrue deferred debt.
- Result: Deferred Damage Union bonuses remain effective in typical shield-heavy builds.
- Added regression coverage for both Drummer and Guitarist class paths.
Drop Table and Legacy Set Cleanup
- Removed obsolete non-authored legacy set-rarity generation from generic roll paths.
- Preserved canonical authored set-piece drop paths (`IsSetItem + SetId + SetPieceId`).
- Added load-time migration normalization for obsolete legacy green set items.
- Ensured converted legacy items persist through save dirty-marking on load.
Versioning Updates
- `Game/Game.csproj`
- - `<Version>`: `0.4.4.6`
- - `<AssemblyVersion>`: `0.4.4.6`
- - `<FileVersion>`: `0.4.4.6`
- `CygnalARPG.iss`
- - `MyAppVersion`: `0.4.4.6`
- - `OutputBaseFilename`: `CygnalARPGSetup_v0.4.4.6`
Verification
- Release build: success.
- Release tests: passing.
- Focused set/runtime regression tests: passing.
Notes
- This release notes file summarizes the full staged change window since the previous commit and is intended to accompany the source-control commit for v0.4.4.6.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
Itemization correctness
- Added a typed item-stat registry covering canonical labels, units, valid equipment slots, legacy aliases, and runtime consumers.
- Made Bonus Damage apply globally and exactly once to player melee and projectile damage ranges.
- Corrected Critical Strike Damage to add in multiplier space, including Solo Act interactions.
- Separated flat Soul Reserve from percentage Max Soul and applied both through one authoritative Max Soul formula.
- Canonicalized Projectile Lightning Damage and Additional Projectiles naming and runtime aggregation.
- Corrected Single Stroke Engine to grant deterministic +100 projectile lightning damage and a total six-to-eight projectile fan.
- Replaced unsupported placeholder authoring labels with supported thematic stats and added exhaustive authored-template validation.
- Updated character-sheet and tooltip presentation to use canonical stat labels and units.
Combat attribution and relic behavior
- Added allocation-free player attack source contexts for basic attacks, skills, ultimates, relics, legendary powers, CD effects, damage-over-time effects, and clones.
- Added monotonic cast-instance IDs and propagated them through Ricochet, Stagebreaker, Cyclone Solo, No Tomorrow, Groove Cascade, and Arena Breaker delayed damage.
- Removed unattributed player damage resolution so every production hit now declares its source.
- Centralized player-applied status routing to prevent duplicate relic notifications.
- Corrected source-sensitive behavior for Echo Abbey, Cathedral Reverb, Iron Parish War Snare, Backline Overdrive, Riot Alley Stompers, Double Kick Legs, Backline Railpants, and Skull Collector.
- Preserved borrowed relic activation through Acclivity carriers and documented runtime/reset ownership for all 27 relics.
CD modifiers and follower relics
- Completed OverDrive Mode with +20% effective attack cadence, +15% non-ultimate assignable-skill cooldown recovery, and +25% direct player-hit damage.
- Added machine-readable activation, mutation, cleanup, and cooldown ownership contracts for every active CD modifier.
- Added one authoritative registry for all eight follower relic abilities, including generation type, display text, and runtime handler ownership.
Legendary powers and saves
- Persisted legendary power IDs independently of item rarity so Legendary items promoted to Epic retain their original powers.
- Prevented Set-to-Epic items and unknown persisted IDs from receiving accidental BaseId legendary powers.
- Added evidence-based inference for compatible old Epic saves without granting powers from BaseId alone.
- Persisted Skull Collector bonus-slot selections across save/load and equip transitions.
- Added idempotent migration for legacy stat aliases, flat Max Soul, deprecated placeholders, Single Stroke rolls, and the Royal Albert and Skull Collector legacy Power rolls.
- Kept new save fields default-compatible and left the multiplayer damage packet format unchanged.
Validation
- Release solution build: 0 warnings, 0 errors.
- Full automated test suite: 385 passed, 0 failed, 0 skipped.
- Added focused regression and ownership coverage for item stats, migration, attack attribution, relic behavior, OverDrive, legendary persistence, Skull Collector, CD modifiers, and follower relic abilities.
Packaging
- Updated executable Version, AssemblyVersion, and FileVersion to 0.4.4.3.
- Updated Inno Setup metadata and output filename to `CygnalARPGSetup_v0.4.4.3.exe`.
- Updated installer staging to `C:\cygstage\cyg0443`.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link
Release Scope
- This release captures all pending repository changes accumulated since the last push to `origin/main`, including gameplay systems, progression/UI, rendering/VFX, assets, persistence data, and content pipelines.
- Base commit before this release: `fe20449`
- Change footprint: 37 tracked files changed
- Diff stats: 18,976 insertions and 1,255 deletions
High-Level Summary
- v0.3.6 is a broad gameplay and rendering consolidation release with significant workflow and content updates:
- 1. Progression, state, and account systems were expanded.
- 2. Equipment and workbench logic received major implementation growth.
- 3. Loot/material definitions and icon assets were extended.
- 4. Combat and projectile handling were revised.
- 5. Rendering and venue-facing UI passes were updated, including grounded actor-shadow improvements for player and bosses.
- 6. Save/rankings data and test profile snapshots were refreshed.
- 7. Pinball collision-map assets were replaced and updated.
Live Runtime Addendum (May 14, 2026)
- This section reflects the currently validated gameplay surface beyond the original release cut summary.
- Studio hub with Sir Don progression and venue/minigame access
- Rusty Nail and City Streets campaign venues
- Backyard Party authored venue chain with room transitions, wave gates, and boss stage
- Midnight Rave connected-room progression with additional anti-softlock door/progression guards
- Woodshed endless arena with dedicated HUD and exit warp flow
- Pinball and Poker side activities integrated into progression/rankings UI
- Global rankings persistence across characters for Woodshed ladder, Pinball high score, and Poker high score
- Rankings UI tabs and Woodshed sorting controls
- Pinball interaction/render/runtime flow fully wired from Studio world interaction to scoring panel
- Backyard Party retreat-resume safeguards for wave continuity and safer non-city spawn resolution
- Acclivity and relic expansion runtime state actively integrated into current data/runtime paths
- Character-specific progression remains in Game/saves/*.json
- Cross-character rankings persist in Game/saves/global/rankings.json
- Legacy Woodshed leaderboard compatibility path remains in place for migration safety
Detailed Changes By Area
- Added new systems/state models:
- - `Game/Core/AcclivitySystem.cs` (new)
- - `Game/Core/RelicExpansionRuntimeState.cs` (new)
- Updated progression and core state orchestration:
- - `Game/Core/CharacterProgression.cs`
- - `Game/Core/GameState.cs`
- - `Game/Core/World.cs`
- Updated app boot/system registration and runtime flow wiring:
- - `Game/Core/GameApp.cs`
- Expanded gameplay catalogs:
- - `Game/Core/MaterialCatalog.cs`
- - `Game/Core/RelicCatalog.cs`
- Updated player combat ability implementation:
- - `Game/Core/PlayerSkills.cs`
- Extended loot component modeling:
- - `Game/Entities/Components/LootComponents.cs`
- Updated loot-generation/collection logic:
- - `Game/Systems/LootSystems.cs`
- Expanded equipment handling:
- - `Game/Systems/EquipmentSystem.cs`
- Major workbench implementation pass:
- - `Game/Systems/WorkbenchSystem.cs`
- Added new material icon assets:
- - `Game/assets/sprites/items/icons/materials/acclivity_shard.png`
- - `Game/assets/sprites/items/icons/materials/song_stone_fusion.png`
- - `Game/assets/sprites/items/icons/materials/song_stone_metal.png`
- - `Game/assets/sprites/items/icons/materials/song_stone_punk.png`
- Updated combat resolution and damage application:
- - `Game/Systems/CombatResolver.cs`
- Updated lifecycle and death/cleanup flow:
- - `Game/Systems/CleanupSystem.cs`
- Updated projectile behavior and handling:
- - `Game/Systems/ProjectileSystem.cs`
- Updated player movement/melee execution:
- - `Game/Systems/PlayerMoveAndMeleeSystem.cs`
- Updated relic systems:
- - `Game/Systems/RelicEffectSystem.cs`
- - `Game/Systems/RelicCloneSystem.cs`
- Updated progression surface logic and UI integration:
- - `Game/Systems/ProgressionUiSystem.cs`
- Updated studio NPC behavior:
- - `Game/Systems/StudioNpcSystem.cs`
- Updated hideout card game integration:
- - `Game/Systems/HideoutCardGameSystem.cs`
- Updated woodshed wave flow:
- - `Game/Systems/WoodshedWaveSystem.cs`
- Updated input mappings/handling:
- - `Game/Systems/InputSystem.cs`
- Updated asset support bindings and sprite resolution:
- - `Game/Systems/RenderSystem.AssetSupport.cs`
- Updated detailed panel and UI rendering paths:
- - `Game/Systems/RenderSystem.Details.cs`
- - `Game/Systems/RenderSystem.Inventory.cs`
- - `Game/Systems/RenderSystem.Hud.cs`
- - `Game/Systems/RenderSystem.Progression.cs`
- Updated venue and world rendering passes:
- - `Game/Systems/RenderSystem.Venue.cs`
- - `Game/Systems/RenderSystem.World.cs`
- - `Game/Systems/RenderSystem.cs`
- Updated pinball render pass:
- - `Game/Systems/RenderSystem.Pinball.cs`
- Implemented layered soft-shadow rendering support.
- Added dynamic shadow evaluation by runtime state for actor classes.
- Tuned player shadows for tighter foot contact and reduced float illusion.
- Applied equivalent grounding and directional-drift constraints for boss shadows.
- Updated save serialization/load handling:
- - `Game/Systems/SaveSystem.cs`
- Updated local save data snapshots:
- - `Game/saves/Ultimate_Tester.json`
- - `Game/saves/global/rankings.json`
- Replaced legacy pinball collision map:
- - Deleted: `Game/assets/tiles/pinball_collision_map_current_896x1536.png`
- Updated active collision map:
- - Modified: `Game/assets/tiles/pinball_collision_map_current_948x1659.png`
- Added additional collision-map copy:
- - `Game/assets/tiles/pinball_collision_map_current_948x1659 - Copy.png`
Versioning
- Project version has been incremented in `Game/Game.csproj`:
- `Version`: `0.3.5` -> `0.3.6`
- `AssemblyVersion`: `0.3.5.0` -> `0.3.6.0`
- `FileVersion`: `0.3.5.0` -> `0.3.6.0`
Complete Changed File Manifest
- `Game/Core/CharacterProgression.cs`
- `Game/Core/GameApp.cs`
- `Game/Core/GameState.cs`
- `Game/Core/MaterialCatalog.cs`
- `Game/Core/PlayerSkills.cs`
- `Game/Core/RelicCatalog.cs`
- `Game/Core/World.cs`
- `Game/Entities/Components/LootComponents.cs`
- `Game/Systems/CleanupSystem.cs`
- `Game/Systems/CombatResolver.cs`
- `Game/Systems/EquipmentSystem.cs`
- `Game/Systems/HideoutCardGameSystem.cs`
- `Game/Systems/InputSystem.cs`
- `Game/Systems/LootSystems.cs`
- `Game/Systems/PinballGameSystem.cs`
- `Game/Systems/PlayerMoveAndMeleeSystem.cs`
- `Game/Systems/ProgressionUiSystem.cs`
- `Game/Systems/ProjectileSystem.cs`
- `Game/Systems/RelicCloneSystem.cs`
- `Game/Systems/RelicEffectSystem.cs`
- `Game/Systems/RenderSystem.AssetSupport.cs`
- `Game/Systems/RenderSystem.Details.cs`
- `Game/Systems/RenderSystem.Hud.cs`
- `Game/Systems/RenderSystem.Inventory.cs`
- `Game/Systems/RenderSystem.Pinball.cs`
- `Game/Systems/RenderSystem.Progression.cs`
- `Game/Systems/RenderSystem.Venue.cs`
- `Game/Systems/RenderSystem.World.cs`
- `Game/Systems/RenderSystem.cs`
- `Game/Systems/SaveSystem.cs`
- `Game/Systems/StudioNpcSystem.cs`
- `Game/Systems/WoodshedWaveSystem.cs`
- `Game/Systems/WorkbenchSystem.cs`
- `Game/assets/tiles/pinball_collision_map_current_948x1659.png`
- `Game/saves/Ultimate_Tester.json`
- `Game/saves/global/rankings.json`
- `Game/Core/AcclivitySystem.cs`
- `Game/Core/RelicExpansionRuntimeState.cs`
- `Game/assets/sprites/items/icons/materials/acclivity_shard.png`
- `Game/assets/sprites/items/icons/materials/song_stone_fusion.png`
- `Game/assets/sprites/items/icons/materials/song_stone_metal.png`
- `Game/assets/sprites/items/icons/materials/song_stone_punk.png`
- `Game/assets/tiles/pinball_collision_map_current_948x1659 - Copy.png`
- `Game/assets/tiles/pinball_collision_map_current_896x1536.png`
- ---
Runtime Alignment Note (2026-07-01)
- This release note remains a valid historical record for the v0.3.6 cut, but the live project has advanced substantially beyond that version.
- Project version when this follow-up note was written: `0.4.4.1` (`Game/Game.csproj`)
- Target framework: `.NET 8` (`net8.0`)
- Save schema: `2` (`SaveSystem.CurrentSchemaVersion`)
- Multiplayer protocol: `NetProtocol 3.0` (`MajorVersion=3`, `MinorVersion=0`)
- Active world scenes are `StudioHideout`, `Venue`, and `Woodshed`.
- Top-level flow screens include title/loading, save/load/new-game flow, character creation, cinematic playback, gameplay, and multiplayer lobby/host/join states.
- Global rankings continue to track Woodshed, Pinball, and Poker records in `.../saves/global/rankings.json`.
- Use `README.md` and `PROJECT_STATE.md` as primary current-state references.
- Treat this file as versioned historical context for the v0.3.6 milestone.
Source commits for this release
- 032c009 Dedupe release summaries on website; publish v0.6.0.1 hotfix link