package mahyarise.judge; import java.util.HashMap; import mahyarise.common.GameObjectID; import mahyarise.common.exceptions.MahyariseExceptionBase; public abstract class JudgeAbstract { // Tower types public static final int TOWER_TYPE_GAME = 0; public static final int TOWER_TYPE_BLACK = 1; public static final int TOWER_TYPE_TANK = 2; public static final int TOWER_TYPE_GENERAL_MATH = 3; public static final int TOWER_TYPE_ELECTRICITY = 4; public static final int TOWER_TYPE_POISON = 5; // Building types public static final int BUILDING_TYPE_HQ = 6; public static final int BUILDING_TYPE_MILITARY_BASE = 7; // Attacker types public static final int ATTACKER_INFANTRY = 8; public static final int ATTACKER_TANK = 9; // Map constants public static final int CELL_TYPE_HQ = 10; public static final int CELL_TYPE_MILITARY_BASE = 11; public static final int CELL_TYPE_LANE = 12; public static final int CELL_TYPE_UNUSED = 13; // Team IDs public static final int TEAM_CE = 0; public static final int TEAM_MATH = 1; // Powerup types public static final int PU_TOWER_PACE = 0; public static final int PU_TOWER_POWER = 1; public static final int PU_TOWER_RANGE = 2; public static final int PU_TOWER_AUTO_HEALING = 3; public static final int PU_ATTACKER_POWER = 4; public static final int PU_ATTACKER_HEALTH = 5; public static final int PU_CE_HEALTH = 6; public static final int PU_CE_ARMOR = 7; public static final int PU_CE_PACE = 8; public static final int PU_MATH_ECO = 9; public static final int PU_MATH_PROFIT = 10; public static final int PU_MATH_DEC_VAL = 11; //info fields public static final String HEALTH="health"; public static final String ROW="row"; public static final String COLOUMN = "col"; public static final String TANK_ATTACK = "TA"; public static final String INFANTRY_ATTACK = "IA"; public static final String ATTACK = "attack"; public static final String IS_ALIVE = "alive"; public static final String TEAM_ID = "id"; public static final String VALUE = "value"; public static final String RANGE = "range"; public static final String ORIENTATION = "or"; public static final String RELOAD_TIME = "time"; // Map functions public abstract void setMapSize(int columns, int rows); public abstract int getMapWidth(); public abstract int getMapHeight(); public abstract void loadMap(int[][] types); public abstract void setMapCellType(int col, int row, int type); public abstract int getMapCellType(int col, int row); public abstract void setup(); // Creators public abstract GameObjectID createAttacker(int teamID, int attackerType, int path, int lane) throws MahyariseExceptionBase; public abstract GameObjectID createTower(int teamID, int towerType, int col, int row) throws MahyariseExceptionBase; // Powerups public abstract void purchaseTeamPowerup(int teamID, int powerupType) throws MahyariseExceptionBase; public abstract void purchaseTowerPowerup(int teamID, GameObjectID id, int powerupType) throws MahyariseExceptionBase; // Info public abstract int getMoney(int teamID); public abstract int[] getTeamPowerups(int teamID); public abstract HashMap<String, Integer> getInfo(GameObjectID id) throws MahyariseExceptionBase; public abstract GameObjectID[] getBuildingID(int teamID, int buildingType); public abstract GameObjectID[] getInRange(GameObjectID id) throws MahyariseExceptionBase; public abstract GameObjectID getTarget(GameObjectID id) throws MahyariseExceptionBase; // Controller public abstract void next50milis(); public abstract void startTimer(); public abstract void pauseTimer(); public abstract float getTime(); // Judge cheat functions public abstract void setMoney(int teamID, int amount); public abstract void updateInfo(GameObjectID id, String infoKey, Integer infoValue) throws MahyariseExceptionBase; public abstract void updateInfo(GameObjectID id, HashMap<String, Integer> newInfo) throws MahyariseExceptionBase; }