package jsettlers.logic.map.loading; import jsettlers.common.map.object.MapObject; import jsettlers.common.map.object.MovableObject; import jsettlers.common.map.object.StackObject; import jsettlers.common.material.EMaterialType; import jsettlers.common.movable.EMovableType; import java.util.List; import java.util.Vector; /** * @author codingberlin */ public enum EMapStartResources { LOW_GOODS(1), MEDIUM_GOODS(2), HIGH_GOODS(3); public final int value; EMapStartResources(int value) { this.value = value; } public static EMapStartResources fromMapValue(int mapValue) { for (int i = 0; i < EMapStartResources.values().length; i++) { if (EMapStartResources.values()[i].value == mapValue) return EMapStartResources.values()[i]; } System.err.println("wrong value for 'EMapStartResources' " + Integer.toString(mapValue) + "!"); return EMapStartResources.HIGH_GOODS; } public static List<MapObject> generateStackObjects(EMapStartResources mapStartResources) { List<MapObject> goods = new Vector<MapObject>(); switch (mapStartResources) { case LOW_GOODS: goods.add(new StackObject(EMaterialType.PLANK, 6)); goods.add(new StackObject(EMaterialType.PLANK, 6)); goods.add(new StackObject(EMaterialType.STONE, 6)); goods.add(new StackObject(EMaterialType.STONE, 6)); goods.add(new StackObject(EMaterialType.BLADE, 5)); goods.add(new StackObject(EMaterialType.HAMMER, 6)); goods.add(new StackObject(EMaterialType.AXE, 3)); goods.add(new StackObject(EMaterialType.PICK, 2)); goods.add(new StackObject(EMaterialType.SAW, 1)); break; case MEDIUM_GOODS: goods.add(new StackObject(EMaterialType.PLANK, 7)); goods.add(new StackObject(EMaterialType.PLANK, 6)); goods.add(new StackObject(EMaterialType.PLANK, 6)); goods.add(new StackObject(EMaterialType.PLANK, 6)); goods.add(new StackObject(EMaterialType.STONE, 7)); goods.add(new StackObject(EMaterialType.STONE, 6)); goods.add(new StackObject(EMaterialType.STONE, 6)); goods.add(new StackObject(EMaterialType.STONE, 6)); goods.add(new StackObject(EMaterialType.COAL, 8)); goods.add(new StackObject(EMaterialType.COAL, 7)); goods.add(new StackObject(EMaterialType.IRONORE, 5)); goods.add(new StackObject(EMaterialType.FISH, 3)); goods.add(new StackObject(EMaterialType.BREAD, 7)); goods.add(new StackObject(EMaterialType.MEAT, 5)); goods.add(new StackObject(EMaterialType.BLADE, 5)); goods.add(new StackObject(EMaterialType.BLADE, 5)); goods.add(new StackObject(EMaterialType.HAMMER, 8)); goods.add(new StackObject(EMaterialType.HAMMER, 7)); goods.add(new StackObject(EMaterialType.AXE, 6)); goods.add(new StackObject(EMaterialType.PICK, 4)); goods.add(new StackObject(EMaterialType.SAW, 2)); goods.add(new StackObject(EMaterialType.SCYTHE, 1)); goods.add(new StackObject(EMaterialType.FISHINGROD, 1)); break; default: goods.add(new StackObject(EMaterialType.PLANK, 8)); goods.add(new StackObject(EMaterialType.PLANK, 8)); goods.add(new StackObject(EMaterialType.PLANK, 7)); goods.add(new StackObject(EMaterialType.PLANK, 7)); goods.add(new StackObject(EMaterialType.STONE, 8)); goods.add(new StackObject(EMaterialType.STONE, 8)); goods.add(new StackObject(EMaterialType.STONE, 8)); goods.add(new StackObject(EMaterialType.STONE, 7)); goods.add(new StackObject(EMaterialType.COAL, 7)); goods.add(new StackObject(EMaterialType.COAL, 7)); goods.add(new StackObject(EMaterialType.COAL, 6)); goods.add(new StackObject(EMaterialType.COAL, 6)); goods.add(new StackObject(EMaterialType.IRONORE, 6)); goods.add(new StackObject(EMaterialType.IRONORE, 6)); goods.add(new StackObject(EMaterialType.FISH, 7)); goods.add(new StackObject(EMaterialType.BREAD, 8)); goods.add(new StackObject(EMaterialType.BREAD, 7)); goods.add(new StackObject(EMaterialType.MEAT, 8)); goods.add(new StackObject(EMaterialType.BLADE, 8)); goods.add(new StackObject(EMaterialType.BLADE, 7)); goods.add(new StackObject(EMaterialType.HAMMER, 7)); goods.add(new StackObject(EMaterialType.HAMMER, 6)); goods.add(new StackObject(EMaterialType.HAMMER, 6)); goods.add(new StackObject(EMaterialType.HAMMER, 6)); goods.add(new StackObject(EMaterialType.AXE, 8)); goods.add(new StackObject(EMaterialType.PICK, 5)); goods.add(new StackObject(EMaterialType.SAW, 3)); goods.add(new StackObject(EMaterialType.SCYTHE, 3)); goods.add(new StackObject(EMaterialType.FISHINGROD, 2)); break; } return goods; } public static List<MapObject> generateMovableObjects(EMapStartResources mapStartResources, byte playerId) { List<MapObject> movables = new Vector<MapObject>(); switch (mapStartResources) { case LOW_GOODS: for (byte i = 0; i < 2; i++) movables.add(new MovableObject(EMovableType.MINER, playerId)); movables.add(new MovableObject(EMovableType.SMITH, playerId)); movables.add(new MovableObject(EMovableType.BOWMAN_L1, playerId)); movables.add(new MovableObject(EMovableType.PIKEMAN_L1, playerId)); for (byte i = 0; i < 6; i++) movables.add(new MovableObject(EMovableType.SWORDSMAN_L1, playerId)); for (byte i = 0; i < 16; i++) movables.add(new MovableObject(EMovableType.BEARER, playerId)); break; case MEDIUM_GOODS: for (byte i = 0; i < 4; i++) movables.add(new MovableObject(EMovableType.MINER, playerId)); for (byte i = 0; i < 2; i++) movables.add(new MovableObject(EMovableType.SMITH, playerId)); for (byte i = 0; i < 2; i++) movables.add(new MovableObject(EMovableType.BOWMAN_L1, playerId)); for (byte i = 0; i < 2; i++) movables.add(new MovableObject(EMovableType.PIKEMAN_L1, playerId)); for (byte i = 0; i < 10; i++) movables.add(new MovableObject(EMovableType.SWORDSMAN_L1, playerId)); for (byte i = 0; i < 32; i++) movables.add(new MovableObject(EMovableType.BEARER, playerId)); for (byte i = 0; i < 4; i++) movables.add(new MovableObject(EMovableType.DONKEY, playerId)); break; default: for (byte i = 0; i < 6; i++) movables.add(new MovableObject(EMovableType.MINER, playerId)); for (byte i = 0; i < 3; i++) movables.add(new MovableObject(EMovableType.SMITH, playerId)); for (byte i = 0; i < 4; i++) movables.add(new MovableObject(EMovableType.BOWMAN_L1, playerId)); for (byte i = 0; i < 4; i++) movables.add(new MovableObject(EMovableType.PIKEMAN_L1, playerId)); for (byte i = 0; i < 12; i++) movables.add(new MovableObject(EMovableType.SWORDSMAN_L1, playerId)); for (byte i = 0; i < 50; i++) movables.add(new MovableObject(EMovableType.BEARER, playerId)); for (byte i = 0; i < 6; i++) movables.add(new MovableObject(EMovableType.DONKEY, playerId)); break; } return movables; } }