Skip to content

Add Mona Slice badge app - #163

Open
cardonator wants to merge 3 commits into
badger:mainfrom
cardonator:mona-jezzball
Open

cardonator wants to merge 3 commits into
badger:mainfrom
cardonator:mona-jezzball

Conversation

@cardonator

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds Mona Slice, a new Universe 2026 badge game where you carve the playfield into claimed territory while keeping bouncing, animated Monas safe. Claim 75% to clear a level; each level adds another Mona (up to five) and speeds them up.

Type of change

  • New badge app
  • Improvement or bug fix to an existing app
  • Firmware, menu, or system change
  • Documentation
  • Infrastructure (workflows, scripts, tooling)
  • Universe 2025 (badge25/) maintenance

Badge app checklist

  • The app lives in badge/apps/<name>/ with __init__.py and a 24x24 icon.png
  • README.md starts with a one-sentence description, followed by usage and any hardware or network requirements
  • Uses the 2026 runtime globals (badge, screen, image, ...) and logical buttons such as BUTTON_SELECT
  • Movement and animation are frame-rate independent (badge.ticks_delta)
  • Tested on Universe 2026 badge hardware, including both orientations and the capacitive controls
  • Assets are in assets/, are PNG where possible, and are as small as practical
  • No secrets, tokens, or personal data are committed (badge/secrets.py stays empty)

Screenshots

Mona Slice gameplay with a claimed region
Mona Slice title screen

How to use it

  • Arrows: move the cutting cursor (it can move anywhere, including over claimed territory)
  • Select: start a cut; the two ends grow independently and stop at the nearest wall, claimed area, or edge. Cuts started in claimed territory travel through it into open space
  • Back: toggle horizontal / vertical cuts (the --[]-- marker shows the direction)
  • If a Mona touches a growing cut you lose a paw; lose all three and it's game over
  • Best level is saved with State

Licensing and intellectual property

  • I created all code and assets in this PR, or they are already available under an MIT-compatible license and I have credited them in the app README
  • This PR doesn't include third-party characters, logos, trademarks, or other IP, or the owner has agreed to its release under the MIT License
  • I agree that my contribution is licensed under this project's MIT License

Additional notes

  • Mona sprites and icon are reused from the in-repo flappy_mona app; mona_left.png is a mirrored copy so the sprite anchor stays fixed when Mona turns.
  • Validation run:
    • python3 .github/scripts/validate_app_readmes.py badge/apps — passed
    • python3 .github/skills/hyb26-skill/scripts/validate_app.py badge/apps/mona_slice — passed (0 warnings)
    • Badge Simulator canvas: title, gameplay, cuts, level progression, and upside-down orientation exercised with no tracebacks
  • Gameplay tested on a physical Universe 2026 badge.

Copilot AI balanced review requested due to automatic review settings October 29, 2026 19:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Active issues cause frame-rate-dependent cursor movement and can freeze Monas’ horizontal motion with flickering facing in narrow compartments.

2 open issues
What changed in this PR

Adds Mona Slice, a territory-claiming game for the Universe 2026 badge using its graphics, logical controls, and saved-state APIs.

Changes:

  • Implements growing cuts, region capture, bouncing Monas, and three-paw lives.
  • Adds level progression with more and faster Monas, plus saved best-level tracking.
  • Documents controls, gameplay, requirements, and reused asset credits.
File Description
badge/​apps/​mona_slice/​README.md Describes gameplay, controls, requirements, and asset credits.
badge/​apps/​mona_slice/​__init__.py Implements game logic, rendering, input handling, and saved progress.

Review effort: Balanced

Comment thread badge/apps/mona_slice/__init__.py Resolved
Comment thread badge/apps/mona_slice/__init__.py Resolved
cardonator and others added 3 commits October 29, 2026 13:10
Mona-themed JezzBall for the Universe 2026 badge with animated, direction-facing
Mona sprites, successive levels with more Monas, directional slicer marker,
and cuts that stop at walls but cross captured territory.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Avoid using a third-party game name per the PR template's IP guidance, and
credit the reused flappy_mona sprite assets in the README.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve cursor repeat time across frames so held input remains consistent at
varying frame rates. Substep Mona movement so narrow compartments do not trap
her or cause her facing to flicker.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

No active review issues are identified for the Mona Slice addition.

No open issues 🎉

2 resolved since last review

Review effort: Balanced

This branch has not been deployed

No deployments
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