diff --git a/go.graphics.swing/src/main/java/go/graphics/swing/event/swingInterpreter/GOSwingEventConverter.java b/go.graphics.swing/src/main/java/go/graphics/swing/event/swingInterpreter/GOSwingEventConverter.java index 7c1100970b..9c73659674 100644 --- a/go.graphics.swing/src/main/java/go/graphics/swing/event/swingInterpreter/GOSwingEventConverter.java +++ b/go.graphics.swing/src/main/java/go/graphics/swing/event/swingInterpreter/GOSwingEventConverter.java @@ -65,6 +65,8 @@ public class GOSwingEventConverter extends AbstractEventConverter public GOSwingEventConverter(Component component, GOEventHandlerProvider provider) { super(provider); + component.setFocusTraversalKeysEnabled(false); + component.addKeyListener(this); component.addMouseListener(this); component.addMouseMotionListener(this); @@ -252,6 +254,9 @@ private String getKeyName(KeyEvent e) { case KeyEvent.VK_BACK_SPACE: text = "BACK_SPACE"; break; + case KeyEvent.VK_TAB: + text = "TAB"; + break; default: text = "" + e.getKeyChar(); } diff --git a/jsettlers.buildingcreator/src/main/java/jsettlers/buildingcreator/editor/map/PseudoBuilding.java b/jsettlers.buildingcreator/src/main/java/jsettlers/buildingcreator/editor/map/PseudoBuilding.java index 0699050f77..dc290243f8 100644 --- a/jsettlers.buildingcreator/src/main/java/jsettlers/buildingcreator/editor/map/PseudoBuilding.java +++ b/jsettlers.buildingcreator/src/main/java/jsettlers/buildingcreator/editor/map/PseudoBuilding.java @@ -14,6 +14,9 @@ *******************************************************************************/ package jsettlers.buildingcreator.editor.map; +import java.util.Collections; +import java.util.List; + import jsettlers.common.buildings.EBuildingType; import jsettlers.common.buildings.IBuilding; import jsettlers.common.buildings.IBuildingMaterial; @@ -24,9 +27,6 @@ import jsettlers.common.position.ShortPoint2D; import jsettlers.common.selectable.ESelectionType; -import java.util.Collections; -import java.util.List; - public class PseudoBuilding implements IBuilding, IBuilding.IMill { private final EBuildingType type; private final ShortPoint2D pos; @@ -61,6 +61,11 @@ public boolean isSelected() { return false; } + @Override + public boolean isWounded() { + return false; + } + @Override public void setSelected(boolean b) { } diff --git a/jsettlers.common/src/main/java/jsettlers/common/action/EActionType.java b/jsettlers.common/src/main/java/jsettlers/common/action/EActionType.java index 2f8e0d2751..4aafbd4fa2 100644 --- a/jsettlers.common/src/main/java/jsettlers/common/action/EActionType.java +++ b/jsettlers.common/src/main/java/jsettlers/common/action/EActionType.java @@ -1,5 +1,5 @@ -/******************************************************************************* - * Copyright (c) 2015 +/* + * Copyright (c) 2015 - 2018 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, @@ -11,26 +11,26 @@ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. - *******************************************************************************/ + */ package jsettlers.common.action; /** * This enum defines the type of the action. - * + * * @author Michael Zangl * @author Andreas Eberle */ public enum EActionType { /** * Builds a building, the building has to be supplied by the action. - * + * * @see BuildAction */ BUILD, /** * Show or hide the construction marks. - * + * * @see ShowConstructionMarksAction */ SHOW_CONSTRUCTION_MARK, @@ -42,18 +42,23 @@ public enum EActionType { /** * Select a point on the map. - * + * * @see PointAction */ SELECT_POINT, /** * Select all units of the type on that point that are around that point. - * + * * @see PointAction */ SELECT_POINT_TYPE, + /** + * Select only the wounded of the current selection. + */ + FILTER_WOUNDED, + /** * Skip the next minute of gameplay. */ @@ -98,14 +103,14 @@ public enum EActionType { /** * Request to set the working area of the building. - * + * * @see SelectAction */ SET_WORK_AREA, /** * Lets the settler move to a given point. - * + * * @see MoveToAction */ MOVE_TO, @@ -122,7 +127,7 @@ public enum EActionType { /** * Selects an area of the screen. - * + * * @see SelectAreaAction */ SELECT_AREA, @@ -134,7 +139,7 @@ public enum EActionType { /** * The screen changed. - * + * * @see ScreenChangeAction */ SCREEN_CHANGE, @@ -146,7 +151,7 @@ public enum EActionType { /** * Changes the side panel content. - * + * * @see ChangePanelAction */ CHANGE_PANEL, @@ -185,7 +190,7 @@ public enum EActionType { /** * used to convert any movable to another.
- * + * * @see ConvertAction */ CONVERT, @@ -241,21 +246,21 @@ public enum EActionType { /** * The user wants to set the priority of the building. - * + * * @see SetBuildingPriorityAction */ SET_BUILDING_PRIORITY, /** * The user wants to change the settings for the distribution of a material to the receiving buildings. - * + * * @see SetMaterialDistributionSettingsAction */ SET_MATERIAL_DISTRIBUTION_SETTINGS, /** * The user wants to change the order in which materials are served by bearers. - * + * * @see SetMaterialPrioritiesAction */ SET_MATERIAL_PRIORITIES, @@ -271,21 +276,21 @@ public enum EActionType { NEXT_OF_TYPE, /** * Request an upgrade of the soldiers. - * + * * @see UpgradeSoldiersAction */ UPGRADE_SOLDIERS, /** * Set the material production. - * + * * @see SetMaterialProductionAction */ SET_MATERIAL_PRODUCTION, /** * Sets if the material should be placed in stock or not. - * + * * @see SetMaterialShouldUseStockAction */ SET_MATERIAL_STOCK_ACCEPTED, @@ -300,27 +305,27 @@ public enum EActionType { SOLDIERS_ONE, /** * Add one more soldier of this type to the building. - * + * * @see SoldierAction */ SOLDIERS_MORE, /** * Add one more soldier of this type to the building. - * + * * @see SoldierAction */ SOLDIERS_LESS, /** * Ask the user to select a trading waypoint. - * + * * @see AskSetTradingWaypointAction */ ASK_SET_TRADING_WAYPOINT, /** * Set the trading waypoint for the current selection. - * + * * @see SetTradingWaypointAction */ SET_TRADING_WAYPOINT, @@ -362,7 +367,7 @@ public enum EActionType { /** * Changes the amount of materials that should be traded from the current trading building. - * + * * @see ChangeTradingRequestAction */ CHANGE_TRADING_REQUEST diff --git a/jsettlers.common/src/main/java/jsettlers/common/selectable/ISelectable.java b/jsettlers.common/src/main/java/jsettlers/common/selectable/ISelectable.java index 20b01d6dd8..f558d76c83 100644 --- a/jsettlers.common/src/main/java/jsettlers/common/selectable/ISelectable.java +++ b/jsettlers.common/src/main/java/jsettlers/common/selectable/ISelectable.java @@ -46,4 +46,10 @@ public interface ISelectable extends IPlayerable{ * @return {@link ESelectionType} */ ESelectionType getSelectionType(); + + /** + * Returns whether this object is currently wounded. + * @return If it is wounded or not. + */ + boolean isWounded(); } diff --git a/jsettlers.graphics/src/main/java/jsettlers/graphics/map/MapContent.java b/jsettlers.graphics/src/main/java/jsettlers/graphics/map/MapContent.java index 7934c7cbf1..d085b68fec 100644 --- a/jsettlers.graphics/src/main/java/jsettlers/graphics/map/MapContent.java +++ b/jsettlers.graphics/src/main/java/jsettlers/graphics/map/MapContent.java @@ -37,9 +37,17 @@ import go.graphics.sound.SoundPlayer; import go.graphics.text.EFontSize; import go.graphics.text.TextDrawer; + import jsettlers.common.Color; import jsettlers.common.CommitInfo; import jsettlers.common.CommonConstants; +import jsettlers.common.action.Action; +import jsettlers.common.action.EActionType; +import jsettlers.common.action.IAction; +import jsettlers.common.action.PointAction; +import jsettlers.common.action.ScreenChangeAction; +import jsettlers.common.action.SelectAreaAction; +import jsettlers.common.action.ShowConstructionMarksAction; import jsettlers.common.buildings.EBuildingType; import jsettlers.common.buildings.IBuilding; import jsettlers.common.images.AnimationSequence; @@ -56,8 +64,6 @@ import jsettlers.common.menu.IMapInterfaceListener; import jsettlers.common.menu.IStartedGame; import jsettlers.common.menu.UIState; -import jsettlers.common.action.EActionType; -import jsettlers.common.action.IAction; import jsettlers.common.menu.messages.IMessage; import jsettlers.common.movable.IMovable; import jsettlers.common.position.FloatRectangle; @@ -65,14 +71,9 @@ import jsettlers.common.selectable.ISelectionSet; import jsettlers.common.statistics.FramerateComputer; import jsettlers.common.statistics.IGameTimeProvider; -import jsettlers.common.action.Action; import jsettlers.graphics.action.ActionFireable; import jsettlers.graphics.action.ActionHandler; import jsettlers.graphics.action.ActionThreadBlockingListener; -import jsettlers.common.action.PointAction; -import jsettlers.common.action.ScreenChangeAction; -import jsettlers.common.action.SelectAreaAction; -import jsettlers.common.action.ShowConstructionMarksAction; import jsettlers.graphics.font.FontDrawerFactory; import jsettlers.graphics.localization.Labels; import jsettlers.graphics.map.controls.IControls; @@ -769,6 +770,8 @@ private static Action getActionForKeyboard(String keyCode) { return new Action(EActionType.ZOOM_OUT); } else if ("F2".equalsIgnoreCase(keyCode)) { return new Action(EActionType.SAVE); + } else if ("TAB".equalsIgnoreCase(keyCode)) { + return new Action(EActionType.FILTER_WOUNDED); } else if ("DELETE".equalsIgnoreCase(keyCode)) { return new Action(EActionType.DESTROY); } else if ("ESCAPE".equalsIgnoreCase(keyCode)) { diff --git a/jsettlers.graphics/src/main/java/jsettlers/graphics/map/MapDrawContext.java b/jsettlers.graphics/src/main/java/jsettlers/graphics/map/MapDrawContext.java index c945460893..61ab436802 100644 --- a/jsettlers.graphics/src/main/java/jsettlers/graphics/map/MapDrawContext.java +++ b/jsettlers.graphics/src/main/java/jsettlers/graphics/map/MapDrawContext.java @@ -17,6 +17,7 @@ import java.util.Iterator; import go.graphics.GLDrawContext; + import jsettlers.common.Color; import jsettlers.common.landscape.ELandscapeType; import jsettlers.common.map.IDirectGridProvider; @@ -211,6 +212,7 @@ private ShortPoint2D getPositionUnder(float screenX, float screenY) { height = map.getHeightAt(mapX, mapY); mapX = (int) (getConverter().getExactMapXwithHeight(screenX, screenY, height) + 0.5); mapY = (int) (getConverter().getExactMapYwithHeight(screenX, screenY, height) + 0.5); + return new ShortPoint2D(mapX, mapY); } diff --git a/jsettlers.graphics/src/main/java/jsettlers/graphics/map/PlacementBuilding.java b/jsettlers.graphics/src/main/java/jsettlers/graphics/map/PlacementBuilding.java index 0e7e5e12b2..3297388ec4 100644 --- a/jsettlers.graphics/src/main/java/jsettlers/graphics/map/PlacementBuilding.java +++ b/jsettlers.graphics/src/main/java/jsettlers/graphics/map/PlacementBuilding.java @@ -72,6 +72,11 @@ public boolean isSelected() { return false; } + @Override + public boolean isWounded() { + return false; + } + @Override public IMapObject getNextObject() { return null; diff --git a/jsettlers.logic/src/main/java/jsettlers/input/GuiInterface.java b/jsettlers.logic/src/main/java/jsettlers/input/GuiInterface.java index 3f26b95906..944e1e761a 100644 --- a/jsettlers.logic/src/main/java/jsettlers/input/GuiInterface.java +++ b/jsettlers.logic/src/main/java/jsettlers/input/GuiInterface.java @@ -24,6 +24,7 @@ import java8.util.Optional; import java8.util.function.BiFunction; import java8.util.function.Predicate; +import java8.util.stream.Collectors; import jsettlers.algorithms.construction.ConstructionMarksThread; import jsettlers.common.action.BuildAction; import jsettlers.common.action.ChangeTradingRequestAction; @@ -212,6 +213,10 @@ public void action(IAction action) { handleSelectPointAction((PointAction) action); break; + case FILTER_WOUNDED: + filterWounded(); + break; + case SELECT_AREA: selectArea((SelectAreaAction) action); break; @@ -334,7 +339,7 @@ public void action(IAction action) { if (selected instanceof Building) { final ChangeTradingRequestAction a = (ChangeTradingRequestAction) action; scheduleTask(new ChangeTradingRequestGuiTask(EGuiAction.CHANGE_TRADING, playerId, ((Building) selected).getPosition(), a.getMaterial(), - a.getAmount(), a.isRelative() + a.getAmount(), a.isRelative() )); } break; @@ -345,7 +350,7 @@ public void action(IAction action) { if (selected instanceof Building) { final SetTradingWaypointAction a = (SetTradingWaypointAction) action; scheduleTask(new SetTradingWaypointGuiTask(EGuiAction.SET_TRADING_WAYPOINT, playerId, ((Building) selected).getPosition(), - a.getWaypointType(), a.getPosition() + a.getWaypointType(), a.getPosition() )); } break; @@ -608,6 +613,15 @@ private boolean canSelectPlayer(byte playerIdOfSelected) { return MatchConstants.ENABLE_ALL_PLAYER_SELECTION || playerIdOfSelected == playerId; } + private void filterWounded() { + if (currentSelection.getSelectionType() == ESelectionType.BUILDING) { + return; + } + + final List wounded = currentSelection.stream().filter(ISelectable::isWounded).collect(Collectors.toList()); + setSelection(new SelectionSet(wounded)); + } + private void deselect() { setSelection(new SelectionSet()); } @@ -625,7 +639,6 @@ private void handleSelectPointAction(PointAction action) { } else { setSelection(new SelectionSet()); } - } private void scheduleTask(SimpleGuiTask guiTask) { diff --git a/jsettlers.logic/src/main/java/jsettlers/logic/buildings/Building.java b/jsettlers.logic/src/main/java/jsettlers/logic/buildings/Building.java index ac606f55da..281283b359 100644 --- a/jsettlers.logic/src/main/java/jsettlers/logic/buildings/Building.java +++ b/jsettlers.logic/src/main/java/jsettlers/logic/buildings/Building.java @@ -14,6 +14,16 @@ *******************************************************************************/ package jsettlers.logic.buildings; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.ConcurrentLinkedQueue; + import jsettlers.algorithms.fogofwar.IViewDistancable; import jsettlers.common.buildings.EBuildingType; import jsettlers.common.buildings.IBuilding; @@ -57,16 +67,6 @@ import jsettlers.logic.timer.IScheduledTimerable; import jsettlers.logic.timer.RescheduleTimer; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.ConcurrentLinkedQueue; - public abstract class Building extends AbstractHexMapObject implements IConstructableBuilding, IPlayerable, IBuilding, IScheduledTimerable, IDebugable, IDiggerRequester, IViewDistancable { private static final long serialVersionUID = 4379555028512391595L; @@ -426,6 +426,11 @@ public boolean isSelected() { return this.selected; } + @Override + public boolean isWounded() { + return false; + } + @Override public void setSelected(boolean selected) { this.selected = selected; diff --git a/jsettlers.logic/src/main/java/jsettlers/logic/movable/Movable.java b/jsettlers.logic/src/main/java/jsettlers/logic/movable/Movable.java index 484e242fb7..accd4d725f 100644 --- a/jsettlers.logic/src/main/java/jsettlers/logic/movable/Movable.java +++ b/jsettlers.logic/src/main/java/jsettlers/logic/movable/Movable.java @@ -17,6 +17,7 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.io.Serializable; import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -53,6 +54,8 @@ * @author Andreas Eberle */ public final class Movable implements ILogicMovable { + private static final long serialVersionUID = -705947810059935865L; + private static final int SHIP_PUSH_DISTANCE = 10; private static final HashMap movablesByID = new HashMap<>(); @@ -845,6 +848,11 @@ public final boolean isSelected() { return selected; } + @Override + public final boolean isWounded() { + return health < movableType.health; + } + @Override public final void setSelected(boolean selected) { this.selected = selected; @@ -862,7 +870,7 @@ public EBuildingType getGarrisonedBuildingType() { @Override public final ESelectionType getSelectionType() { - return movableType.getSelectionType(); + return movableType.selectionType; } @Override diff --git a/jsettlers.mapcreator/src/main/java/jsettlers/mapcreator/data/objects/BuildingContainer.java b/jsettlers.mapcreator/src/main/java/jsettlers/mapcreator/data/objects/BuildingContainer.java index 4178602a7f..4723a8d066 100644 --- a/jsettlers.mapcreator/src/main/java/jsettlers/mapcreator/data/objects/BuildingContainer.java +++ b/jsettlers.mapcreator/src/main/java/jsettlers/mapcreator/data/objects/BuildingContainer.java @@ -82,6 +82,11 @@ public boolean isSelected() { return false; } + @Override + public boolean isWounded() { + return false; + } + @Override public void setSelected(boolean selected) { } diff --git a/jsettlers.mapcreator/src/main/java/jsettlers/mapcreator/data/objects/MovableObjectContainer.java b/jsettlers.mapcreator/src/main/java/jsettlers/mapcreator/data/objects/MovableObjectContainer.java index 8d7b8cb629..abb1f71c40 100644 --- a/jsettlers.mapcreator/src/main/java/jsettlers/mapcreator/data/objects/MovableObjectContainer.java +++ b/jsettlers.mapcreator/src/main/java/jsettlers/mapcreator/data/objects/MovableObjectContainer.java @@ -14,6 +14,9 @@ *******************************************************************************/ package jsettlers.mapcreator.data.objects; +import java.util.Collections; +import java.util.List; + import jsettlers.common.buildings.EBuildingType; import jsettlers.common.material.EMaterialType; import jsettlers.common.movable.EDirection; @@ -27,10 +30,6 @@ import jsettlers.logic.map.loading.data.objects.MapDataObject; import jsettlers.logic.map.loading.data.objects.MovableObject; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - public class MovableObjectContainer implements ObjectContainer, IMovable { private final MovableObject movableObject; @@ -58,6 +57,11 @@ public boolean isSelected() { return false; } + @Override + public boolean isWounded() { + return false; + } + @Override public void setSelected(boolean selected) { } diff --git a/jsettlers.testutils/src/main/java/jsettlers/testutils/map/DebugOutputStream.java b/jsettlers.testutils/src/main/java/jsettlers/testutils/map/DebugOutputStream.java index 1ad06e00fb..b537a77164 100644 --- a/jsettlers.testutils/src/main/java/jsettlers/testutils/map/DebugOutputStream.java +++ b/jsettlers.testutils/src/main/java/jsettlers/testutils/map/DebugOutputStream.java @@ -15,7 +15,7 @@ public DebugOutputStream(OutputStream outputStream) { @Override public void write(int b) throws IOException { byteCounter++; - if (byteCounter == 492368) { + if (byteCounter == 2136387) { System.out.println(); } outputStream.write(b); diff --git a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-0m.zmap b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-0m.zmap index 8e167cb44c..1e85f38c76 100644 Binary files a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-0m.zmap and b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-0m.zmap differ diff --git a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-10m.zmap b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-10m.zmap index 4f6bb5497b..42a8729a02 100644 Binary files a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-10m.zmap and b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-10m.zmap differ diff --git a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-20m.zmap b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-20m.zmap index 50dfa6266c..1213a5adb5 100644 Binary files a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-20m.zmap and b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-20m.zmap differ diff --git a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-40m.zmap b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-40m.zmap index 9b2f12b279..14e28d375c 100644 Binary files a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-40m.zmap and b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-40m.zmap differ diff --git a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-65m.zmap b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-65m.zmap index 1cd8959994..65c416c9f7 100644 Binary files a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-65m.zmap and b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-65m.zmap differ diff --git a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-90m.zmap b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-90m.zmap index 8a49824f39..c58a71f456 100644 Binary files a/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-90m.zmap and b/jsettlers.testutils/src/main/resources/jsettlers/integration/replay/fullproduction/savegame-90m.zmap differ diff --git a/jsettlers.tools/src/main/java/jsettlers/graphics/test/TestBuilding.java b/jsettlers.tools/src/main/java/jsettlers/graphics/test/TestBuilding.java index f85f925c80..d152d68dbd 100644 --- a/jsettlers.tools/src/main/java/jsettlers/graphics/test/TestBuilding.java +++ b/jsettlers.tools/src/main/java/jsettlers/graphics/test/TestBuilding.java @@ -68,6 +68,11 @@ public boolean isSelected() { return false; } + @Override + public boolean isWounded() { + return false; + } + @Override public void setSelected(boolean b) { diff --git a/jsettlers.tools/src/main/java/jsettlers/graphics/test/TestSettler.java b/jsettlers.tools/src/main/java/jsettlers/graphics/test/TestSettler.java index 2b30bf86fb..6bfa94fe72 100644 --- a/jsettlers.tools/src/main/java/jsettlers/graphics/test/TestSettler.java +++ b/jsettlers.tools/src/main/java/jsettlers/graphics/test/TestSettler.java @@ -100,6 +100,11 @@ public boolean isSelected() { return false; } + @Override + public boolean isWounded() { + return false; + } + @Override public void setSelected(boolean b) { }