Add playable core UI: board painter, drag-and-drop, HUD, result overlay

CustomPainter board with gems/ghost/clear-flash, finger-lifted drag
with snap preview, combo text effect, HUD chips, phase overlays with
rescue stubs, demo stage. E2E widget test drives a real drag gesture.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 13:19:34 +09:00
parent 62cbb4b16a
commit 3138fc4b08
17 changed files with 1249 additions and 7 deletions
+13
View File
@@ -20,12 +20,22 @@ class PlacementResult {
required this.pointsGained,
required this.linesCleared,
required this.gemsCleared,
required this.clearedRows,
required this.clearedCols,
required this.comboStreak,
});
final List<GameEvent> events;
final int pointsGained;
final int linesCleared;
final int gemsCleared;
/// Which lines vanished, for the UI clear animation.
final List<int> clearedRows;
final List<int> clearedCols;
/// Streak level after this placement, for combo effects.
final int comboStreak;
}
/// The single stateful pure-Dart session object for one stage attempt.
@@ -130,6 +140,9 @@ class GameEngine {
pointsGained: delta.points,
linesCleared: clear.linesCleared,
gemsCleared: clear.gemsCleared,
clearedRows: clear.clearedRows,
clearedCols: clear.clearedCols,
comboStreak: _combo.streak,
);
}