Fixed some problems with possible ConcurrentModificationExceptions and some minor changes.

This commit is contained in:
LevelX2 2016-01-31 23:23:09 +01:00
parent d97f6c6cd1
commit 81af372bc1
144 changed files with 410 additions and 429 deletions

View file

@ -1,16 +1,16 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
@ -20,12 +20,11 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.abilities.effects.common;
import java.util.UUID;
@ -51,7 +50,7 @@ public class DrawCardAllEffect extends OneShotEffect {
public DrawCardAllEffect(int amount) {
this(amount, TargetController.ANY);
}
public DrawCardAllEffect(DynamicValue amount) {
this(amount, TargetController.ANY);
}
@ -80,10 +79,10 @@ public class DrawCardAllEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player sourcePlayer = game.getPlayer(source.getControllerId());
switch(targetController) {
Player controller = game.getPlayer(source.getControllerId());
switch (targetController) {
case ANY:
for (UUID playerId: sourcePlayer.getInRange()) {
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
Player player = game.getPlayer(playerId);
if (player != null) {
player.drawCards(amount.calculate(game, source, this), game);
@ -91,12 +90,12 @@ public class DrawCardAllEffect extends OneShotEffect {
}
break;
case OPPONENT:
for (UUID playerId: game.getOpponents(sourcePlayer.getId())) {
for (UUID playerId : game.getOpponents(controller.getId())) {
Player player = game.getPlayer(playerId);
if (player != null) {
player.drawCards(amount.calculate(game, source, this), game);
}
}
}
break;
}
return true;
@ -104,7 +103,7 @@ public class DrawCardAllEffect extends OneShotEffect {
private String setText() {
StringBuilder sb = new StringBuilder("Each ");
switch(targetController) {
switch (targetController) {
case ANY:
sb.append("player");
break;
@ -115,9 +114,9 @@ public class DrawCardAllEffect extends OneShotEffect {
throw new UnsupportedOperationException("Not supported value for targetController");
}
sb.append(" draws ");
sb.append(CardUtil.numberToText(amount.toString(),"a"));
sb.append(CardUtil.numberToText(amount.toString(), "a"));
sb.append(" card");
sb.append(amount.toString().equals("1")?"":"s");
sb.append(amount.toString().equals("1") ? "" : "s");
return sb.toString();
}
}