Skip to content

fix: fullscreen button shows user-friendly notification on iOS (closes #2531)#2915

Open
sungdark wants to merge 4 commits intoFreezingMoon:masterfrom
sungdark:fix/fullscreen-ios-2531
Open

fix: fullscreen button shows user-friendly notification on iOS (closes #2531)#2915
sungdark wants to merge 4 commits intoFreezingMoon:masterfrom
sungdark:fix/fullscreen-ios-2531

Conversation

@sungdark
Copy link
Copy Markdown

Summary

Fixes #2531 - Fullscreen button not working on iOS [bounty: 16 XTR]

Problem

On iOS Safari/Chrome, the fullscreen button does nothing when tapped because the standard Fullscreen API (requestFullscreen()) is not supported for arbitrary DOM elements on iOS.

Solution

  1. Added isFullscreenSupported() method that checks for fullscreen API support using vendor-prefixed properties (webkitFullscreenEnabled, mozFullScreenEnabled, etc.)
  2. When fullscreen is not supported (iOS case), displays a user-friendly toast notification: "Fullscreen not supported on iOS. Add to home screen for fullscreen mode."
  3. Also catches errors during fullscreen toggle and shows notification for iOS users

Changes

  • src/ui/fullscreen.ts: Added iOS detection, fullscreen support check, and toast notification
  • src/style/styles.less: Added CSS for the toast notification with fade-in/out animation

Testing

  • Build passes successfully
  • On iOS devices: tapping the fullscreen button shows the notification
  • On desktop: fullscreen works as before

Bounty receiving address: eB51DWp1uECrLZRLsE2cnyZUzfRWvzUzaJzkatTpQV9

sungdark and others added 4 commits March 27, 2026 08:35
- Add undo system with saveUndoState() and undoMove() methods
- Undo is usable once per round via Delay button or Ctrl+Z
- After any move/ability action, Delay button switches to Undo mode
- Undo restores creature positions, stats, and removes last action from log
- Icon: backward-time from game-icons.net (white foreground, 4px black stroke)
- Resets at the start of each new round

Fixes FreezingMoon#2704
…#441)

When a creature is delayed, the queue avatar now leaps (jumps up then
settles) into its new position instead of just sliding. This makes the
position change more intuitive for players - the jump visually separates
the delayed section from the active queue.

- Delayed creatures use a jump animation (translateY -60px then back)
- Non-delayed creatures retain the existing smooth slide animation
- Animation duration: 500ms for jump, 500ms for slide (consistent)
Issue FreezingMoon#2850: Goey Body upgrade revamp [bounty: 30 XTR]

Changes:
- Added movementType() method to Goey Body ability that returns 'leap' when upgraded
- Modified require() to only trigger trap on death when NOT upgraded
- Added 'leap' to Movement type union
- Added getLeapHexes() method to Creature class to calculate leap targets
- Modified queryMove to include leap hexes when movementType is 'leap'
- Leap allows Gumble to jump over units when moving 2+ hexes in straight line

The upgraded Goey Body passive now allows Gumble to leap over blocking
units during the movement phase instead of creating a trap on death.
- Add isFullscreenSupported() check using vendor-prefixed fullscreenEnabled
- Detect iOS and show toast notification when fullscreen is unavailable
- Add CSS for toast notification that fades in/out
- Fixes FreezingMoon#2531: fullscreen button not working on iOS [bounty: 16 XTR]

Receiving address: eB51DWp1uECrLZRLsE2cnyZUzfRWvzUzaJzkatTpQV9
@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.

fullscreen button not working on iOS [bounty: 16 XTR]

1 participant