import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; import 'package:petitbac/config/default_game_settings.dart'; class GameSettings { final String itemsCount; final String timerValue; GameSettings({ required this.itemsCount, required this.timerValue, }); int get itemsCountValue => DefaultGameSettings.getItemsCountValueFromCode(itemsCount); int get timerCountValue => DefaultGameSettings.getTimerValueFromCode(timerValue); static String getItemsCountValueFromUnsafe(String itemsCount) { if (DefaultGameSettings.allowedItemsCountValues.contains(itemsCount)) { return itemsCount; } return DefaultGameSettings.defaultItemsCountValue; } static String getTimerValueFromUnsafe(String timerValue) { if (DefaultGameSettings.allowedTimerValues.contains(timerValue)) { return timerValue; } return DefaultGameSettings.defaultTimerValue; } factory GameSettings.createDefault() { return GameSettings( itemsCount: DefaultGameSettings.defaultItemsCountValue, timerValue: DefaultGameSettings.defaultTimerValue, ); } void dump() { printlog('$GameSettings:'); printlog(' ${DefaultGameSettings.parameterCodeItemsCount}: $itemsCount'); printlog(' ${DefaultGameSettings.parameterCodeTimerValue}: $timerValue'); printlog(''); } @override String toString() { return '$GameSettings(${toJson()})'; } Map<String, dynamic>? toJson() { return <String, dynamic>{ DefaultGameSettings.parameterCodeItemsCount: itemsCount, DefaultGameSettings.parameterCodeTimerValue: timerValue, }; } }