diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/MapObject.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/MapObject.java index 6fa7ec657..2d94613ef 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/MapObject.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/MapObject.java @@ -26,6 +26,7 @@ public final class MapObject { public final String id; //placeName on this map or phraseID public final String map; public final String place; + public final String group; public final Requirement enteringRequirement; public final DropList dropList; public final MapObjectEvaluationType evaluateWhen; @@ -39,6 +40,7 @@ public final class MapObject { , final Requirement enteringRequirement , final DropList dropList , final MapObjectEvaluationType evaluateWhen + , final String group ) { this.position = new CoordRect(position); this.type = type; @@ -48,24 +50,25 @@ public final class MapObject { this.enteringRequirement = enteringRequirement; this.dropList = dropList; this.evaluateWhen = evaluateWhen; + this.group = group; } - public static MapObject createMapSignEvent(final CoordRect position, final String phraseID) { - return new MapObject(position, MapObjectType.sign, phraseID, null, null, null, null, MapObjectEvaluationType.whenEntering); + public static MapObject createMapSignEvent(final CoordRect position, final String phraseID, String group) { + return new MapObject(position, MapObjectType.sign, phraseID, null, null, null, null, MapObjectEvaluationType.whenEntering, group); } - public static MapObject createMapChangeArea(final CoordRect position, final String thisMapTitle, final String destinationMap, final String destinationPlace) { - return new MapObject(position, MapObjectType.newmap, thisMapTitle, destinationMap, destinationPlace, null, null, MapObjectEvaluationType.whenEntering); + public static MapObject createMapChangeArea(final CoordRect position, final String thisMapTitle, final String destinationMap, final String destinationPlace, String group) { + return new MapObject(position, MapObjectType.newmap, thisMapTitle, destinationMap, destinationPlace, null, null, MapObjectEvaluationType.whenEntering, group); } - public static MapObject createRestArea(final CoordRect position, final String placeId) { - return new MapObject(position, MapObjectType.rest, placeId, null, null, null, null, MapObjectEvaluationType.whenEntering); + public static MapObject createRestArea(final CoordRect position, final String placeId, String group) { + return new MapObject(position, MapObjectType.rest, placeId, null, null, null, null, MapObjectEvaluationType.whenEntering, group); } - public static MapObject createKeyArea(final CoordRect position, final String phraseID, final Requirement enteringRequirement) { - return new MapObject(position, MapObjectType.keyarea, phraseID, null, null, enteringRequirement, null, MapObjectEvaluationType.whenEntering); + public static MapObject createKeyArea(final CoordRect position, final String phraseID, final Requirement enteringRequirement, String group) { + return new MapObject(position, MapObjectType.keyarea, phraseID, null, null, enteringRequirement, null, MapObjectEvaluationType.whenEntering, group); } - public static MapObject createContainerArea(final CoordRect position, final DropList dropList) { - return new MapObject(position, MapObjectType.container, null, null, null, null, dropList, MapObjectEvaluationType.whenEntering); + public static MapObject createContainerArea(final CoordRect position, final DropList dropList, String group) { + return new MapObject(position, MapObjectType.container, null, null, null, null, dropList, MapObjectEvaluationType.whenEntering, group); } - public static MapObject createScriptArea(final CoordRect position, final String phraseID, final MapObjectEvaluationType evaluateWhen) { - return new MapObject(position, MapObjectType.script, phraseID, null, null, null, null, evaluateWhen); + public static MapObject createScriptArea(final CoordRect position, final String phraseID, final MapObjectEvaluationType evaluateWhen, String group) { + return new MapObject(position, MapObjectType.script, phraseID, null, null, null, null, evaluateWhen, group); } } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/MonsterSpawnArea.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/MonsterSpawnArea.java index bcef3682d..c22f7a411 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/MonsterSpawnArea.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/MonsterSpawnArea.java @@ -20,13 +20,15 @@ public final class MonsterSpawnArea { public final String[] monsterTypeIDs; public final ArrayList monsters = new ArrayList(); public final boolean isUnique; // unique == non-respawnable + public final String group; - public MonsterSpawnArea(CoordRect area, Range quantity, Range spawnChance, String[] monsterTypeIDs, boolean isUnique) { + public MonsterSpawnArea(CoordRect area, Range quantity, Range spawnChance, String[] monsterTypeIDs, boolean isUnique, String group) { this.area = area; this.quantity = quantity; this.spawnChance = spawnChance; this.monsterTypeIDs = monsterTypeIDs; this.isUnique = isUnique; + this.group = group; } public Monster getMonsterAt(final Coord p) { return getMonsterAt(p.x, p.y); } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/TMXMapTranslator.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/TMXMapTranslator.java index d34c5cd2e..66b9a2bda 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/TMXMapTranslator.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/TMXMapTranslator.java @@ -65,7 +65,7 @@ public final class TMXMapTranslator { for (TMXProperty p : object.properties) { if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) L.log("OPTIMIZE: Map " + m.name + ", sign " + object.name + "@" + topLeft.toString() + " has unrecognized property \"" + p.name + "\"."); } - mapObjects.add(MapObject.createMapSignEvent(position, phraseID)); + mapObjects.add(MapObject.createMapSignEvent(position, phraseID, group.name)); } else if (object.type.equalsIgnoreCase("mapchange")) { String map = null; String place = null; @@ -74,7 +74,7 @@ public final class TMXMapTranslator { else if(p.name.equalsIgnoreCase("place")) place = p.value; else if(AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) L.log("OPTIMIZE: Map " + m.name + ", mapchange " + object.name + "@" + topLeft.toString() + " has unrecognized property \"" + p.name + "\"."); } - mapObjects.add(MapObject.createMapChangeArea(position, object.name, map, place)); + mapObjects.add(MapObject.createMapChangeArea(position, object.name, map, place, group.name)); } else if (object.type.equalsIgnoreCase("spawn")) { ArrayList types = monsterTypes.getMonsterTypesFromSpawnGroup(object.name); int maxQuantity = 1; @@ -113,6 +113,7 @@ public final class TMXMapTranslator { ,new Range(1000, spawnChance) ,monsterTypeIDs ,isUnique + ,group.name ); spawnAreas.add(area); } else if (object.type.equalsIgnoreCase("key")) { @@ -133,13 +134,13 @@ public final class TMXMapTranslator { L.log("OPTIMIZE: Map " + m.name + ", key " + object.name + "@" + topLeft.toString() + " has unrecognized property \"" + p.name + "\"."); } } - mapObjects.add(MapObject.createKeyArea(position, phraseID, new Requirement(requireType, requireId, requireValue))); + mapObjects.add(MapObject.createKeyArea(position, phraseID, new Requirement(requireType, requireId, requireValue), group.name)); } else if (object.type.equals("rest")) { - mapObjects.add(MapObject.createRestArea(position, object.name)); + mapObjects.add(MapObject.createRestArea(position, object.name, group.name)); } else if (object.type.equals("container")) { DropList dropList = dropLists.getDropList(object.name); if (dropList == null) continue; - mapObjects.add(MapObject.createContainerArea(position, dropList)); + mapObjects.add(MapObject.createContainerArea(position, dropList, group.name)); } else if (object.type.equals("replace")) { // Do nothing. Will be handled when reading map layers instead. } else if (object.type.equalsIgnoreCase("script")) { @@ -162,7 +163,7 @@ public final class TMXMapTranslator { L.log("OPTIMIZE: Map " + m.name + ", script " + object.name + "@" + topLeft.toString() + " has unrecognized property \"" + p.name + "\"."); } } - mapObjects.add(MapObject.createScriptArea(position, phraseID, evaluateWhen)); + mapObjects.add(MapObject.createScriptArea(position, phraseID, evaluateWhen, group.name)); } else if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) { L.log("OPTIMIZE: Map " + m.name + ", has unrecognized object type \"" + object.type + "\" for name \"" + object.name + "\"."); }