From c61881e5df0ffdc24b2f0b90f2db9e15ca87eaf4 Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Fri, 12 Nov 2010 04:19:11 +0000 Subject: [PATCH] fixes --- Mage.Server/src/mage/server/game/GameController.java | 2 +- Mage.Sets/src/mage/sets/magic2011/AetherAdept.java | 2 +- Mage/src/mage/abilities/ActivatedAbilityImpl.java | 6 ++++-- Mage/src/mage/abilities/costs/common/PayLoyaltyCost.java | 3 +-- Mage/src/mage/counters/BoostCounter.java | 8 +++++++- Mage/src/mage/counters/MinusOneCounter.java | 8 ++++++++ Mage/src/mage/counters/PlusOneCounter.java | 9 +++++++++ Mage/src/mage/game/GameImpl.java | 5 +++++ Mage/src/mage/players/PlayerImpl.java | 6 ------ 9 files changed, 36 insertions(+), 13 deletions(-) diff --git a/Mage.Server/src/mage/server/game/GameController.java b/Mage.Server/src/mage/server/game/GameController.java index fbf81ad03df..35e8061785b 100644 --- a/Mage.Server/src/mage/server/game/GameController.java +++ b/Mage.Server/src/mage/server/game/GameController.java @@ -403,7 +403,7 @@ public class GameController implements GameCallback { private void addCardsForTesting(Game game) { try { File f = new File(INIT_FILE_PATH); - Pattern pattern = Pattern.compile("([a-zA-Z]*):([\\w]*):([a-zA-Z ,.!\\d]*):([\\d]*)"); + Pattern pattern = Pattern.compile("([a-zA-Z]*):([\\w]*):([a-zA-Z ,.!'\\d]*):([\\d]*)"); if (!f.exists()) { logger.warning("Couldn't find init file: " + INIT_FILE_PATH); return; diff --git a/Mage.Sets/src/mage/sets/magic2011/AetherAdept.java b/Mage.Sets/src/mage/sets/magic2011/AetherAdept.java index e9edf6fd8ec..cb7ed4dea70 100644 --- a/Mage.Sets/src/mage/sets/magic2011/AetherAdept.java +++ b/Mage.Sets/src/mage/sets/magic2011/AetherAdept.java @@ -45,7 +45,7 @@ import mage.target.common.TargetCreaturePermanent; public class AetherAdept extends CardImpl { public AetherAdept(UUID ownerId) { - super(ownerId, 41, "Æther Adept", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}{U}"); + super(ownerId, 41, "AEther Adept", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}{U}"); this.expansionSetCode = "M11"; this.subtype.add("Human"); this.subtype.add("Wizard"); diff --git a/Mage/src/mage/abilities/ActivatedAbilityImpl.java b/Mage/src/mage/abilities/ActivatedAbilityImpl.java index 7cdbd27cda5..ac6e7aa2fe1 100644 --- a/Mage/src/mage/abilities/ActivatedAbilityImpl.java +++ b/Mage/src/mage/abilities/ActivatedAbilityImpl.java @@ -141,8 +141,10 @@ public abstract class ActivatedAbilityImpl> ex if (!controlsAbility(playerId, game)) return false; //20091005 - 602.5d/602.5e - if ((timing == TimingRule.INSTANT || game.canPlaySorcery(playerId)) && costs.canPay(sourceId, controllerId, game) && targets.canChoose(sourceId, playerId, game)) { - return true; + if (timing == TimingRule.INSTANT || game.canPlaySorcery(playerId)) { + if (costs.canPay(sourceId, controllerId, game) && targets.canChoose(sourceId, playerId, game)) { + return true; + } } return false; } diff --git a/Mage/src/mage/abilities/costs/common/PayLoyaltyCost.java b/Mage/src/mage/abilities/costs/common/PayLoyaltyCost.java index ce8cef14c3e..bbe47c19a3c 100644 --- a/Mage/src/mage/abilities/costs/common/PayLoyaltyCost.java +++ b/Mage/src/mage/abilities/costs/common/PayLoyaltyCost.java @@ -29,7 +29,6 @@ package mage.abilities.costs.common; import java.util.UUID; -import mage.abilities.Ability; import mage.abilities.costs.CostImpl; import mage.game.Game; import mage.game.permanent.Permanent; @@ -63,7 +62,7 @@ public class PayLoyaltyCost extends CostImpl { @Override public boolean pay(Game game, UUID sourceId, UUID controllerId, boolean noMana) { Permanent planeswalker = game.getPermanent(sourceId); - if (planeswalker.getLoyalty().getValue() + amount > 0 && !planeswalker.isLoyaltyUsed()) { + if (planeswalker.getLoyalty().getValue() + amount >= 0 && !planeswalker.isLoyaltyUsed()) { planeswalker.getLoyalty().boostValue(amount); planeswalker.setLoyaltyUsed(true); this.paid = true; diff --git a/Mage/src/mage/counters/BoostCounter.java b/Mage/src/mage/counters/BoostCounter.java index eb8abe4e109..3c385980247 100644 --- a/Mage/src/mage/counters/BoostCounter.java +++ b/Mage/src/mage/counters/BoostCounter.java @@ -32,7 +32,7 @@ package mage.counters; * * @author BetaSteward_at_googlemail.com */ -public class BoostCounter> extends Counter { +public abstract class BoostCounter> extends Counter { protected int power; protected int toughness; @@ -43,6 +43,12 @@ public class BoostCounter> extends Counter { this.toughness = toughness; } + public BoostCounter(final BoostCounter counter) { + super(counter); + this.power = counter.power; + this.toughness = counter.toughness; + } + public int getPower() { return power; } diff --git a/Mage/src/mage/counters/MinusOneCounter.java b/Mage/src/mage/counters/MinusOneCounter.java index 1d030900c74..ccaaef28055 100644 --- a/Mage/src/mage/counters/MinusOneCounter.java +++ b/Mage/src/mage/counters/MinusOneCounter.java @@ -43,4 +43,12 @@ public class MinusOneCounter extends BoostCounter { this.count = amount; } + public MinusOneCounter(final MinusOneCounter counter) { + super(counter); + } + + @Override + public MinusOneCounter copy() { + return new MinusOneCounter(this); + } } diff --git a/Mage/src/mage/counters/PlusOneCounter.java b/Mage/src/mage/counters/PlusOneCounter.java index 008cb73afe8..1e1844c7c79 100644 --- a/Mage/src/mage/counters/PlusOneCounter.java +++ b/Mage/src/mage/counters/PlusOneCounter.java @@ -42,4 +42,13 @@ public class PlusOneCounter extends BoostCounter { super(1, 1); this.count = amount; } + + public PlusOneCounter(final PlusOneCounter counter) { + super(counter); + } + + @Override + public PlusOneCounter copy() { + return new PlusOneCounter(this); + } } diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index 5805fbb15e1..d0c18af8b89 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -83,6 +83,7 @@ import mage.players.PlayerList; import mage.players.Players; import mage.target.TargetPlayer; import mage.util.Logging; +import mage.watchers.Watcher; public abstract class GameImpl> implements Game, Serializable { @@ -156,6 +157,10 @@ public abstract class GameImpl> implements Game, Serializa for (Card card: cards) { card.setOwnerId(ownerId); gameCards.put(card.getId(), card); + for (Watcher watcher: card.getWatchers()) { + watcher.setControllerId(ownerId); + state.getWatchers().add(watcher); + } } } diff --git a/Mage/src/mage/players/PlayerImpl.java b/Mage/src/mage/players/PlayerImpl.java index 867d543c2d3..28a94e814f7 100644 --- a/Mage/src/mage/players/PlayerImpl.java +++ b/Mage/src/mage/players/PlayerImpl.java @@ -155,12 +155,6 @@ public abstract class PlayerImpl> implements Player, Ser this.left = false; this.passed = false; this.passedTurn = false; - for (Card card: library.getCards(game)) { - for (Watcher watcher: card.getWatchers()) { - watcher.setControllerId(playerId); - game.getState().getWatchers().add(watcher); - } - } findRange(game); }