feat: Implement core game engine logic, high-velocity UX, and new UI components including radial menu, inspector overlay, and mulligan view.
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# 2024-12-18 - High Velocity UX & Strict Engine Completion
|
||||
|
||||
## Status: Completed
|
||||
|
||||
We have successfully implemented the core strict rules engine features and the high-velocity UX components.
|
||||
|
||||
### 1. Rules Engine Refinement
|
||||
- **State-Based Actions (SBAs)**: Implemented robust SBA loop in `RulesEngine.ts`, utilizing `processStateBasedActions()` to cyclically check conditions (Lethal Damage, Legend Rule, Aura Validity) and recalculate layers until stability.
|
||||
- **Layer System**: Implemented Layer 7 (Power/Toughness) calculations, handling Base P/T, Setting Effects, Boosts, and Counters.
|
||||
- **Mana Engine**: Backend support for manual mana pool management (emptying at end of steps).
|
||||
- **Code Cleanup**: Resolved critical linting errors and structural issues in `RulesEngine.ts` (duplicate methods, undefined checks).
|
||||
|
||||
### 2. High-Velocity Frontend UX
|
||||
- **Inspector Overlay**: Created `InspectorOverlay.tsx` to visualize detailed card state (P/T modifications, counters, oracle text) with a modern, glassmorphism UI.
|
||||
- **Smart Button Advanced**: Implemented "Yield" toggle on the Smart Button. Users can long-press (simulated via pointer down) to yield priority until end of turn (or cancel).
|
||||
- **Radial Menu**: Created a generic `RadialMenu.tsx` component. Integrated it into the `GameView` via the Context Menu ("Add Mana...") to allow quick manual mana color selection for dual/utility lands.
|
||||
- **Context Menu Integration**: Added "Inspect Details" and "Add Mana..." options to the card context menu.
|
||||
|
||||
### 3. Verification
|
||||
- **GameView Integration**: All new components (`InspectorOverlay`, `SmartButton`, `RadialMenu`) are fully integrated into `GameView.ts`.
|
||||
- **Type Safety**: Updated `types/game.ts` to ensure consistency between client and server (e.g., `attachedTo`, `ptModification` properties).
|
||||
|
||||
## Next Steps
|
||||
- **Playtesting**: Validate the interaction between strict rules (timing, priority) and the new UX in a live multiplayer environment.
|
||||
- **Visual Polish**: Refine animations for Inspector and Radial Menu opening.
|
||||
- **Complex Card Logic**: Expand the engine to support more complex replacement effects and specific card scripts.
|
||||
Reference in New Issue
Block a user