Skip to content

Release: bump to 1.0.0 — add UI nav, Levels, Notifications, Shop/Bundles, LTM & input improvements#74

Open
TheGeneric10 wants to merge 1 commit intomainfrom
codex/update-patch_03032026-with-multiple-changes-lbwqb3
Open

Release: bump to 1.0.0 — add UI nav, Levels, Notifications, Shop/Bundles, LTM & input improvements#74
TheGeneric10 wants to merge 1 commit intomainfrom
codex/update-patch_03032026-with-multiple-changes-lbwqb3

Conversation

@TheGeneric10
Copy link
Owner

Motivation

  • Finalize a pre-1.0 feature set and bump the app to 1.0.0 while registering supported versions and season text constants.
  • Improve cross-platform input and accessibility by adding keyboard/gamepad UI navigation and more robust pointer/scroll handling.
  • Add player progression, persistent XP/leveling, and richer shop/inventory flows (bundles, featured sections, cloud shop config) to expand monetization and seasonal content.
  • Expand live/LTM modes, notifications/history and UX refinements (player card lite, quest unlock previews, more HUD/flow adjustments).

Description

  • Bumped release VERSION to 1.0.0 and introduced SUPPORTED_VERSIONS, SEASON_LIVE, SEASON_NEXT, and SEASON_NEXT_RELEASE constants and updated about/start screens to reference them.
  • Implemented full UI navigation system: added uiNavButtons, focus movement, keyboard handlers (handleUiNavKey), gamepad navigation support, addUiNavButton hooks inside drawNeonBtn, and visual focus highlight drawing (drawUiFocusHighlight); wired pointer events to disable UI nav.
  • Added persistent Level / XP system: levelXp, persistence helpers (loadLevelXP, saveLevelXP), level math (xpRequiredForLevel, levelFromXp, levelProgress), level rewards, rewardLevel, gainXP, level badge drawing and levelUpToasts.
  • Extended notifications: notifHistory, addSocialToast gating, levelUpToasts, and a new NOTIFICATIONS screen (drawNotificationsScreen) showing recent notifications; added addStatCount for simple counters (spent gems, total powerups).
  • Shop and catalog refactor: new BUNDLE_CATALOG, SHOP_PAGES reworked (featured, bundles, boosts), tabbed char shop UI, inventory view and filters, bundle purchase flow (bundlePopup), and cloud-driven shop sections via CLOUD_SHOP_CONFIG and loadGlobalShopConfig.
  • LTM and mode updates: added slope_instant LTM entry, neon-rush teaser (modeNeonRush) in mode select, LTM visibility gating on sign-in + online, and improved daily rotation / fetching logic (loadGlobalLtmConfig).
  • Player/profile/UX changes: playerCardPopup.lite mode and logic, many additional BTNS definitions for new screens and flows (levels, notifications, pause extras, menu alerts), back/return state handling (questsReturnState, charShopReturnState, notificationsReturnState, levelsReturnState), and small HUD/UX updates (mode best label, EXP display).
  • Input and controller updates: expanded GP state (up/down/confirm), improved gamepad polling, edge detection for confirm, map D-pad/axes, added shouldUseUiNav + nudging scroll behavior for list screens, and new touch scroll support for SETTINGS/OPTIONS.
  • Mechanics and balance tweaks: introduced IMMUNITY powerup and IMMUNITY_POLICY to limit invulnerability by mode and source, fixed LTM forced-powerup mapping to include IMMUNITY, added XP grants on quest completion/gems/powerups/ends, quest pool expansion with extreme quests and unlock preview (questUnlockPreview), and various stats persistence (slope_spent_gems, slope_total_pwr).
  • Cloud & sync tweaks: buildSlopeUserPayload now includes secureSig, ensureSupportedVersions writes/merges supported versions and initializes cloud shop config, and syncSlopeMirror/syncLeaderboardRTDB usage unchanged but more robust.

Testing

  • No automated tests were added or executed as part of this change.

Codex Task

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0cf7d0645d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

}
if (gs === 'LEVELS') {
if (hitBtn(p,BTNS.levelBack)) { SFX.click(); levelXpOpen=false; doTransition(levelsReturnState||'MENU'); levelsReturnState='MENU'; return; }
if (hitBtn(p,BTNS.levelClaim)) { SFX.click(); rewardLevel(currentLevel()); return; }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Allow claiming all unlocked level rewards

The level-claim action always calls rewardLevel(currentLevel()), and there is no other call site for rewardLevel, so players who gain multiple levels at once (for example from large quest XP rewards) can only claim the current level and permanently lose rewards for skipped unlocked levels. This directly impacts progression currency/unlocks and makes leveling outcomes depend on claim timing rather than earned XP.

Useful? React with 👍 / 👎.

@@ -1800,7 +2083,7 @@
function clearAllFX() {
particles.length=0; exhaustParts.length=0;
fogParts.length=0; rings.length=0;
floatTexts.length=0; notifs.length=0; socialToasts.length=0; socialToastSquares.length=0;
floatTexts.length=0; notifs.length=0; socialToasts.length=0; socialToastSquares.length=0; levelUpToasts.length=0; notifHistory.length=0;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve notification history when resetting FX

clearAllFX() now clears notifHistory, but this reset helper is invoked when starting a run and when returning to menu, so the new Notifications screen loses its history on normal game flow transitions instead of showing recent events. This makes the history feature unreliable for users who check notifications after a run or mode change.

Useful? React with 👍 / 👎.

SFX.click();
gameMode='LTM';
if (isAdminUser) doTransition('ADMIN_LTM');
else doTransition('SHOP');
return;
}
if (hitBtn(p, BTNS.modeNeonRush)) { SFX.click(); gameMode='NEON_RUSH'; doTransition('SHOP'); return; }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Route Neon Rush through a handled game mode

Selecting Neon Rush sets gameMode='NEON_RUSH', but no gameplay bookkeeping paths handle that mode (e.g., finalizeGameOver only updates modeScores for ENDLESS/ADVENTURE/IMPOSSIBLE/LTM), so Neon Rush runs do not correctly contribute to mode highscores/leaderboard-related mode stats. If the button is playable, this causes inconsistent post-run results versus other modes.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant