window.ROGUEWAVE_CHANGELOG_TEXT = ` # Newest entry first. The first version line is used as current in-game version. # Version schema: {day}.{month}:{Number of update this day}-{optional: Hotfix Number} beta 20.04:21 - Fixed pointer/touch to canvas coordinate mapping for reliable clicks/taps in resized and windowed modes - Added responsive layout foundation helpers (compact/narrow/normal modes) and dynamic readable-scale floor logic - Added missing upgrade text helpers (splitTextLines and upgradeDescriptionText) to stabilize upgrade card rendering - Start menu received first responsive geometry pass for narrow windows (panel widths, spacing, and button sizing adjusted to reduce crowding) - Shop received adaptive layout pass: responsive columns (2/3/4 by viewport mode), compact spacing/panel sizing, and safer label/button fitting - Upgrade overlay now adapts card sizing/layout by viewport mode, including multi-row grids and compact text hierarchy to avoid clipping - HUD top bars now adapt by viewport mode (panel widths, font scales, and text width guards) to reduce overlap in non-fullscreen layouts beta 20.04:20-1 - HOTFIX: Prestige skin requirements now use a built-in fallback threshold map when config skinThresholds is missing - Fixes zero-prestige profiles incorrectly retaining or unlocking prestige skins due to missing runtime threshold data beta 20.04:20 - Added procedural fallback emblems for prestige skins (B/S/G/D/P/E tier marks) when image assets are missing - Prestige placeholders now render as intentional tier icons instead of generic '?' circles beta 20.04:19 - Added prestige track previews to start menu and victory screen so the next unlock target is visible - Prestige skin rewards now read as a progression path instead of only a shop state beta 20.04:18-1 - HOTFIX: Prestige skins are now achievement-locked and cannot be bought with shards - Load/save normalization strips invalid prestige unlocks unless the prestige threshold is met beta 20.04:18 - Performance optimization: Event feedback system (flash & toast) now skips rendering on lowPerf mode to reduce overhead - Defensive guard added for event VFX: renders only when performance headroom available (FPS > 54) - Prestige skins, audio cues, and enhanced camera shake integrate within existing particle/effect caps - All new effects respect dynamicCap scaling and lowPerf degradation paths beta 20.04:17-2 - HOTFIX: Fixed game freeze on level up with duplicate upgrade screens appearing - Added guard to triggerUpgrade() to prevent multiple upgrade overlays from stacking when multiple bosses die simultaneously beta 20.04:17-1 - HOTFIX: Fixed double score submission to leaderboard on final boss victory - Added guard check to onVictory() to prevent duplicate leaderboard submissions (same pattern as commitLossIfNeeded) beta 20.04:17 - Added prestige skin unlock system: 6 placeholder skins unlock at prestige milestones (bronze @1, silver @2, gold @3, diamond @5, platinum @7, emerald @10) - Prestige skins are automatically granted upon reaching thresholds; cost 0 shards, purely achievement-based - Config.js now includes skinThresholds array for prestige leveling customization - Skin unlock logic runs on game load (Progression.init) and after prestige gain (Final Boss victory) beta 20.04:16 - Added prestige foundation with persistent prestige count in progression storage - Final boss victory now grants prestige and applies reset policy: shards and meta upgrades reset while owned skins remain - Added config-driven prestige controls in config.js (enabled, gainPerClear, resetShards, resetMeta) - Updated UI to show current prestige on start menu and detailed prestige gain/reset summary on victory screen beta 20.04:15 - Continued polish with visual fanfare overlays for combo milestones, wave clears, and boss defeats - Added transient event flash + toast messaging layer for punchier combat feedback moments - Added combo milestone anti-spam cooldown so milestone audio/visual feedback stays impactful - Improved camera shake system to support custom intensity/duration per event trigger beta 20.04:14 - Continued polish with new event-specific SFX for crit hits, execute finishes, combo milestones, wave clears, and boss defeats - Wired crit and execute audio feedback directly into bullet-hit combat resolution - Added combo milestone audio triggers at 5/10/25 and every +25 combo thereafter - Added wave-clear fanfare with clear banner feedback and impact feel before next-wave rest window - Added boss-defeat fanfare hooks for miniboss, bigboss, and final boss kills beta 20.04:13 - Started polish/refinement implementation with a readability-focused upgrade screen pass - Upgrade cards now show always-visible descriptions (including default descriptions for upgrades without custom text) - Added rarity-driven card glow/pulse styling and hover tween lift/scale for punchier card interaction - Improved in-run HUD readability with soft backdrop panels and stronger hierarchy for wave/kills/time labels beta 20.04:12 - Continued modularization by moving concrete upgrade effect tuning values into config.js under upgrades.tuning - Upgrade effect math now reads config values for damage, speed, fire rate, HP, armor, regen, crit, range, XP gain, execute, and weapon level increments - Execute upgrade-offer filtering now uses config-driven execute cap instead of a hardcoded threshold beta 20.04:11 - Continued modularization by moving upgrade rarity tuning into config.js under upgrades - Upgrade rarity base weights, wave scaling boosts, bonus/bigboss boosts, and epic unlock wave are now config-driven - Upgrade rarity card colors are now sourced from config instead of hardcoded values in game logic beta 20.04:10 - Continued modularization by moving skin-shop fallback defaults into config.js under skinShop - Added runtime cloning for skin-shop config to separate immutable defaults from mutable loaded state - Parser default-skin fallback now pulls from centralized config defaults instead of hardcoded duplicate values beta 20.04:09-4 - Added new Spiderman Skin to the shop using assets/playerskins/SpidermanSkin.png - Defined Spiderman skin colors: player color #d32f2f and glow color rgba(30,90,200,0.35) - Added Spiderman skin to featured shop entries beta 20.04:09-3 - Choosing Yes on the low-FPS prompt now keeps Performance Mode always ON for the rest of that run - Performance Mode no longer auto-disables on FPS recovery after opting in during that run beta 20.04:09-2 - Low-FPS performance prompt choice is now saved for the full run (single decision per run) - Choosing Yes now auto-reapplies Performance Mode on future frame drops in the same run - Choosing No now suppresses further low-FPS prompts for the same run beta 20.04:09-1 - Balanced upgrade rarity rolls across progression: early waves are mostly common, while rare/epic odds scale up in later waves - Epic upgrades are now gated out of normal rolls in very early waves (before wave 6) - Bonus and big-boss reward upgrade rolls now boost rare/epic odds for more meaningful reward moments - Added safe fallback fill so upgrade choice count always remains complete even if weighted pools get exhausted beta 20.04:09 - Added a low-FPS confirmation prompt before enabling Performance Mode - Declining Performance Mode now temporarily suppresses repeat prompts to avoid spam - Added upgrade rarity tiers (common/rare/epic) and weighted rarity-based upgrade rolls - Execute upgrades are now rarity-tagged and capped at 50% execute threshold - Upgrade cards now display a visible rarity label beta 20.04:08 - Added a dedicated PAUSED state for in-run pause flow (separate from main-menu settings) - Escape/P now resumes directly from pause and settings from start menu return to menu - Added run summary metrics tracking: shots fired, shots hit, upgrades taken, bosses defeated - Added accuracy/upgrades/bosses summary lines to both game-over and victory screens beta 20.04:07 - Added new enemy type: Phaser (blink-reposition behavior with burst shots) - Phaser enemies begin appearing in later waves - Added new Execute upgrade family (+8% / +12% execute threshold) - Execute effect now instantly finishes non-boss enemies when they fall below threshold HP beta 20.04:06-2 - Hotfix: removed wave kill-progress text during the final boss fight - The "Kills: current/required" line now hides while The Null Sovereign encounter is active beta 20.04:06-1 - Hotfix: assigned distinct names to both big boss encounters - Wave 10 big boss is now Iron Tyrant - Wave 20 big boss is now Abyss Colossus - Boss labels now read per-encounter display name instead of one shared big boss title beta 20.04:06 - Added modular config.js as centralized runtime tuning source - Moved wave/performance tuning and boss display names to structured config groups - Wired game.js to consume config values with safe in-file fallbacks - Updated index.html boot order to load config.js before game.js beta 20.04:05 - Added new lore-driven boss names across gameplay UI - Miniboss renamed to Shard Warden - Big boss renamed to Iron Tyrant - Final boss renamed to The Null Sovereign - Added story.txt with the RogueWave storyline and world context beta 20.04:04-2 - Hotfix: further improved small-window readability and boss reward timing - Raised minimum canvas display scale so text remains readable on tiny windows - Switched canvas scaling to non-pixelated rendering for clearer text and UI - Miniboss and bigboss rewards are now awarded instantly on boss kill instead of waiting for wave completion beta 20.04:04-1 - Hotfix: improved readability in very small windows - Added minimum canvas display scale to prevent UI/text from shrinking to illegible sizes - Added automatic scroll mode for tiny viewports so the game remains readable and reachable beta 20.04:04 - Relaxed viewport policy to allow browser zoom for better readability on small screens - Increased mobile in-game pause button hit area to improve touch usability - Scaled pause icon to match enlarged button sizes across portrait and landscape - Consolidated gameplay touch ownership by making Mouse ignore gameplay touch streams while TouchControls handles them - Added preventDefault in TouchControls touch handlers for cleaner mobile input behavior beta 20.04:03 - Optimized nearest-enemy targeting to use spatial-grid candidates with safe fallback to full enemy scan - Added lightweight object pooling for particles and damage numbers to reduce allocation/GC churn during heavy combat - Added reusable reset paths for pooled Particle and DamageNumber objects - Tuned low-performance mode thresholds for smoother quality switching (enter/exit hysteresis adjusted) beta 20.04:02 - Added skin asset telemetry counters (requests, cache hits, successful loads, failed loads, fallback retries, placeholder renders) - Shop now logs skin asset telemetry when opened for easier QA tracking - Added explicit placeholder visuals for missing/unloaded skin icons - Featured and all-skins cards now label missing assets as "Placeholder" while keeping skins visible in the catalog beta 20.04:01 - Added boot diagnostics summary for env, changelog, skin shop, and progression initialization - Added runtime configuration validation warnings for key boot assumptions - Added safety guards for endboss update flow and cheat configuration application - Normalized ranged enemy movement vector to prevent unintended diagonal overspeed beta 16.04:02-2 - Added pause hotkey: press P to open pause/settings during gameplay - Reworked Game Speed Modifier into tiered unlocks (each upgrade unlocks the next speed tier) - Speed selector now shows locked tiers until they are unlocked beta 16.04:02 - Added a purchasable Game Speed Modifier upgrade with top-right in-run speed selection (1x, 2x, 3x, 5x, 10x, 15x) - Made challenge modes more impactful by tuning wave pacing, enemy pressure, and reward multipliers - Improved the start-menu layout spacing from the previous hotfix pass beta 16.04:01-1 - Aligned all three menu panels (left/center/right) to same top edge (Y=148) - Adjusted title section positioning (moved up by ~10-12px) - Increased UI element spacing for better vertical layout balance beta 16.04:01 - Fixed rainbow skin not rendering in shop featured and all-skins sections - Added drawSkinIcon renderer to display skin asset images inside circular cards with fallback color - Implemented resilient skin asset loader with path fallbacks and cache-busting for hosted builds (itch.io) - SkinAssets.get now appends version query param and retries alternate path formats on CDN failures - Updated deploy.yml to include skinshop.txt in packaged artifacts so configs deploy correctly - Removed miniboss-style HP bar from endboss so only the top-center phase indicator is shown beta 15.04:03 - Added Void Herald endboss at the end of wave 25 with 3 phases (normal, fury, rage) - Endboss has unique attack patterns: triple-shot, bullet ring, spiral burst, dash, and shield - Endboss spawns minions in phases 2 and 3 - Victory is now triggered by defeating the Void Herald instead of just completing waves - Added dedicated boss music track (intense, fast-paced) during the endboss fight - Added endboss HUD with phase indicator and HP bar beta 15.04:02 - Added unique chiptune music tracks for each biome stage - Neon District: upbeat synthwave with square wave melody - Acid Grid: tense minor-key track with sawtooth lead and faster tempo - Crimson Core: heavy aggressive track with extra percussion and ominous bass - Music now automatically transitions when entering a new biome - Added visual ambient effects per biome (Acid Grid scan lines, Crimson Core ember particles and red pulse) beta 15.04:01-04 - Fixed music not stopping when abandoning a run (scheduled oscillators now properly silenced) - Fixed pause menu alignment — all elements are now vertically centered and properly spaced - Pause menu shows "PAUSED" title when mid-run instead of "SETTINGS" beta 15.04:01-03 - Fixed monetization toggle reliability when .env is not served by host - Added env.txt fallback config loading for MONETIZATION setting - Set fail-safe default to monetization OFF when config files are unavailable beta 15.04:01-02 - Added scrolling to the scin shop - Added intuitive touchscreen drag scrolling in Skin Shop for long skin lists beta 15.04:01-01 - Raised the middle start-menu background rectangle so it frames the center section up to SELECT MODE beta 15.04:01 - Added a dedicated Skin Shop page with shard-based in-game currency purchases - Added configurable skin catalog via skinshop.txt to quickly add skins and set prices - Added configurable featured slots via skinshop.txt for the Featured section - Added new skin "Nova Gold" as a featured offer - Reworked main menu skin flow: skins are now managed via the new Shop button - Added external skin shop config file (skinshop.txt) for skins, prices, and featured slots - Added assets folder path for player skins: assets/playerskins beta 14.04:09 - Started next phase (Phase 5 launch prep) - Added persistent A/B experiment variants for early pacing, game-over flow, and rewarded copy - Added softstart difficulty variant for first run minute (lower early pressure) - Added game-over UI flow variant testing (revive-first vs restart-first) - Added active A/B variant readout in settings for QA validation beta 14.04:08 - Started Phase 4 monetization rollout - Added optional rewarded pre-run booster (watch ad to arm for next run) - Added optional one-time rewarded shard cache in pause/settings per run - Added defensive midroll frequency caps (no ad spam on every wave end) beta 14.04:07 - Added CrazyGames loading lifecycle hooks (loadingStart/loadingStop) - Improved ad flow lifecycle handling around midgame/rewarded ads - Added one-time rewarded revive flow on game over - Added adaptive low-performance mode with dynamic effect/entity caps - Added quick in-run tutorial hints for first-time clarity - Updated browser title and metadata description for platform listing quality beta 14.04:06 - Refined home screen with cleaner 3-zone layout (left progression, center actions, right daily/scores) - Increased spacing and reduced visual crowding on desktop - Daily panel now includes a compact progress bar - Home screen score panel now shows top entries only for better readability beta 10.04:05-01 - Hotfix version for 10.04:05 beta 10.04:05 - Automatic Deployment to itch.io added beta 10.04:05 - Improved mobile portrait play layout - Added bigger portrait-friendly pause button - Compact main menu layout for portrait screens beta 10.04:04 - Added ABANDON RUN button in pause/settings screen - Abandoning a run now returns directly to main menu beta 10.04:03 - Changed some stylings to look good - Refined the changelogs beta 10.04:02 - Added main menu changelog panel - Pause screen now shows run stats - Added full changelog screen/button beta 10.04:01 - Initial public beta release `;