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;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import forge.card.MagicColor;
import forge.game.Game;
import forge.game.GameActionUtil;
@@ -317,19 +319,34 @@ public class DigEffect extends SpellAbilityEffect {
}
if (sa.hasParam("Attacking")) {
final Combat combat = game.getCombat();
String attacking = sa.getParam("Attacking");
GameEntity defender = null;
FCollectionView<GameEntity> defs = null;
if (null != combat) {
final FCollectionView<GameEntity> e = combat.getDefenders();
final GameEntity defender = sa.getActivatingPlayer().getController().chooseSingleEntityForEffect(e, sa,
Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", CardTranslation.getTranslatedName(c.getName())), null);
if ("True".equalsIgnoreCase(attacking)) {
defs = combat.getDefenders();
} else if (sa.hasParam("ChoosePlayerOrPlaneswalker")) {
Player defendingPlayer = Iterables.getFirst(AbilityUtils.getDefinedPlayers(host,
attacking, sa), null);
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)) {
c.setExiledWith(effectHost);
}