diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 45c334f82a6..2a12e8eed2d 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -165,7 +165,7 @@ public class GameAction { // need to check before it enters if (c.isAura() && !c.isAttachedToEntity() && toBattlefield && (zoneFrom == null || !zoneFrom.is(ZoneType.Stack))) { boolean found = false; - if (Iterables.any(game.getPlayers(),PlayerPredicates.canBeAttached(c))) { + if (Iterables.any(game.getPlayers(), PlayerPredicates.canBeAttached(c))) { found = true; } if (Iterables.any((CardCollectionView) params.get(AbilityKey.LastStateBattlefield), CardPredicates.canBeAttached(c))) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/AssignGroupEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AssignGroupEffect.java index cdbe031da9e..ba33ad319b1 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AssignGroupEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AssignGroupEffect.java @@ -53,7 +53,7 @@ public class AssignGroupEffect extends SpellAbilityEffect { final String title = Localizer.getInstance().getMessage("lblChooseAbilityForObject", g.toString()); Map params = Maps.newHashMap(); params.put("Affected", g); - + result.put(chooser.getController().chooseSingleSpellForEffect(abilities, sa, title, params), g); } @@ -61,14 +61,17 @@ public class AssignGroupEffect extends SpellAbilityEffect { for (SpellAbility s : abilities) { // is that in Player order? Collection l = result.get(s); - + + // no player assigned for this choice + if (l.isEmpty()) continue; + host.addRemembered(l); AbilityUtils.resolve(s); host.removeRemembered(l); - + // this will refresh continuous abilities for players and permanents. game.getAction().checkStaticAbilities(); - game.getTriggerHandler().resetActiveTriggers(false); + game.getTriggerHandler().resetActiveTriggers(); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java b/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java index 2b5dfdff324..617c31051aa 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java @@ -88,7 +88,7 @@ public class SacrificeEffect extends SpellAbilityEffect { } // Expand Sacrifice keyword here depending on what we need out of it. - final String num = sa.hasParam("Amount") ? sa.getParam("Amount") : "1"; + final String num = sa.getParamOrDefault("Amount", "1"); final int amount = AbilityUtils.calculateAmount(card, num, sa); final List tgts = getTargetPlayers(sa); final boolean devour = sa.hasParam("Devour"); @@ -126,7 +126,7 @@ public class SacrificeEffect extends SpellAbilityEffect { CardCollectionView choosenToSacrifice = null; for (final Player p : tgts) { CardCollectionView battlefield = p.getCardsIn(ZoneType.Battlefield); - if (sacEachValid) { // Sacrifice maximum permanents in any combination of types specified by SacValid + if (sacEachValid) { // Sacrifice maximum permanents in any combination of types specified by SacValid String [] validArray = valid.split(" & "); String [] msgArray = msg.split(" & "); List validTargetsList = new ArrayList<>(validArray.length); diff --git a/forge-game/src/main/java/forge/game/combat/CombatUtil.java b/forge-game/src/main/java/forge/game/combat/CombatUtil.java index 2f9d61dad8e..dce72ff97d3 100644 --- a/forge-game/src/main/java/forge/game/combat/CombatUtil.java +++ b/forge-game/src/main/java/forge/game/combat/CombatUtil.java @@ -81,11 +81,11 @@ public class CombatUtil { public static boolean validateAttackers(final Combat combat) { final AttackConstraints constraints = combat.getAttackConstraints(); - final Pair, Integer> bestAttack = constraints.getLegalAttackers(); final int myViolations = constraints.countViolations(combat.getAttackersAndDefenders()); if (myViolations == -1) { return false; } + final Pair, Integer> bestAttack = constraints.getLegalAttackers(); return myViolations <= bestAttack.getRight().intValue(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java index 56e54db9180..a1874547600 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java @@ -336,7 +336,7 @@ public class TriggerHandler { } public void resetTurnTriggerState() { - for(final Trigger t : activeTriggers) { + for (final Trigger t : activeTriggers) { t.resetTurnState(); } for (final Trigger t : delayedTriggers) {