Skip to content

feat(Gumble): Gooey Body upgrade lets Gumble leap over units (2+ hex)#2922

Open
sungdark wants to merge 4 commits intoFreezingMoon:masterfrom
sungdark:feat/gumble-goey-body-leap-upgrade
Open

feat(Gumble): Gooey Body upgrade lets Gumble leap over units (2+ hex)#2922
sungdark wants to merge 4 commits intoFreezingMoon:masterfrom
sungdark:feat/gumble-goey-body-leap-upgrade

Conversation

@sungdark
Copy link
Copy Markdown

Summary

Fixes #2850 — Gooey Body upgrade revamp

Before (confusing): The upgraded Gooey Body left a death trap that didn't affect allies, making it hard to know whether allies would be trapped.

After: The upgraded Gooey Body allows Gumble to leap over units during the movement phase when walking at least 2 hexagons, replacing the confusing ally/neutral behavior with a clear movement advantage.

Changes

Gameplay Mechanics

  • When Gumble's ability 0 (Gooey Body) is upgraded, Gumble gains the ability to leap over units when moving 2+ hexes
  • The leap uses the fly animation and bypasses path obstacles (units in the path are ignored)
  • 1-hex movements still use normal walk behavior (no change to short-range movement)
  • The death trap on death behavior is unchanged (base and upgraded both trap units)

Code Changes

  1. src/utility/hexgrid.ts:

    • Added hexDistance() helper to compute true hex distance between two hexes
    • findCreatureMovementHexes() now adds flying-range hexes (2+ hexes only) for Gumble with upgraded ability 0
  2. src/creature.ts:

    • queryMove callback now uses fly animation for Gumble leap movements (2+ hexes when ability is upgraded)
  3. src/data/units.ts:

    • Updated upgrade description: Can leap over units when moving 2+ hexes.

Testing

  • All 83 unit tests pass
  • ESLint passes (0 errors)

sungdark and others added 4 commits March 27, 2026 13:02
Issue: Touching hexagons on Android triggers hover behavior first,
requiring users to tap twice to perform an action.

Fix: Detect touch input via pointer.pointerType and:
- Skip hover effects for touch (onInputOver returns early for touch)
- Handle touch input directly in onInputDown (calls onConfirmFn)
- Skip onInputOut hover-off for touch (no hover was shown)
- Skip onInputUp for touch (already handled in onInputDown)

This makes touch interaction on Android feel immediate and responsive,
matching the expected single-tap behavior.
- Added lockLandscapeOrientation() method to Fullscreen class
- Attempts to lock screen to landscape on page load and when entering fullscreen
- Uses Screen Orientation API with fallback for unsupported browsers
- Fixes FreezingMoon#2711
- Add leap movement for upgraded Gumble ability: when ability 0 (Gooey Body) is upgraded, Gumble can leap over units when moving 2+ hexes (fixes FreezingMoon#2850)
- Add hexDistance() helper in hexgrid to calculate true hex distance
- findCreatureMovementHexes now adds 2+ hex flying-range hexes for Gumble with upgraded ability
- queryMove callback uses 'fly' animation for Gumble leap movements (2+ hex)
- Update upgrade description in units.ts: 'Can leap over units when moving 2+ hexes.'
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 27, 2026

Someone is attempting to deploy a commit to the FreezingMoon Team on Vercel.

A member of the Team first needs to authorize it.

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.

Gooey Body upgrade revamp [bounty: 30 XTR]

1 participant