From 4e4642d192c2fb56b4a41a1d73162f2030d5e360 Mon Sep 17 00:00:00 2001 From: asvitkine Date: Sun, 21 Apr 2024 14:07:46 -0400 Subject: [PATCH] Clean up more code to use more concise helper. (#12531) --- .../strategy/triplea/ai/weak/WeakAi.java | 2 +- .../delegate/AbstractEndTurnDelegate.java | 7 ++---- .../delegate/AbstractPlaceDelegate.java | 7 +++--- .../triplea/delegate/AirThatCantLandUtil.java | 11 +++++----- .../triplea/delegate/MoveDelegate.java | 17 +++++++------- .../triplea/delegate/MovePerformer.java | 2 +- .../triplea/delegate/RocketsFireHelper.java | 8 +++---- .../triplea/delegate/SpecialMoveDelegate.java | 5 +---- .../triplea/delegate/UndoableMove.java | 9 ++++---- .../delegate/UnitsThatCantFightUtil.java | 4 +--- .../triplea/delegate/battle/AirBattle.java | 22 ++++++------------- .../delegate/battle/MustFightBattle.java | 5 ++--- .../move/validation/AirMovementValidator.java | 19 ++++++---------- .../move/validation/MoveValidator.java | 6 ++--- .../triplea/delegate/DiceRollTest.java | 1 - .../calculator/BattleCalculatorDialog.java | 8 +++---- 16 files changed, 50 insertions(+), 83 deletions(-) diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/ai/weak/WeakAi.java b/game-app/game-core/src/main/java/games/strategy/triplea/ai/weak/WeakAi.java index fe4d0fa4506..829d623e6cd 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/ai/weak/WeakAi.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/ai/weak/WeakAi.java @@ -368,7 +368,7 @@ private static List calculateCombatMoveSea( if (dontMoveFrom.contains(owned)) { continue; } - final List units = owned.getUnitCollection().getMatches(attackable); + final List units = owned.getMatches(attackable); unitsAlreadyMoved.addAll(units); moves.add(new MoveDescription(units, new Route(owned, t))); } diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AbstractEndTurnDelegate.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AbstractEndTurnDelegate.java index de7a07873c5..290a78d03e2 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AbstractEndTurnDelegate.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AbstractEndTurnDelegate.java @@ -413,11 +413,8 @@ private static void changeUnitOwnership(final IDelegateBridge bridge) { newOwners.retainAll(possibleNewOwners); for (final GamePlayer newOwner : newOwners) { final Collection units = - currTerritory - .getUnitCollection() - .getMatches( - Matches.unitIsOwnedBy(player) - .and(Matches.unitCanBeGivenByTerritoryTo(newOwner))); + currTerritory.getMatches( + Matches.unitIsOwnedBy(player).and(Matches.unitCanBeGivenByTerritoryTo(newOwner))); if (!units.isEmpty()) { change.add(ChangeFactory.changeOwner(units, newOwner, currTerritory)); changeList.add(Tuple.of(currTerritory, units)); diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AbstractPlaceDelegate.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AbstractPlaceDelegate.java index 9957dbb0500..af6ea49d00e 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AbstractPlaceDelegate.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AbstractPlaceDelegate.java @@ -545,7 +545,7 @@ private void freePlacementCapacity( if (getAlreadyProduced(producer).stream().anyMatch(Matches.unitCanProduceUnits())) { return null; } - final List fighters = producer.getUnitCollection().getMatches(ownedFighters); + final List fighters = producer.getMatches(ownedFighters); final Collection movedFighters = bridge.getRemotePlayer().getNumberOfFightersToMoveToNewCarrier(fighters, producer); if (movedFighters == null || movedFighters.isEmpty()) { @@ -1145,7 +1145,7 @@ protected int getMaxUnitsToBePlacedFrom( Matches.unitIsOwnedAndIsFactoryOrCanProduceUnits(player) .and(Matches.unitIsBeingTransported().negate()) .and(producer.isWater() ? Matches.unitIsLand().negate() : Matches.unitIsSea().negate()); - final Collection factoryUnits = producer.getUnitCollection().getMatches(factoryMatch); + final Collection factoryUnits = producer.getMatches(factoryMatch); // boolean placementRestrictedByFactory = isPlacementRestrictedByFactory(); final boolean unitPlacementPerTerritoryRestricted = Properties.getUnitPlacementPerTerritoryRestricted(properties); @@ -1609,8 +1609,7 @@ private boolean wasOwnedUnitThatCanProduceUnitsOrIsFactoryInTerritoryAtStartOfSt * value may be null. */ private GamePlayer getOriginalFactoryOwner(final Territory territory) { - final Collection factoryUnits = - territory.getUnitCollection().getMatches(Matches.unitCanProduceUnits()); + final Collection factoryUnits = territory.getMatches(Matches.unitCanProduceUnits()); if (factoryUnits.isEmpty()) { throw new IllegalStateException("No factory in territory:" + territory); } diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AirThatCantLandUtil.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AirThatCantLandUtil.java index 033e4ca83c3..250b46553c2 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AirThatCantLandUtil.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/AirThatCantLandUtil.java @@ -41,13 +41,13 @@ void removeAirThatCantLand( final GamePlayer player, final boolean spareAirInSeaZonesBesideFactories) { final GameState data = bridge.getData(); final GameMap map = data.getMap(); + final Predicate hasNeighboringFriendlyFactoryMatch = + Matches.territoryHasAlliedIsFactoryOrCanProduceUnits(player); for (final Territory current : getTerritoriesWhereAirCantLand(player)) { final Predicate ownedAir = Matches.unitIsAir().and(Matches.alliedUnit(player)); - final Collection air = current.getUnitCollection().getMatches(ownedAir); + final Collection air = current.getMatches(ownedAir); final boolean hasNeighboringFriendlyFactory = - map.getNeighbors(current, Matches.territoryHasAlliedIsFactoryOrCanProduceUnits(player)) - .size() - > 0; + !map.getNeighbors(current, hasNeighboringFriendlyFactoryMatch).isEmpty(); final boolean skip = spareAirInSeaZonesBesideFactories && current.isWater() && hasNeighboringFriendlyFactory; if (!skip) { @@ -64,8 +64,7 @@ private void removeAirThatCantLand( toRemove.addAll(airUnits); } else { // on water we may just no have enough carriers // find the carrier capacity - final Collection carriers = - territory.getUnitCollection().getMatches(Matches.alliedUnit(player)); + final Collection carriers = territory.getMatches(Matches.alliedUnit(player)); int capacity = AirMovementValidator.carrierCapacity(carriers, territory); for (final Unit unit : airUnits) { final UnitAttachment ua = unit.getUnitAttachment(); diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/MoveDelegate.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/MoveDelegate.java index becff3e369b..73b2f125a0d 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/MoveDelegate.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/MoveDelegate.java @@ -353,7 +353,7 @@ private static void removeMovementFromAirOnDamagedAlliedCarriers( .and(Matches.unitHasMovementLeft()); final CompositeChange change = new CompositeChange(); for (final Territory t : data.getMap().getTerritories()) { - final Collection ownedFighters = t.getUnitCollection().getMatches(ownedFightersMatch); + final Collection ownedFighters = t.getMatches(ownedFightersMatch); if (ownedFighters.isEmpty()) { continue; } @@ -560,29 +560,28 @@ private static int getLargestRepairRateForThisUnit( .and(Matches.unitCanRepairOthers()) .and(Matches.unitCanRepairThisUnit(unitToBeRepaired, territoryUnitIsIn)); final Set repairUnitsForThisUnit = - new HashSet<>(territoryUnitIsIn.getUnitCollection().getMatches(repairUnit)); + new HashSet<>(territoryUnitIsIn.getMatches(repairUnit)); if (Matches.unitIsSea().test(unitToBeRepaired)) { - final List neighbors = - new ArrayList<>(data.getMap().getNeighbors(territoryUnitIsIn, Matches.territoryIsLand())); + final Collection neighbors = + data.getMap().getNeighbors(territoryUnitIsIn, Matches.territoryIsLand()); for (final Territory current : neighbors) { final Predicate repairUnitLand = Matches.alliedUnit(owner) .and(Matches.unitCanRepairOthers()) .and(Matches.unitCanRepairThisUnit(unitToBeRepaired, current)) .and(Matches.unitIsLand()); - repairUnitsForThisUnit.addAll(current.getUnitCollection().getMatches(repairUnitLand)); + repairUnitsForThisUnit.addAll(current.getMatches(repairUnitLand)); } } else if (Matches.unitIsLand().test(unitToBeRepaired)) { - final List neighbors = - new ArrayList<>( - data.getMap().getNeighbors(territoryUnitIsIn, Matches.territoryIsWater())); + final Collection neighbors = + data.getMap().getNeighbors(territoryUnitIsIn, Matches.territoryIsWater()); for (final Territory current : neighbors) { final Predicate repairUnitSea = Matches.alliedUnit(owner) .and(Matches.unitCanRepairOthers()) .and(Matches.unitCanRepairThisUnit(unitToBeRepaired, current)) .and(Matches.unitIsSea()); - repairUnitsForThisUnit.addAll(current.getUnitCollection().getMatches(repairUnitSea)); + repairUnitsForThisUnit.addAll(current.getMatches(repairUnitSea)); } } int largest = 0; diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/MovePerformer.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/MovePerformer.java index 2b376d1e651..012849add6b 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/MovePerformer.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/MovePerformer.java @@ -176,7 +176,7 @@ public void execute(final ExecutionStack stack, final IDelegateBridge bridge) { boolean ignoreBattle = false; // could it be a bombing raid final Collection enemyUnits = - route.getEnd().getUnitCollection().getMatches(Matches.enemyUnit(gamePlayer)); + route.getEnd().getMatches(Matches.enemyUnit(gamePlayer)); final Collection enemyTargetsTotal = CollectionUtils.getMatches( enemyUnits, diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/RocketsFireHelper.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/RocketsFireHelper.java index d74f43bc0b7..6de5834002e 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/RocketsFireHelper.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/RocketsFireHelper.java @@ -121,8 +121,7 @@ private void findRocketTargetsAndFireIfNeeded( break; } final Collection enemyUnits = - CollectionUtils.getMatches( - targetTerritory.getUnitCollection(), + targetTerritory.getMatches( Matches.enemyUnit(player).and(Matches.unitIsBeingTransported().negate())); final Collection enemyTargetsTotal = CollectionUtils.getMatches( @@ -262,9 +261,8 @@ private void fireRocket( Properties.getDamageFromBombingDoneToUnitsInsteadOfTerritories(data.getProperties()); // unit damage vs territory damage final Collection enemyUnits = - attackedTerritory - .getUnitCollection() - .getMatches(Matches.enemyUnit(player).and(Matches.unitIsBeingTransported().negate())); + attackedTerritory.getMatches( + Matches.enemyUnit(player).and(Matches.unitIsBeingTransported().negate())); final Collection enemyTargetsTotal = CollectionUtils.getMatches( enemyUnits, Matches.unitIsAtMaxDamageOrNotCanBeDamaged(attackedTerritory).negate()); diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/SpecialMoveDelegate.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/SpecialMoveDelegate.java index 13c4225fd01..cfd24d3a64b 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/SpecialMoveDelegate.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/SpecialMoveDelegate.java @@ -139,10 +139,7 @@ public String performMove(final MoveDescription move) { currentMove.addChange(airborneChange); // make the bases start filling up their capacity final Collection basesAtStart = - route - .getStart() - .getUnitCollection() - .getMatches(MoveValidator.getAirborneBaseMatch(player, data)); + route.getStart().getMatches(MoveValidator.getAirborneBaseMatch(player, data)); final Change fillLaunchCapacity = getNewAssignmentOfNumberLaunchedChange(units.size(), basesAtStart, player, data); currentMove.addChange(fillLaunchCapacity); diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/UndoableMove.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/UndoableMove.java index 105514ab7f5..a79bf387f72 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/UndoableMove.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/UndoableMove.java @@ -118,11 +118,10 @@ protected void undoSpecific(final IDelegateBridge bridge) { if (routeUnitUsedToMove != null) { final Territory end = routeUnitUsedToMove.getEnd(); final Collection enemyTargetsTotal = - end.getUnitCollection() - .getMatches( - Matches.enemyUnit(bridge.getGamePlayer()) - .and(Matches.unitCanBeDamaged()) - .and(Matches.unitIsBeingTransported().negate())); + end.getMatches( + Matches.enemyUnit(bridge.getGamePlayer()) + .and(Matches.unitCanBeDamaged()) + .and(Matches.unitIsBeingTransported().negate())); final Collection enemyTargets = CollectionUtils.getMatches( enemyTargetsTotal, diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/UnitsThatCantFightUtil.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/UnitsThatCantFightUtil.java index 5d9fbae0572..b4737d19b67 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/UnitsThatCantFightUtil.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/UnitsThatCantFightUtil.java @@ -29,9 +29,7 @@ Collection getTerritoriesWhereUnitsCantFight(final GamePlayer player) .build(); final int countAllOwnedUnits = current.getUnitCollection().countMatches(ownedUnitsMatch); final Collection nonCombatUnits = - current - .getUnitCollection() - .getMatches(ownedUnitsMatch.and(Matches.unitCanAttack(player).negate())); + current.getMatches(ownedUnitsMatch.and(Matches.unitCanAttack(player).negate())); if (nonCombatUnits.isEmpty() || nonCombatUnits.size() != countAllOwnedUnits) { continue; } diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/battle/AirBattle.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/battle/AirBattle.java index 5ff7c5951f3..96f3efce59f 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/battle/AirBattle.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/battle/AirBattle.java @@ -85,14 +85,10 @@ public void updateDefendingUnits() { // fill in defenders if (isBombingRun) { defendingUnits = - battleSite - .getUnitCollection() - .getMatches(defendingBombingRaidInterceptors(battleSite, attacker, gameData)); + battleSite.getMatches(defendingBombingRaidInterceptors(battleSite, attacker, gameData)); } else { defendingUnits = - battleSite - .getUnitCollection() - .getMatches(defendingGroundSeaBattleInterceptors(attacker, gameData)); + battleSite.getMatches(defendingGroundSeaBattleInterceptors(attacker, gameData)); } } @@ -353,12 +349,10 @@ private void makeBattle(final IDelegateBridge bridge) { if (!bombers.isEmpty()) { Map> targets = null; final Collection enemyTargetsTotal = - battleSite - .getUnitCollection() - .getMatches( - Matches.enemyUnit(bridge.getGamePlayer()) - .and(Matches.unitCanBeDamaged()) - .and(Matches.unitIsBeingTransported().negate())); + battleSite.getMatches( + Matches.enemyUnit(bridge.getGamePlayer()) + .and(Matches.unitCanBeDamaged()) + .and(Matches.unitIsBeingTransported().negate())); for (final Unit unit : bombers) { final Collection enemyTargets = CollectionUtils.getMatches( @@ -575,9 +569,7 @@ public static int getMaxInterceptionCount(final Territory t, final Collection populateStaticAlliedAndBuildingCarrierCapac startingSpace.add(t, producedCarrierCapacity); carriersInProductionQueue.clear(); } - final Collection alliedCarriers = - t.getUnitCollection().getMatches(carrierAlliedNotOwned); + final Collection alliedCarriers = t.getMatches(carrierAlliedNotOwned); alliedCarriers.removeAll(movedCarriersAndTheirFighters.keySet()); final int alliedCarrierCapacity = carrierCapacity(alliedCarriers, t); startingSpace.add(t, alliedCarrierCapacity); @@ -378,9 +377,7 @@ private static void validateAirCaughtByMovingCarriersAndOwnedAndAlliedAir( // owned units, not to // carry our selected units. carrierSpotCapacity = - carrierCapacity( - carrierSpot.getUnitCollection().getMatches(alliedNotOwnedCarrierMatch), - carrierSpot); + carrierCapacity(carrierSpot.getMatches(alliedNotOwnedCarrierMatch), carrierSpot); landingSpotsWithCarrierCapacity.put(carrierSpot, carrierSpotCapacity); } // we have allied air here, so we need to account for them before moving any carriers @@ -551,7 +548,7 @@ private static BigDecimal maxMovementLeftForAllOwnedCarriers( BigDecimal max = BigDecimal.ZERO; final Predicate ownedCarrier = Matches.unitIsCarrier().and(Matches.unitIsOwnedBy(player)); for (final Territory t : data.getMap().getTerritories()) { - for (final Unit carrier : t.getUnitCollection().getMatches(ownedCarrier)) { + for (final Unit carrier : t.getMatches(ownedCarrier)) { max = max.max(carrier.getMovementLeft()); } } @@ -619,8 +616,7 @@ private static List getAirUnitsToValidate( ownedAir.addAll(CollectionUtils.getMatches(units, ownedAirMatch)); // Remove suicide units if combat move and any enemy units at destination - final Collection enemyUnitsAtEnd = - route.getEnd().getUnitCollection().getMatches(Matches.enemyUnit(player)); + final Collection enemyUnitsAtEnd = route.getEnd().getMatches(Matches.enemyUnit(player)); if (!enemyUnitsAtEnd.isEmpty() && GameStepPropertiesHelper.isCombatMove(player.getData())) { ownedAir.removeIf(Matches.unitIsSuicideOnAttack()); } @@ -797,9 +793,8 @@ public static int carrierCapacity(final Unit unit, final Territory territoryUnit } int cargo = 0; final Collection airCargo = - territoryUnitsAreCurrentlyIn - .getUnitCollection() - .getMatches(Matches.unitIsAir().and(Matches.unitCanLandOnCarrier())); + territoryUnitsAreCurrentlyIn.getMatches( + Matches.unitIsAir().and(Matches.unitCanLandOnCarrier())); for (final Unit airUnit : airCargo) { if (airUnit.getTransportedBy() != null && airUnit.getTransportedBy().equals(unit)) { // capacity = are cargo only @@ -830,7 +825,7 @@ private static boolean getEditMode(final GameState data) { public static Collection getFriendly( final Territory territory, final GamePlayer player, final GameState data) { - return territory.getUnitCollection().getMatches(Matches.alliedUnit(player)); + return territory.getMatches(Matches.alliedUnit(player)); } private static boolean areNeutralsPassableByAir(final GameState data) { diff --git a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/move/validation/MoveValidator.java b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/move/validation/MoveValidator.java index 96ca7722c38..5f4c47311d9 100644 --- a/game-app/game-core/src/main/java/games/strategy/triplea/delegate/move/validation/MoveValidator.java +++ b/game-app/game-core/src/main/java/games/strategy/triplea/delegate/move/validation/MoveValidator.java @@ -595,10 +595,8 @@ && enemyDestroyerOnPath(route, player)) { return result.setErrorReturnResult("Cannot move submarines under destroyers"); } // Can't advance to battle unless only ignored units on route, only air units to sea, or only - // units that can enter - // territories with enemy units during NCM - if (end.getUnitCollection() - .anyMatch(Matches.enemyUnit(player).and(Matches.unitIsSubmerged().negate())) + // units that can enter territories with enemy units during NCM + if (end.anyUnitsMatch(Matches.enemyUnit(player).and(Matches.unitIsSubmerged().negate())) && !onlyIgnoredUnitsOnPath(route, player, false) && !(end.isWater() && units.stream().allMatch(Matches.unitIsAir())) && !(Properties.getSubsCanEndNonCombatMoveWithEnemies(data.getProperties()) diff --git a/game-app/game-core/src/test/java/games/strategy/triplea/delegate/DiceRollTest.java b/game-app/game-core/src/test/java/games/strategy/triplea/delegate/DiceRollTest.java index fb4fc850c9f..483e4764d84 100644 --- a/game-app/game-core/src/test/java/games/strategy/triplea/delegate/DiceRollTest.java +++ b/game-app/game-core/src/test/java/games/strategy/triplea/delegate/DiceRollTest.java @@ -1072,7 +1072,6 @@ void testSbrRolls() { gameData .getMap() .getTerritory("United Kingdom") - .getUnitCollection() .getMatches(Matches.unitIsStrategicBomber()) .get(0); // default 1 roll diff --git a/game-app/game-headed/src/main/java/games/strategy/triplea/odds/calculator/BattleCalculatorDialog.java b/game-app/game-headed/src/main/java/games/strategy/triplea/odds/calculator/BattleCalculatorDialog.java index a240d3adfbe..44877d51d69 100644 --- a/game-app/game-headed/src/main/java/games/strategy/triplea/odds/calculator/BattleCalculatorDialog.java +++ b/game-app/game-headed/src/main/java/games/strategy/triplea/odds/calculator/BattleCalculatorDialog.java @@ -123,16 +123,14 @@ public static void addAttackers(final Territory t) { .noneMatch(Matches.unitIsOwnedBy(currentPanel.getAttacker()))) { // Find possible attackers (enemies) of the current defender. // Count how many units each one has and find the max. - final List units = - t.getUnitCollection().getMatches(Matches.enemyUnit(currentPanel.getDefender())); + final List units = t.getMatches(Matches.enemyUnit(currentPanel.getDefender())); final GamePlayer gamePlayer = new IntegerMap<>(units, Unit::getOwner).maxKey(); if (gamePlayer != null) { currentPanel.setAttacker(gamePlayer); } } - currentPanel.addAttackingUnits( - t.getUnitCollection().getMatches(Matches.unitIsOwnedBy(currentPanel.getAttacker()))); + currentPanel.addAttackingUnits(t.getMatches(Matches.unitIsOwnedBy(currentPanel.getAttacker()))); } public static void addDefenders(final Territory t) { @@ -150,7 +148,7 @@ public static void addDefenders(final Territory t) { .ifPresent(currentDialog.panel::setDefender); } currentDialog.panel.addDefendingUnits( - t.getUnitCollection().getMatches(Matches.alliedUnit(currentDialog.panel.getDefender()))); + t.getMatches(Matches.alliedUnit(currentDialog.panel.getDefender()))); currentDialog.pack(); }