/**
* Copyright (C) 2013 Gundog Studios LLC.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.godsandtowers.core.grid;
import java.util.HashMap;
public class Boards {
public static final String FOREST = "forest";
public static final String WINTER_FOREST = "winter_forest";
public static final String DESERT = "desert";
public static final String[] TILESETS = { FOREST, WINTER_FOREST, DESERT };
private static final Board BASIC = new Board("basic", WINTER_FOREST, new String[][] {
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", }, });
private static final Board CLOSE_CALL = new Board("close_call", FOREST, new String[][] {
{ "E", "E", "E", "E", "E", "S", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "F", "E", "E", "E", "E", "E", }, });
private static final Board CONFUSION = new Board("confusion", DESERT, new String[][] {
{ "S", "E", "E", "E", "E", "T", "E", "E", "E", "E", "S", },
{ "E", "E", "E", "E", "E", "T", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "T", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "T", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "F", "T", "F", "E", "E", "E", "E", },
{ "T", "T", "T", "T", "T", "T", "T", "T", "T", "T", "T", },
{ "E", "E", "E", "E", "F", "T", "F", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "T", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "T", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "T", "E", "E", "E", "E", "E", },
{ "S", "E", "E", "E", "E", "T", "E", "E", "E", "E", "S", }, });
private static final Board DECISIONS = new Board("decisions", FOREST, new String[][] {
{ "S", "T", "E", "E", "E", "E", "E", "E", "E", "E", "E", "T", "S", },
{ "E", "T", "E", "E", "E", "E", "E", "E", "E", "E", "E", "T", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "R", "F", "R", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "T", "E", "E", "E", "E", "E", "E", "E", "E", "E", "T", "E", },
{ "S", "T", "E", "E", "E", "E", "E", "E", "E", "E", "E", "T", "S", }, });
private static final Board FOUR_SQUARE = new Board("four_square", FOREST, new String[][] {
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "S", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "F", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "S", }, });
private static final Board OASIS = new Board("oasis", DESERT, new String[][] {
{ "E", "E", "E", "E", "E", "E", "E", "T", "E", "E", "F", },
{ "E", "E", "E", "T", "E", "E", "E", "T", "E", "E", "E", },
{ "E", "E", "E", "T", "E", "E", "E", "T", "E", "E", "E", },
{ "E", "E", "E", "T", "E", "E", "E", "T", "E", "E", "E", },
{ "E", "E", "E", "T", "E", "E", "E", "T", "E", "E", "E", },
{ "E", "E", "E", "T", "E", "E", "E", "T", "E", "E", "E", },
{ "E", "E", "E", "T", "E", "E", "E", "T", "E", "E", "E", },
{ "E", "E", "E", "T", "E", "E", "E", "T", "E", "E", "E", },
{ "S", "E", "E", "T", "E", "E", "E", "E", "E", "E", "E", }, });
private static final Board OPEN_FIELD = new Board("open_field", FOREST, new String[][] {
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", },
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", },
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", },
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", },
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", }, });
private static final Board PATH_TO_FREEDOM = new Board("path_to_freedom", WINTER_FOREST, new String[][] {
{ "S", "E", "T", "E", "E", "E", "E", "E", "R", "E", "E", "E", "E", "E", },
{ "E", "E", "T", "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", },
{ "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", },
{ "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", },
{ "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", },
{ "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", },
{ "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", },
{ "E", "E", "R", "E", "E", "R", "E", "E", "R", "E", "E", "T", "E", "E", },
{ "E", "E", "E", "E", "E", "R", "E", "E", "E", "E", "E", "T", "E", "F", }, });
private static final Board ROCKY_MOUNTAIN = new Board("rocky_mountain", DESERT, new String[][] {
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "R", "E", "E", "E", "R", "E", "E", "E", "R", "E", },
{ "E", "E", "E", "R", "E", "E", "E", "R", "E", "E", "E", },
{ "S", "R", "E", "E", "E", "R", "E", "E", "E", "R", "F", },
{ "E", "E", "E", "R", "E", "E", "E", "R", "E", "E", "E", },
{ "E", "R", "E", "E", "E", "R", "E", "E", "E", "R", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", }, });
private static final Board RUSH = new Board("rush", WINTER_FOREST, new String[][] {
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", }, { "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", }, { "E", "E", "E", "R", "T", "R", "E", "E", "E", },
{ "E", "E", "E", "S", "T", "F", "E", "E", "E", }, { "E", "E", "E", "R", "T", "R", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", }, { "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", }, });
private static final Board SIMPLE = new Board("simple", DESERT, new String[][] {
{ "S", "R", "E", "E", "E", "E", "E", "E", "E", "T", "F", },
{ "E", "R", "E", "E", "E", "E", "E", "E", "E", "T", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "R", "E", "E", "E", "E", "E", "E", "E", "T", "E", },
{ "S", "R", "E", "E", "E", "E", "E", "E", "E", "T", "F", }, });
private static final Board THREE_WAY = new Board("three_way", WINTER_FOREST, new String[][] {
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "T", "E", "F", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "T", "E", "E", },
{ "T", "T", "R", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "R", "R", "R", },
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "R", "R", "R", },
{ "T", "T", "R", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", },
{ "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "T", "E", "E", },
{ "S", "E", "E", "E", "E", "E", "E", "E", "E", "E", "T", "E", "F", }, });
public static final Board[] ALL_BOARDS = { BASIC, CLOSE_CALL, CONFUSION, DECISIONS, FOUR_SQUARE, OASIS, OPEN_FIELD,
PATH_TO_FREEDOM, ROCKY_MOUNTAIN, RUSH, SIMPLE, THREE_WAY, };
private static final HashMap<String, Board> boards;
static {
boards = new HashMap<String, Board>();
for (Board board : ALL_BOARDS) {
boards.put(board.getName(), board);
}
}
public static Board getBoard(String name) {
return boards.get(name);
}
}