Feat: Add SettingsProvider and Toggle for Enemy Animations
This commit is contained in:
@@ -22,6 +22,7 @@ import 'main_menu_screen.dart';
|
||||
import '../game/config/battle_config.dart';
|
||||
import '../game/config/theme_config.dart';
|
||||
import '../game/config/app_strings.dart';
|
||||
import '../providers/settings_provider.dart'; // Import SettingsProvider
|
||||
|
||||
class BattleScreen extends StatefulWidget {
|
||||
const BattleScreen({super.key});
|
||||
@@ -293,6 +294,15 @@ class _BattleScreenState extends State<BattleScreen> {
|
||||
} else if (event.type == ActionType.attack &&
|
||||
event.target == EffectTarget.player &&
|
||||
event.feedbackType == null) {
|
||||
|
||||
// Check Settings
|
||||
bool enableAnim = context.read<SettingsProvider>().enableEnemyAnimations;
|
||||
|
||||
if (!enableAnim) {
|
||||
showEffect(); // Just show effect if anim disabled
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. Enemy Attack Animation Trigger
|
||||
final RenderBox? playerBox =
|
||||
_playerKey.currentContext?.findRenderObject() as RenderBox?;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import '../providers/battle_provider.dart';
|
||||
import '../providers/settings_provider.dart'; // Import SettingsProvider
|
||||
import 'main_menu_screen.dart';
|
||||
import '../game/config/theme_config.dart';
|
||||
import '../game/config/app_strings.dart';
|
||||
@@ -23,11 +24,27 @@ class SettingsScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 40),
|
||||
// Placeholder for future settings
|
||||
const Text(
|
||||
'Effect Intensity: Normal',
|
||||
style: TextStyle(color: ThemeConfig.textColorWhite),
|
||||
|
||||
// Enemy Animation Toggle
|
||||
Consumer<SettingsProvider>(
|
||||
builder: (context, settings, child) {
|
||||
return SizedBox(
|
||||
width: 300,
|
||||
child: SwitchListTile(
|
||||
title: const Text(
|
||||
AppStrings.enemyAnimations,
|
||||
style: TextStyle(color: ThemeConfig.textColorWhite),
|
||||
),
|
||||
value: settings.enableEnemyAnimations,
|
||||
onChanged: (value) {
|
||||
settings.toggleEnemyAnimations(value);
|
||||
},
|
||||
activeColor: ThemeConfig.btnActionActive,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
const SizedBox(height: 20),
|
||||
const Text(
|
||||
'Volume: 100%',
|
||||
|
||||
Reference in New Issue
Block a user