void clear() { final String METHOD_NAME = "clear()"; getOwner().methodBegin(getClass(), METHOD_NAME); try { getUnitPaths().clear(); getUnitPotentialLocations().clear(); getLastKnownLocations().clear(); } finally { getOwner().methodEnd(getClass(), METHOD_NAME); } }
/** * From a list of potential moves, make a potential ending location chart */ void updateUnitLocations(Entity entity, List<MovePath> paths) { final String METHOD_NAME = "updateUnitLocations(Entity, ArrayList<MovePath>)"; getOwner().methodBegin(getClass(), METHOD_NAME); try { // clear previous locations for this entity getUnitPotentialLocations().remove(entity.getId()); // Set<CoordFacingCombo> toAdd = new HashSet<>(); for (MovePath path : paths) { toAdd.add(CoordFacingCombo.createCoordFacingCombo(path)); } getUnitPotentialLocations().put(entity.getId(), toAdd); } finally { getOwner().methodEnd(getClass(), METHOD_NAME); } }
boolean canFlankAndKick(Entity enemy, Coords behind, Coords leftFlank, Coords rightFlank, int myFacing) { final String METHOD_NAME = "canFlankAndKick(Entity, Coords, Coords, " + "Coords, int)"; Set<CoordFacingCombo> enemyFacingSet = pathEnumerator.getUnitPotentialLocations().get(enemy.getId()); if (enemyFacingSet == null) { getOwner().log(getClass(), METHOD_NAME, LogLevel.WARNING, "no facing set for " + enemy.getDisplayName()); return false; } return enemyFacingSet.contains(CoordFacingCombo.createCoordFacingCombo(behind, myFacing)) || enemyFacingSet.contains(CoordFacingCombo.createCoordFacingCombo(behind, (myFacing + 1) % 6)) || enemyFacingSet.contains(CoordFacingCombo.createCoordFacingCombo(behind, (myFacing + 5) % 6)) || enemyFacingSet.contains(CoordFacingCombo.createCoordFacingCombo(leftFlank, myFacing)) || enemyFacingSet.contains(CoordFacingCombo.createCoordFacingCombo(leftFlank, (myFacing + 4) % 6)) || enemyFacingSet.contains(CoordFacingCombo.createCoordFacingCombo(leftFlank, (myFacing + 5) % 6)) || enemyFacingSet.contains(CoordFacingCombo.createCoordFacingCombo(rightFlank, myFacing)) || enemyFacingSet.contains(CoordFacingCombo.createCoordFacingCombo(rightFlank, (myFacing + 1) % 6)) || enemyFacingSet.contains(CoordFacingCombo.createCoordFacingCombo(rightFlank, (myFacing + 2) % 6)); }
return returnSet; for (Integer id : getUnitPotentialLocations().keySet()) { if (groundOnly && getGame().getEntity(id) != null if (getUnitPotentialLocations().get(id).contains(CoordFacingCombo.createCoordFacingCombo (location, facing))) { returnSet.add(id);
getPathEnumerator().getUnitMovableAreas().remove(id); getPathEnumerator().getUnitPaths().remove(id); getPathEnumerator().getUnitPotentialLocations().remove(id); return;
myArea.addCoordFacingCombos(getUnitPotentialLocations().get( mover.getId()).iterator()); getUnitMovableAreas().put(mover.getId(), myArea);