game-mechanics

  1. The same trap, a third time

    A word input overflowing the screen at 320px turned out to be two unrelated bugs, and fixing the second one surfaced a third case of a CSS trap this codebase keeps hitting.

  2. One tooltip, anywhere on the page

    Detail tooltips reach the fruit on the board itself, and the "only one open at a time" rule stops being a property of the game log and becomes a property of the page.

  3. The log that remembers both players

    The shared game log learns to show two players at once, PvP gets a live panel of its own, and a scoring bug that only hurt guests surfaces along the way.

  4. One recap, two modes

    A blocking modal in PvE and an inline overlay in PvP get replaced by one shared recap component, ported wholesale from the Daily Challenge pattern.

  5. One word at a time

    Two long words typed at once could break the whole duel layout. The fix drops the side-by-side grid for a single panel that follows whoever is acting.

  6. Fifty-six turns of twenty

    A Daily Challenge that can never exceed twenty words showed a game log toggle claiming fifty-six turns. Fruit events were counting as turns.

  7. The crash that used to win

    A player ahead on score could just ram the wall and win. PvP duels get lives, hearts, and a reason not to crash on purpose.

  8. The score that almost got away

    A tab switch could strand a finished Daily Challenge with no way to submit it. The fix merges two screens into one and stops trusting the client for the score.

  9. The interface does not end at the board

    Physical-key feedback, host sleep, and an iOS zoom gesture expose three boundaries the game still needs to design around.

  10. Let the game explain itself

    Game-log chips gain explanation-on-demand tooltips, while the recording script learns to demonstrate the game it claims to show.