package magic.model.action; import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.MagicPlayer; import magic.model.choice.MagicCombatCreature; import magic.model.choice.MagicDeclareBlockersResult; import magic.model.trigger.MagicTriggerType; public class DeclareBlockersAction extends MagicAction { private final MagicPlayer player; private final MagicDeclareBlockersResult result; public DeclareBlockersAction(final MagicPlayer player, final MagicDeclareBlockersResult result) { this.player = player; this.result = result; } @Override public void doAction(final MagicGame game) { for (final MagicCombatCreature[] creatures : result) { if (creatures.length>1) { final MagicPermanent attacker=creatures[0].permanent; for (int index=1;index<creatures.length;index++) { game.doAction(new DeclareBlockerAction(attacker,creatures[index].permanent)); } } } for (final MagicPermanent permanent : player.getOpponent().getPermanents()) { if (permanent.isAttacking() && !permanent.isBlocked()) { game.executeTrigger(MagicTriggerType.WhenAttacksUnblocked,permanent); } } } @Override public void undoAction(final MagicGame game) { } }