expand DigEffect.java to support Hans

This commit is contained in:
Northmoc
2020-11-01 18:07:44 -05:00
parent e28bf2f5e2
commit d35c528d35

View File

@@ -1,5 +1,7 @@
package forge.game.ability.effects; package forge.game.ability.effects;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.game.Game; import forge.game.Game;
import forge.game.GameActionUtil; import forge.game.GameActionUtil;
@@ -317,19 +319,34 @@ public class DigEffect extends SpellAbilityEffect {
} }
if (sa.hasParam("Attacking")) { if (sa.hasParam("Attacking")) {
final Combat combat = game.getCombat(); final Combat combat = game.getCombat();
if ( null != combat ) { String attacking = sa.getParam("Attacking");
final FCollectionView<GameEntity> e = combat.getDefenders(); GameEntity defender = null;
FCollectionView<GameEntity> defs = null;
final GameEntity defender = sa.getActivatingPlayer().getController().chooseSingleEntityForEffect(e, sa, if (null != combat) {
Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", CardTranslation.getTranslatedName(c.getName())), null); if ("True".equalsIgnoreCase(attacking)) {
defs = combat.getDefenders();
if (defender != null) { } else if (sa.hasParam("ChoosePlayerOrPlaneswalker")) {
combat.addAttacker(c, defender); Player defendingPlayer = Iterables.getFirst(AbilityUtils.getDefinedPlayers(host,
game.getCombat().getBandOfAttacker(c).setBlocked(false); attacking, sa), null);
game.fireEvent(new GameEventCombatChanged()); if (defendingPlayer != null) {
defs = game.getCombat().getDefendersControlledBy(defendingPlayer);
} }
} }
} }
if (defs != null) {
Map<String, Object> params = Maps.newHashMap();
params.put("Attacker", c);
defender = player.getController().chooseSingleEntityForEffect(defs, sa,
Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard",
CardTranslation.getTranslatedName(c.getName())),false,
params);
}
if (defender != null) {
combat.addAttacker(c, defender);
game.getCombat().getBandOfAttacker(c).setBlocked(false);
game.fireEvent(new GameEventCombatChanged());
}
}
} else if (destZone1.equals(ZoneType.Exile)) { } else if (destZone1.equals(ZoneType.Exile)) {
c.setExiledWith(effectHost); c.setExiledWith(effectHost);
} }