import 'package:petitbac/utils/tools.dart'; class DefaultGameSettings { // available game parameters codes static const String parameterCodeItemsCount = 'itemsCount'; static const String parameterCodeTimerValue = 'timerValue'; static const List<String> availableParameters = [ parameterCodeItemsCount, parameterCodeTimerValue, ]; // items count: available values static const String itemsCountValueNoLimit = 'nolimit'; static const String itemsCountValueShort = 'short'; static const String itemsCountValueMedium = 'medium'; static const String itemsCountValueLong = 'long'; static const List<String> allowedItemsCountValues = [ itemsCountValueNoLimit, itemsCountValueShort, itemsCountValueMedium, itemsCountValueLong, ]; // items count: default value static const String defaultItemsCountValue = itemsCountValueMedium; // timer value: available values static const String timerValueNoTimer = 'nolimit'; static const String timerValueLow = 'low'; static const String timerValueMedium = 'medium'; static const String timerValueHigh = 'high'; static const List<String> allowedTimerValues = [ timerValueNoTimer, timerValueLow, timerValueMedium, timerValueHigh, ]; // timer value: default value static const String defaultTimerValue = timerValueMedium; // available values from parameter code static List<String> getAvailableValues(String parameterCode) { switch (parameterCode) { case parameterCodeItemsCount: return DefaultGameSettings.allowedItemsCountValues; case parameterCodeTimerValue: return DefaultGameSettings.allowedTimerValues; } printlog('Did not find any available value for game parameter "$parameterCode".'); return []; } static int getItemsCountValueFromCode(String itemsCountParameterValue) { const Map<String, int> values = { DefaultGameSettings.itemsCountValueNoLimit: 0, DefaultGameSettings.itemsCountValueShort: 5, DefaultGameSettings.itemsCountValueMedium: 10, DefaultGameSettings.itemsCountValueLong: 20, }; return values[itemsCountParameterValue] ?? getItemsCountValueFromCode(DefaultGameSettings.defaultItemsCountValue); } static int getTimerValueFromCode(String timerValueParameterValue) { const Map<String, int> values = { timerValueNoTimer: 0, timerValueLow: 5, timerValueMedium: 30, timerValueHigh: 90, }; return values[timerValueParameterValue] ?? getTimerValueFromCode(DefaultGameSettings.defaultTimerValue); } }