Skip to content

feat: implement dynamic game feel with animated backgrounds, combo-re… - #2

Open
Nerdlin wants to merge 2 commits into
mainfrom
subagent-Graphics-and-Sound-Polish-Engineer-game-feel-agent-d5c3be4b
Open

feat: implement dynamic game feel with animated backgrounds, combo-re…#2
Nerdlin wants to merge 2 commits into
mainfrom
subagent-Graphics-and-Sound-Polish-Engineer-game-feel-agent-d5c3be4b

Conversation

@Nerdlin

@Nerdlin Nerdlin commented May 31, 2026

Copy link
Copy Markdown
Owner

…active visuals, and full-screen application architecture

…active visuals, and full-screen application architecture
Copilot AI review requested due to automatic review settings May 31, 2026 13:31
@Nerdlin

Nerdlin commented May 31, 2026

Copy link
Copy Markdown
Owner Author

@copilot resolve the merge conflicts in this pull request

1 similar comment
@Nerdlin

Nerdlin commented May 31, 2026

Copy link
Copy Markdown
Owner Author

@copilot resolve the merge conflicts in this pull request

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds dynamic "game feel" polish: an animated background that reacts to the current combo via a new global atom, line-clear spark particles per board cell, and additional SFX hooks (startup preload, multiplayer placement/combo/invalid/game-over sounds).

Changes:

  • New activeComboAtom synced from each game's combo shared value via useAnimatedReaction + runOnJS, consumed by AnimatedBackground to vary speed, opacity, and pulse.
  • Per-cell Spark particles (8 per GridBlock) emitted on line clear in BlockGrid.
  • Sound preloading at app startup and multiplayer SFX wiring (placement, combo, invalid drop, game over).

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
hooks/useAppState.tsx Adds exported activeComboAtom for global combo state.
app/index.tsx Preloads sound assets at startup.
components/AnimatedBackground.tsx Reacts to combo: faster cycle, stronger overlay, pulse on increase.
components/game/Game.tsx Syncs combo to atom, resets on unmount; spring config field accidentally renamed massmax.
components/game/MultiplayerGame.tsx Syncs combo to atom; adds placement/combo/invalid/game-over SFX.
components/game/BlockGrid.tsx Adds Spark component and per-block spark burst on line clear.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread components/game/Game.tsx Outdated
Comment on lines +150 to +152
// Trigger neon sparks animation
sparkProgress.value = 0;
sparkProgress.value = withTiming(1, { duration: 550 });
Comment thread components/game/Game.tsx
Comment on lines +83 to +87
useAnimatedReaction(() => {
return combo.value;
}, (curCombo) => {
runOnJS(setActiveCombo)(curCombo);
});
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
@Nerdlin

Nerdlin commented May 31, 2026

Copy link
Copy Markdown
Owner Author

@copilot resolve the merge conflicts in this pull request

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants