From 4a5272f41e9836ad817ba12bc828a17cb801faff Mon Sep 17 00:00:00 2001 From: melvin Date: Sun, 3 Jul 2011 21:37:15 +0800 Subject: [PATCH] during simulation of declare attackers, each creature that has a choice has 50% chance of attacking --- .../choice/MagicDeclareAttackersChoice.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/magic/model/choice/MagicDeclareAttackersChoice.java b/src/magic/model/choice/MagicDeclareAttackersChoice.java index f0d9fb89e8..5b1de7b4e5 100644 --- a/src/magic/model/choice/MagicDeclareAttackersChoice.java +++ b/src/magic/model/choice/MagicDeclareAttackersChoice.java @@ -9,6 +9,7 @@ import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.MagicPermanentState; import magic.model.MagicPlayer; +import magic.model.MagicRandom; import magic.model.MagicSource; import magic.model.event.MagicEvent; import magic.ui.GameController; @@ -34,6 +35,31 @@ public class MagicDeclareAttackersChoice extends MagicChoice { return builder.buildResults(); } + @Override + public Object[] getSimulationChoiceResult( + final MagicGame game, + final MagicEvent event, + final MagicPlayer player, + final MagicSource source) { + + final MagicDeclareAttackersResult result = new MagicDeclareAttackersResult(); + final MagicCombatCreatureBuilder builder = new MagicCombatCreatureBuilder(game,player,game.getOpponent(player)); + builder.buildBlockers(); + + if (builder.buildAttackers()) { + for (final MagicCombatCreature attacker : builder.getAttackers()) { + if (attacker.hasAbility(MagicAbility.AttacksEachTurnIfAble) || + MagicRandom.nextInt(2) == 1) { + //creatures must attack OR + //creature has 50% chance of attacking + result.add(attacker.permanent); + } + } + } + + return new Object[]{result}; + } + @Override public Object[] getPlayerChoiceResults( final GameController controller,