import 'package:flutter_custom_toolbox/flutter_toolbox.dart';

class DefaultGameSettings {
  // available game parameters codes
  static const String parameterCodeLevel = 'level';
  static const String parameterCodeSize = 'size';
  static const List<String> availableParameters = [
    parameterCodeLevel,
    parameterCodeSize,
  ];

  // level: available values
  static const String levelValueEasy = 'easy';
  static const String levelValueMedium = 'medium';
  static const String levelValueHard = 'hard';
  static const String levelValueNightmare = 'nightmare';
  static const List<String> allowedLevelValues = [
    levelValueEasy,
    levelValueMedium,
    levelValueHard,
    levelValueNightmare,
  ];
  // level: default value
  static const String defaultLevelValue = levelValueMedium;

  // size: available values
  static const String sizeValueSmall = '10x10';
  static const String sizeValueMedium = '15x15';
  static const String sizeValueLarge = '20x20';
  static const String sizeValueExtraLarge = '30x30';
  static const List<String> allowedSizeValues = [
    sizeValueSmall,
    sizeValueMedium,
    sizeValueLarge,
    sizeValueExtraLarge,
  ];
  // size: default value
  static const String defaultSizeValue = sizeValueMedium;

  // available values from parameter code
  static List<String> getAvailableValues(String parameterCode) {
    switch (parameterCode) {
      case parameterCodeLevel:
        return DefaultGameSettings.allowedLevelValues;
      case parameterCodeSize:
        return DefaultGameSettings.allowedSizeValues;
    }

    printlog('Did not find any available value for game parameter "$parameterCode".');
    return [];
  }
}