Files
BlockSeasons/lib/state/progress_notifier.dart
T
airkjw 7bc26447f7 Wire season flow: map screen, progress save, win recording, next stage
SaveRepository (versioned JSON over prefs) with best-result merging and
unlock walking; ContentRepository loads the bundled pack; SeasonFlow/
Progress notifiers orchestrate stage start -> win record -> advance.
Season map grid with stars/locks, Home -> Map -> Game navigation,
close button, next-stage action on the win overlay.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 17:04:45 +09:00

29 lines
782 B
Dart

import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../data/save_repository.dart';
import 'providers.dart';
/// Exposes saved progress as immutable state so screens rebuild when stars
/// land; persistence goes through [SaveRepository].
class ProgressNotifier extends Notifier<Map<String, StageProgress>> {
@override
Map<String, StageProgress> build() =>
ref.read(saveRepositoryProvider).snapshot();
Future<void> record({
required String seasonId,
required String stageId,
required int stars,
required int score,
}) async {
final repo = ref.read(saveRepositoryProvider);
await repo.recordResult(
seasonId: seasonId,
stageId: stageId,
stars: stars,
score: score,
);
state = repo.snapshot();
}
}