Select Git revision
settings_game.dart
-
Benoît Harrault authoredBenoît Harrault authored
settings_game.dart 1.58 KiB
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,
};
}
}