Make wins and losses feel emotionally different. Outcome should change atmosphere.

A win should feel different from a loss. Not through complex animation — through simple visual feedback. A screen flash, a color change, a message. Small signals create big emotional impact.

Ami — Combat Feedback
  • On Win: Flash screen green briefly. Console message: "Victory — XP gained."
  • On Loss: Flash screen red. Camera resets to Camp.
  • On Boss Encounter: Darken background slightly to signal heightened stakes.
Ida — Economy Feedback
  • On Build Complete: Brief gold flash. Display "Project Complete" message.
  • On Bankruptcy: Strong red flash. Display reset message.
  • On Car Unlock: Text animation: "Car Unlocked."

Add a screen overlay div for flash effects:

<div id="flash"></div>

Style it to cover the full screen:

#flash { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; opacity: 0; transition: opacity 0.3s; z-index: 99; }

Change background color for 300ms with a CSS transition:

function flashScreen(color) { const flash = document.getElementById('flash'); flash.style.background = color; flash.style.opacity = '0.3'; setTimeout(() => { flash.style.opacity = '0'; }, 300); } // Usage: flashScreen('green'); // win flashScreen('red'); // loss flashScreen('gold'); // special event
  • Create screen overlay div for flash effects
  • Implement flashScreen() function
  • Wire flash to win/loss/special events
  • Add distinct visual for each event type
  • Test: events feel emotionally different
  • Verify flash doesn't interfere with gameplay
  • Checkpoint

    Wins and losses feel emotionally different. Events have visual impact without being distracting.

    No sound effects (optional if time allows). No particle effects. No complex animations. Just color flashes and text.

    Flash too long (annoying) — 300ms is enough. Longer than half a second and it becomes irritating.

    Flash too subtle (invisible) — opacity 0.3 is a good starting point. Test it and adjust.

    Same feedback for different events — if wins and losses look the same, the feedback is meaningless. Each event needs a distinct visual.

    Flash blocking input — use pointer-events: none on the flash overlay so clicks pass through.

    This is game feel — the art of making simple things feel good. Ask: "Does this make the system clearer without adding mechanics?" The answer should be yes. If the feedback obscures rather than clarifies, it needs to be simpler.