should not call destory in a loop using the original list as it modifies the list causing concurrent modification exception

master
melvin 2013-03-29 11:35:04 +08:00
parent f86c0b9e8e
commit 107b280803
1 changed files with 8 additions and 4 deletions

View File

@ -1,8 +1,12 @@
package magic.card; package magic.card;
import java.util.ArrayList;
import java.util.List;
import magic.model.MagicGame; import magic.model.MagicGame;
import magic.model.MagicPayedCost; import magic.model.MagicPayedCost;
import magic.model.MagicPermanent; import magic.model.MagicPermanent;
import magic.model.MagicPermanentList;
import magic.model.action.MagicDestroyAction; import magic.model.action.MagicDestroyAction;
import magic.model.action.MagicPermanentAction; import magic.model.action.MagicPermanentAction;
import magic.model.choice.MagicTargetChoice; import magic.model.choice.MagicTargetChoice;
@ -31,10 +35,10 @@ public class Eaten_by_Spiders {
final MagicEvent event) { final MagicEvent event) {
event.processTargetPermanent(game,new MagicPermanentAction() { event.processTargetPermanent(game,new MagicPermanentAction() {
public void doAction(final MagicPermanent creature) { public void doAction(final MagicPermanent creature) {
game.doAction(new MagicDestroyAction(creature)); final MagicPermanentList perms = new MagicPermanentList();
for (final MagicPermanent equipment : creature.getEquipmentPermanents()) { perms.add(creature);
game.doAction(new MagicDestroyAction(equipment)); perms.addAll(creature.getEquipmentPermanents());
} game.doAction(new MagicDestroyAction(perms));
} }
}); });
} }