Release: bump to 1.0.0 — add UI nav, Levels, Notifications, Shop/Bundles, LTM & input improvements#74
Conversation
There was a problem hiding this comment.
💡 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; } |
There was a problem hiding this comment.
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; | |||
There was a problem hiding this comment.
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; } |
There was a problem hiding this comment.
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 👍 / 👎.
Motivation
1.0.0while registering supported versions and season text constants.Description
VERSIONto1.0.0and introducedSUPPORTED_VERSIONS,SEASON_LIVE,SEASON_NEXT, andSEASON_NEXT_RELEASEconstants and updated about/start screens to reference them.uiNavButtons, focus movement, keyboard handlers (handleUiNavKey), gamepad navigation support,addUiNavButtonhooks insidedrawNeonBtn, and visual focus highlight drawing (drawUiFocusHighlight); wired pointer events to disable UI nav.levelXp, persistence helpers (loadLevelXP,saveLevelXP), level math (xpRequiredForLevel,levelFromXp,levelProgress), level rewards,rewardLevel,gainXP, level badge drawing andlevelUpToasts.notifHistory,addSocialToastgating,levelUpToasts, and a newNOTIFICATIONSscreen (drawNotificationsScreen) showing recent notifications; addedaddStatCountfor simple counters (spent gems, total powerups).BUNDLE_CATALOG,SHOP_PAGESreworked (featured, bundles, boosts), tabbed char shop UI, inventory view and filters, bundle purchase flow (bundlePopup), and cloud-driven shop sections viaCLOUD_SHOP_CONFIGandloadGlobalShopConfig.slope_instantLTM entry, neon-rush teaser (modeNeonRush) in mode select, LTM visibility gating on sign-in + online, and improved daily rotation / fetching logic (loadGlobalLtmConfig).playerCardPopup.litemode and logic, many additionalBTNSdefinitions 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).GPstate (up/down/confirm), improved gamepad polling, edge detection for confirm, map D-pad/axes, addedshouldUseUiNav+ nudging scroll behavior for list screens, and new touch scroll support forSETTINGS/OPTIONS.IMMUNITYpowerup andIMMUNITY_POLICYto limit invulnerability by mode and source, fixed LTM forced-powerup mapping to includeIMMUNITY, 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).buildSlopeUserPayloadnow includessecureSig,ensureSupportedVersionswrites/merges supported versions and initializes cloud shop config, andsyncSlopeMirror/syncLeaderboardRTDBusage unchanged but more robust.Testing
Codex Task