import 'package:minehunter/utils/tools.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 List<String> allowedSizeValues = [
    sizeValueSmall,
    sizeValueMedium,
    sizeValueLarge,
  ];
  // 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 [];
  }

  // parameters displayed with assets (instead of painter)
  static List<String> displayedWithAssets = [
    //
  ];

  // how many mines? (per 100 tiles)
  static const Map<String, int> minesCountRatios = {
    DefaultGameSettings.levelValueEasy: 5,
    DefaultGameSettings.levelValueMedium: 10,
    DefaultGameSettings.levelValueHard: 15,
    DefaultGameSettings.levelValueNightmare: 20,
  };
}