EDIT: I could've just operated on the first reversion, but hindsight is 20/20.
Addresses #2, #3
What's changed
Initial Vite/React setup ⚡
(started from a clean working directory with the same git history)
Bootstrapped project from the Vite react template (with TypeScript and SWC)
Added initial configuration for ESLint and Prettier
Using husky as a pre-commit hook utility (linting, formating, and testing)
Changed manifest.json icons and favicons to match intended design
Implemented maskable icons in the manifest.json as suggested by the PWA documentation
learn more: https://web.dev/maskable-icon
Made changes to improve overall SEO (head metadata, robots.txt [unconfigured], etc.)
Jest testing & Redux 🧪
Implemented redux state slices for game and UI
Added initial respective tests for redux state slices
Initial configuration for react-redux with @reduxjs/toolkit
Added configuration for jest with typescript
Added ESLint rule for typescript consistent type imports
Initial UI implementation 💎
(considering this 'MVP', working state, but a lot of cleanup and additions needed)
Configured usage for Tailwind as the CSS framework (it's my first time, don't @ me)
Implemented UI components as close to the design spec as possible (need to figure out dynamic scaling for the disks/towers)
Features
Standard gameplay with rudimentary win condition, incrementing the 'diskCount' each successive win from an confirmation dialog (built-in)
Complex but subtle transitions/animations for tower hover and selection states
Keyboard shortcuts for tower selection
Reset game option
Stats for the number of moves and the minimum number of moves to win
Todo
[ ] Add timer to game state slice (likely timestamp comparison rather than an interval)
[ ] Implement logic and display for score multiplier (an equation that computes a number between 0 and 1 based on the timer, number of moves, and minimum number of moves)
[ ] Create a modal component to be used for a custom win dialog and future content
[ ] Investigate TailwindCSS class composition that works well with their prettier plugin
[ ] Add responsive drawer menu and implement the corresponding options
EDIT: I could've just operated on the first reversion, but hindsight is 20/20.
Addresses #2, #3
What's changed
Initial Vite/React setup ⚡
(started from a clean working directory with the same git history)
Jest testing & Redux 🧪
Initial UI implementation 💎
(considering this 'MVP', working state, but a lot of cleanup and additions needed)
Features
Todo