feat(divination): 重构手动起卦教程,支持三硬币交互选择

This commit is contained in:
qzl
2026-04-07 18:41:08 +08:00
parent f904286ba7
commit f394df9362
29 changed files with 873 additions and 326 deletions
@@ -24,12 +24,14 @@ class DivinationScreen extends StatefulWidget {
required this.userId,
required this.onCompleted,
this.runServiceOverride,
this.allowVibration = true,
});
final SessionStore sessionStore;
final String userId;
final Future<void> Function(DivinationResultData result) onCompleted;
final DivinationRunService? runServiceOverride;
final bool allowVibration;
@override
State<DivinationScreen> createState() => _DivinationScreenState();
@@ -51,7 +53,7 @@ class _DivinationScreenState extends State<DivinationScreen> {
widget.runServiceOverride ??
DivinationRunService(api: DivinationApi(apiClient: apiClient));
_params = DivinationParams(
method: DivinationMethod.manual,
method: DivinationMethod.auto,
questionType: QuestionType.career,
question: '',
divinationTime: DateTime.now(),
@@ -169,7 +171,10 @@ class _DivinationScreenState extends State<DivinationScreen> {
return;
}
final nextParams = _params.copyWith(divinationTime: DateTime.now());
final nextParams = _params.copyWith(
divinationTime: DateTime.now(),
allowVibration: widget.allowVibration,
);
Navigator.of(context).push(
MaterialPageRoute<void>(
builder: (_) => AutoDivinationScreen(
@@ -406,13 +411,15 @@ Future<void> _showGuide(BuildContext context, AppLocalizations l10n) {
return DivinationGuideDialog(
title: l10n.divinationManualGuideTitle,
guideImages: const [
'assets/images/qigua/lc1.jpg',
'assets/images/qigua/lc2.jpg',
'assets/images/qigua/lc3.jpg',
'assets/images/qigua/lc4.jpg',
'assets/images/qigua/lc5.jpg',
['assets/images/tutorial/tutorial_1.png'],
['assets/images/tutorial/tutorial_2.png'],
['assets/images/tutorial/tutorial_3.png'],
],
instructions: [
l10n.divinationManualGuideStep1,
l10n.divinationManualGuideStep2,
l10n.divinationManualGuideStep3,
],
instructionText: l10n.divinationManualGuideInstruction,
);
},
);