diff --git a/src/engine/net/client/handlers/AttackCmdMsgHandler.java b/src/engine/net/client/handlers/AttackCmdMsgHandler.java index 192119bb..89ec350b 100644 --- a/src/engine/net/client/handlers/AttackCmdMsgHandler.java +++ b/src/engine/net/client/handlers/AttackCmdMsgHandler.java @@ -49,20 +49,21 @@ public class AttackCmdMsgHandler extends AbstractClientMsgHandler { targetType = Enum.GameObjectType.values()[msg.getTargetType()]; - if (msg.getTargetType() == Enum.GameObjectType.Mob.ordinal()) { - target = Mob.getMob(msg.getTargetID()); - } else if (msg.getTargetType() == Enum.GameObjectType.Building.ordinal()) { - target = BuildingManager.getBuilding(msg.getTargetID()); - Building targetBuilding = (Building) target; - if (!targetBuilding.isVulnerable() || targetBuilding.getRank() < 0) { - playerCharacter.setCombatTarget(null); - return true; - } - } else if(msg.getTargetType() == Enum.GameObjectType.PlayerCharacter.ordinal()){ - target = PlayerCharacter.getPlayerCharacter(msg.getTargetID()); - } else{ - playerCharacter.setCombatTarget(null); - return true; //cannot attack other things + switch(targetType){ + case Mob: + target = Mob.getMob(msg.getTargetID()); + break; + case PlayerCharacter: + target = PlayerCharacter.getPlayerCharacter(msg.getTargetID()); + break; + case Building: + target = BuildingManager.getBuilding(msg.getTargetID()); + Building targetBuilding = (Building) target; + if (!targetBuilding.isVulnerable() || targetBuilding.getRank() < 0) + return true;// cannot attack destroyed building or protected building + break; + default: + return true;//cannot attack anything other than the 3 above } if(target == null) {