JesseRWeigel / JesseRWeigel/battlemath

Add character customization and unlock system

Open
#160 0 comments 0 reactions 0 assignees View on GitHub
feature gameplay
Dominant language
TypeScript
Stars
37
Forks
29
PR merge metrics
No merged PRs in 30d

Description

## Summary

Add a coin-based economy and shop where players can unlock cosmetic customizations for their hero character. This provides long-term motivation beyond level progression.

> **⚠️ NEEDS DISCUSSION:** This feature needs maintainer input on visual design direction, art style, and scope before implementation begins. Please comment with preferences before starting work.

## Implementation Details

- **Coin economy:** Players earn coins from gameplay — 1 coin per correct answer, bonus coins from streaks and star achievements.
- **Shop screen:** Accessible from the main menu. Displays unlockable items in a grid layout with coin prices.
- **Unlockable categories:**
- Hero skins (color variations, outfits)
- Weapon/attack colors or effects
- Title badges displayed on the player profile
- **Coins display:** Current coin count shown in the top bar during gameplay and on menu screens.
- **Persistence:** Coin balance and unlocked items saved to `localStorage`.
- **Equipped items:** Player can equip one item from each category. Equipped items are visually reflected in gameplay.

## Acceptance Criteria

- [ ] Coins are earned from correct answers (1 per correct, bonus for streaks)
- [ ] Coin balance is displayed in the UI
- [ ] Shop screen shows available items with prices
- [ ] Items can be purchased if player has enough coins
- [ ] Purchased items appear in an inventory
- [ ] Items can be equipped and visually reflected in gameplay
- [ ] All state persisted to `localStorage`

## Notes

- **This issue is marked as needing discussion.** The art direction and specific unlockable items need to be decided with the maintainer before implementation.
- Start with a simple implementation (color tints for hero skins) before investing in custom art.
- The coin economy values will need balancing — start conservative and adjust based on playtesting.
- This is a larger feature; consider breaking into sub-issues once the design direction is agreed upon.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.