From f504a543e11cf994fcfc25b03a2225dfc0c6dfe5 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Tue, 12 Feb 2013 17:14:20 +0100 Subject: [PATCH] Removed unnecessary battlefield.count methods not considering player range. Changed cards that used the removed methods. --- .../mage/sets/alarareborn/FiligreeAngel.java | 2 +- .../championsofkamigawa/BudokaGardener.java | 2 +- .../mage/sets/darksteel/EmissaryOfHope.java | 2 +- .../sets/lorwyn/ImmaculateMagistrate.java | 2 +- .../src/mage/sets/magic2011/Corrupt.java | 2 +- .../mage/sets/magic2011/HarborSerpent.java | 2 +- .../magic2013/LilianaOfTheDarkRealms.java | 2 +- .../mage/sets/magic2013/TimberpackWolf.java | 2 +- .../src/mage/sets/newphyrexia/WarReport.java | 4 +- .../sets/returntoravnica/AxebaneGuardian.java | 2 +- .../sets/scarsofmirrodin/Glimmerpost.java | 2 +- .../sets/scarsofmirrodin/StrataScythe.java | 2 +- .../src/mage/sets/tenth/RelentlessRats.java | 2 +- .../sets/urzaslegacy/ImpendingDisaster.java | 2 +- .../mage/sets/urzaslegacy/PlanarCollapse.java | 2 +- .../sets/urzaslegacy/RadiantArchangel.java | 2 +- .../src/mage/sets/urzassaga/Bravado.java | 27 +++--- .../mage/sets/urzassaga/CarpetOfFlowers.java | 2 +- .../src/mage/sets/urzassaga/Worship.java | 2 +- .../src/mage/sets/worldwake/HarabazDruid.java | 2 +- .../src/mage/sets/worldwake/MiresToll.java | 2 +- .../mage/sets/worldwake/TuktukScrapper.java | 2 +- .../src/mage/sets/zendikar/NissaRevane.java | 2 +- .../zendikar/ValakutTheMoltenPinnacle.java | 10 +- .../condition/common/NoCreatureCondition.java | 2 +- .../effects/common/AffinityEffect.java | 6 +- .../abilities/keyword/OfferingAbility.java | 2 +- Mage/src/mage/game/permanent/Battlefield.java | 91 +++++++------------ 28 files changed, 83 insertions(+), 101 deletions(-) diff --git a/Mage.Sets/src/mage/sets/alarareborn/FiligreeAngel.java b/Mage.Sets/src/mage/sets/alarareborn/FiligreeAngel.java index f307d94bbd3..6d960251ed1 100644 --- a/Mage.Sets/src/mage/sets/alarareborn/FiligreeAngel.java +++ b/Mage.Sets/src/mage/sets/alarareborn/FiligreeAngel.java @@ -92,7 +92,7 @@ class FiligreeAngelEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - int life = game.getBattlefield().count(filter, source.getControllerId(), game) * 3; + int life = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game) * 3; player.gainLife(life, game); } return true; diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/BudokaGardener.java b/Mage.Sets/src/mage/sets/championsofkamigawa/BudokaGardener.java index 6e2cd736582..27f3a89e449 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/BudokaGardener.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/BudokaGardener.java @@ -106,7 +106,7 @@ class BudokaGardenerEffect extends OneShotEffect { if (c != null) { c.moveToZone(Zone.BATTLEFIELD, source.getSourceId(), game, false); } - if (game.getBattlefield().count(DokaiWeaverofLifeToken.filterLands, source.getControllerId(), game) >= 10) { + if (game.getBattlefield().count(DokaiWeaverofLifeToken.filterLands, source.getSourceId(), source.getControllerId(), game) >= 10) { Permanent p = game.getPermanent(source.getSourceId()); if (p != null) { p.flip(game); diff --git a/Mage.Sets/src/mage/sets/darksteel/EmissaryOfHope.java b/Mage.Sets/src/mage/sets/darksteel/EmissaryOfHope.java index f3ca21d6a40..8119a793c8d 100644 --- a/Mage.Sets/src/mage/sets/darksteel/EmissaryOfHope.java +++ b/Mage.Sets/src/mage/sets/darksteel/EmissaryOfHope.java @@ -96,7 +96,7 @@ class EmissaryOfHopeEffect extends OneShotEffect { Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source)); Player sourcePlayer = game.getPlayer(source.getControllerId()); if (targetPlayer != null && sourcePlayer != null) { - int amount = game.getBattlefield().count(filter, targetPlayer.getId(), game); + int amount = game.getBattlefield().count(filter, source.getSourceId(), targetPlayer.getId(), game); if (amount > 0) { sourcePlayer.gainLife(amount, game); } diff --git a/Mage.Sets/src/mage/sets/lorwyn/ImmaculateMagistrate.java b/Mage.Sets/src/mage/sets/lorwyn/ImmaculateMagistrate.java index 4d412f6ab26..3b557606303 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/ImmaculateMagistrate.java +++ b/Mage.Sets/src/mage/sets/lorwyn/ImmaculateMagistrate.java @@ -103,7 +103,7 @@ class ImmaculateMagistrateEffect extends OneShotEffect 0) { permanent.addCounters(CounterType.P1P1.createInstance(count), game); return true; diff --git a/Mage.Sets/src/mage/sets/magic2011/Corrupt.java b/Mage.Sets/src/mage/sets/magic2011/Corrupt.java index ff953fd1039..ed02fbffb5e 100644 --- a/Mage.Sets/src/mage/sets/magic2011/Corrupt.java +++ b/Mage.Sets/src/mage/sets/magic2011/Corrupt.java @@ -89,7 +89,7 @@ class CorruptEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - int amount = game.getBattlefield().count(filter, source.getControllerId(), game); + int amount = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); if (amount > 0) { int damageDealt = amount; Permanent permanent = game.getPermanent(source.getFirstTarget()); diff --git a/Mage.Sets/src/mage/sets/magic2011/HarborSerpent.java b/Mage.Sets/src/mage/sets/magic2011/HarborSerpent.java index 603da979d0f..79e6b768919 100644 --- a/Mage.Sets/src/mage/sets/magic2011/HarborSerpent.java +++ b/Mage.Sets/src/mage/sets/magic2011/HarborSerpent.java @@ -98,7 +98,7 @@ class HarborSerpentEffect extends RestrictionEffect { @Override public boolean applies(Permanent permanent, Ability source, Game game) { - if (game.getBattlefield().countAll(filter, game) < 5) { + if (game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game) < 5) { return true; } return false; diff --git a/Mage.Sets/src/mage/sets/magic2013/LilianaOfTheDarkRealms.java b/Mage.Sets/src/mage/sets/magic2013/LilianaOfTheDarkRealms.java index a7a25b0008a..8fba0b1ea37 100644 --- a/Mage.Sets/src/mage/sets/magic2013/LilianaOfTheDarkRealms.java +++ b/Mage.Sets/src/mage/sets/magic2013/LilianaOfTheDarkRealms.java @@ -129,7 +129,7 @@ class LilianaOfTheDarkRealmsEffect extends ContinuousEffectImpl { @Override public boolean apply(Game game, Ability source) { - int count = game.getBattlefield().count(filter, source.getControllerId(), game) - 1; + int count = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game) - 1; if (count > 0) { Permanent target = (Permanent) game.getPermanent(source.getSourceId()); if (target != null) { diff --git a/Mage.Sets/src/mage/sets/newphyrexia/WarReport.java b/Mage.Sets/src/mage/sets/newphyrexia/WarReport.java index 009e7a8d4c1..f111ec2c82e 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/WarReport.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/WarReport.java @@ -85,8 +85,8 @@ class WarReportEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - int lifeToGain = game.getBattlefield().countAll(new FilterCreaturePermanent(), game); - lifeToGain += game.getBattlefield().countAll(new FilterArtifactPermanent(), game); + int lifeToGain = game.getBattlefield().count(new FilterCreaturePermanent(), source.getSourceId(), source.getControllerId(), game); + lifeToGain += game.getBattlefield().count(new FilterArtifactPermanent(), source.getSourceId(), source.getControllerId(), game); player.gainLife(lifeToGain, game); } return true; diff --git a/Mage.Sets/src/mage/sets/returntoravnica/AxebaneGuardian.java b/Mage.Sets/src/mage/sets/returntoravnica/AxebaneGuardian.java index 693dd350fb9..e9f3666cd68 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/AxebaneGuardian.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/AxebaneGuardian.java @@ -104,7 +104,7 @@ class AxebaneGuardianManaEffect extends ManaEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if(player != null){ - int x = game.getBattlefield().count(filter, source.getControllerId(), game); + int x = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); Mana mana = new Mana(); for(int i = 0; i < x; i++){ diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/Glimmerpost.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/Glimmerpost.java index e273892a1b9..15cf83f372c 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/Glimmerpost.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/Glimmerpost.java @@ -86,7 +86,7 @@ class GlimmerpostEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - int amount = game.getBattlefield().count(filter, source.getControllerId(), game); + int amount = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); Player player = game.getPlayer(source.getControllerId()); if (player != null) { player.gainLife(amount, game); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/StrataScythe.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/StrataScythe.java index a6b5714a55c..76fa46423ac 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/StrataScythe.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/StrataScythe.java @@ -134,7 +134,7 @@ class SameNameAsExiledCountValue implements DynamicValue { if (permanent != null && permanent.getImprinted().size() > 0) { FilterPermanent filterPermanent = new FilterPermanent(); filterPermanent.add(new NamePredicate(game.getCard(permanent.getImprinted().get(0)).getName())); - value = game.getBattlefield().countAll(filterPermanent, game); + value = game.getBattlefield().count(filterPermanent, sourceAbility.getSourceId(), sourceAbility.getControllerId(), game); } return value; } diff --git a/Mage.Sets/src/mage/sets/tenth/RelentlessRats.java b/Mage.Sets/src/mage/sets/tenth/RelentlessRats.java index 3c12d8ccf5c..efc962d56b8 100644 --- a/Mage.Sets/src/mage/sets/tenth/RelentlessRats.java +++ b/Mage.Sets/src/mage/sets/tenth/RelentlessRats.java @@ -96,7 +96,7 @@ public class RelentlessRats extends CardImpl { @Override public boolean apply(Game game, Ability source) { - int count = game.getBattlefield().count(filter, source.getControllerId(), game) - 1; + int count = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game) - 1; if (count > 0) { Permanent target = (Permanent) game.getPermanent(source.getSourceId()); if (target != null) { diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/ImpendingDisaster.java b/Mage.Sets/src/mage/sets/urzaslegacy/ImpendingDisaster.java index af4acc556c2..4e76add17de 100644 --- a/Mage.Sets/src/mage/sets/urzaslegacy/ImpendingDisaster.java +++ b/Mage.Sets/src/mage/sets/urzaslegacy/ImpendingDisaster.java @@ -75,7 +75,7 @@ public class ImpendingDisaster extends CardImpl { @Override public boolean apply(Game game, Ability source) { - return game.getBattlefield().countAll(new FilterLandPermanent(), game) >= 7; + return game.getBattlefield().count(new FilterLandPermanent(), source.getSourceId(), source.getControllerId(), game) >= 7; } } } diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/PlanarCollapse.java b/Mage.Sets/src/mage/sets/urzaslegacy/PlanarCollapse.java index 00df76997a7..97f81975eb7 100644 --- a/Mage.Sets/src/mage/sets/urzaslegacy/PlanarCollapse.java +++ b/Mage.Sets/src/mage/sets/urzaslegacy/PlanarCollapse.java @@ -75,7 +75,7 @@ public class PlanarCollapse extends CardImpl { @Override public boolean apply(Game game, Ability source) { - return game.getBattlefield().countAll(new FilterCreaturePermanent(), game) >= 4; + return game.getBattlefield().count(new FilterCreaturePermanent(), source.getSourceId(), source.getControllerId(), game) >= 4; } } } diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/RadiantArchangel.java b/Mage.Sets/src/mage/sets/urzaslegacy/RadiantArchangel.java index 7fd9044000f..b0a1193fa48 100644 --- a/Mage.Sets/src/mage/sets/urzaslegacy/RadiantArchangel.java +++ b/Mage.Sets/src/mage/sets/urzaslegacy/RadiantArchangel.java @@ -104,7 +104,7 @@ public class RadiantArchangel extends CardImpl { @Override public boolean apply(Game game, Ability source) { - int count = game.getBattlefield().count(filter, source.getControllerId(), game) - 1; + int count = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game) - 1; if (count > 0) { Permanent target = (Permanent) game.getPermanent(source.getSourceId()); if (target != null) { diff --git a/Mage.Sets/src/mage/sets/urzassaga/Bravado.java b/Mage.Sets/src/mage/sets/urzassaga/Bravado.java index afa80f84c4b..b5380af8b32 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/Bravado.java +++ b/Mage.Sets/src/mage/sets/urzassaga/Bravado.java @@ -99,19 +99,18 @@ class BravadoBoostEnchantedEffect extends ContinuousEffectImpl 0) { - Permanent enchantment = game.getPermanent(source.getSourceId()); - if (enchantment != null && enchantment.getAttachedTo() != null) { - Permanent creature = game.getPermanent(enchantment.getAttachedTo()); - if (creature != null) { - creature.addPower(count); - creature.addToughness(count); - return true; - } - } - } - return false; + int count = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game) - 1; + if (count > 0) { + Permanent enchantment = game.getPermanent(source.getSourceId()); + if (enchantment != null && enchantment.getAttachedTo() != null) { + Permanent creature = game.getPermanent(enchantment.getAttachedTo()); + if (creature != null) { + creature.addPower(count); + creature.addToughness(count); + return true; + } + } + } + return false; } } diff --git a/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java b/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java index f68cb82d7a1..f2a6a119b02 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java +++ b/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java @@ -164,7 +164,7 @@ class CarpetOfFlowersEffect extends ManaEffect { ChoiceColor choice = (ChoiceColor) source.getChoices().get(0); Player player = game.getPlayer(source.getControllerId()); if(player != null){ - int countMax = game.getBattlefield().count(filter, source.getTargets().getFirstTarget(), game); + int countMax = game.getBattlefield().count(filter, source.getSourceId(), source.getTargets().getFirstTarget(), game); ChoiceImpl choiceCount = new ChoiceImpl(true); LinkedHashSet set = new LinkedHashSet(); for(int i = 0; i <= countMax; i++) diff --git a/Mage.Sets/src/mage/sets/urzassaga/Worship.java b/Mage.Sets/src/mage/sets/urzassaga/Worship.java index 70c0bb0c63f..da20cf1c55c 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/Worship.java +++ b/Mage.Sets/src/mage/sets/urzassaga/Worship.java @@ -95,7 +95,7 @@ class WorshipReplacementEffect extends ReplacementEffectImpl 0 + && game.getBattlefield().count(new FilterControlledCreaturePermanent(), source.getSourceId(), event.getPlayerId(), game) > 0 ) { event.setAmount(controller.getLife() - 1); } diff --git a/Mage.Sets/src/mage/sets/worldwake/HarabazDruid.java b/Mage.Sets/src/mage/sets/worldwake/HarabazDruid.java index 1aef6c0a862..109712a92c0 100644 --- a/Mage.Sets/src/mage/sets/worldwake/HarabazDruid.java +++ b/Mage.Sets/src/mage/sets/worldwake/HarabazDruid.java @@ -109,7 +109,7 @@ class HarabazDruidManaEffect extends ManaEffect { public boolean apply(Game game, Ability source) { ChoiceColor choice = (ChoiceColor) source.getChoices().get(0); Player player = game.getPlayer(source.getControllerId()); - int count = game.getBattlefield().count(filter, source.getControllerId(), game); + int count = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); if (choice.getColor().isBlack()) { player.getManaPool().addMana(new Mana(0, 0, 0, 0, count, 0, 0), game, source); return true; diff --git a/Mage.Sets/src/mage/sets/worldwake/MiresToll.java b/Mage.Sets/src/mage/sets/worldwake/MiresToll.java index f05f9bfb38d..3dccb896f79 100644 --- a/Mage.Sets/src/mage/sets/worldwake/MiresToll.java +++ b/Mage.Sets/src/mage/sets/worldwake/MiresToll.java @@ -101,7 +101,7 @@ class MiresTollEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - int swamps = game.getBattlefield().count(filter, source.getControllerId(), game); + int swamps = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source)); if (swamps > 0 && targetPlayer != null) { Cards revealedCards = new CardsImpl(Constants.Zone.PICK); diff --git a/Mage.Sets/src/mage/sets/worldwake/TuktukScrapper.java b/Mage.Sets/src/mage/sets/worldwake/TuktukScrapper.java index ad70feeae45..bbe3f90d563 100644 --- a/Mage.Sets/src/mage/sets/worldwake/TuktukScrapper.java +++ b/Mage.Sets/src/mage/sets/worldwake/TuktukScrapper.java @@ -153,7 +153,7 @@ class TuktukScrapperEffect extends OneShotEffect { Player controller = game.getPlayer(targetedArtifact.getControllerId()); targetedArtifact.destroy(id, game, true); if (controller.getGraveyard().contains(artifact.getId())) { - int alliesControlled = game.getBattlefield().count(filter, source.getControllerId(), game); + int alliesControlled = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); controller.damage(alliesControlled, id, game, false, true); return true; } diff --git a/Mage.Sets/src/mage/sets/zendikar/NissaRevane.java b/Mage.Sets/src/mage/sets/zendikar/NissaRevane.java index c7cc4804d0c..3874b2cbdff 100644 --- a/Mage.Sets/src/mage/sets/zendikar/NissaRevane.java +++ b/Mage.Sets/src/mage/sets/zendikar/NissaRevane.java @@ -114,7 +114,7 @@ class NissaRevaneGainLifeEffect extends OneShotEffect @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); - int life = 2 * game.getBattlefield().countAll(filter, game); + int life = 2 * game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); if (player != null) { player.gainLife(life, game); } diff --git a/Mage.Sets/src/mage/sets/zendikar/ValakutTheMoltenPinnacle.java b/Mage.Sets/src/mage/sets/zendikar/ValakutTheMoltenPinnacle.java index d25f1c40e2c..06b194f596e 100644 --- a/Mage.Sets/src/mage/sets/zendikar/ValakutTheMoltenPinnacle.java +++ b/Mage.Sets/src/mage/sets/zendikar/ValakutTheMoltenPinnacle.java @@ -61,8 +61,12 @@ public class ValakutTheMoltenPinnacle extends CardImpl public ValakutTheMoltenPinnacle(UUID ownerId) { super(ownerId, 228, "Valakut, the Molten Pinnacle", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ZEN"; + + // Valakut, the Molten Pinnacle enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); + // Whenever a Mountain enters the battlefield under your control, if you control at least five other Mountains, you may have Valakut, the Molten Pinnacle deal 3 damage to target creature or player. this.addAbility(new ValakutTheMoltenPinnacleTriggeredAbility()); + // {T}: Add {R} to your mana pool. this.addAbility(new RedManaAbility()); } @@ -93,11 +97,9 @@ class ValakutTheMoltenPinnacleTriggeredAbility extends TriggeredAbilityImpl 5){ return true; } diff --git a/Mage/src/mage/abilities/condition/common/NoCreatureCondition.java b/Mage/src/mage/abilities/condition/common/NoCreatureCondition.java index 68cee2d7ce5..4490b4c1427 100644 --- a/Mage/src/mage/abilities/condition/common/NoCreatureCondition.java +++ b/Mage/src/mage/abilities/condition/common/NoCreatureCondition.java @@ -46,6 +46,6 @@ public class NoCreatureCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - return game.getBattlefield().countAll(filter, game) == 0; + return game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game) == 0; } } diff --git a/Mage/src/mage/abilities/effects/common/AffinityEffect.java b/Mage/src/mage/abilities/effects/common/AffinityEffect.java index b637dd46a40..aad22369801 100644 --- a/Mage/src/mage/abilities/effects/common/AffinityEffect.java +++ b/Mage/src/mage/abilities/effects/common/AffinityEffect.java @@ -27,9 +27,11 @@ public class AffinityEffect extends CostModificationEffectImpl { SpellAbility spellAbility = (SpellAbility)abilityToModify; Mana mana = spellAbility.getManaCostsToPay().getMana(); if (mana.getColorless() > 0) { - int count = game.getBattlefield().count(filter, source.getControllerId(), game); + int count = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); int newCount = mana.getColorless() - count; - if (newCount < 0) newCount = 0; + if (newCount < 0) { + newCount = 0; + } mana.setColorless(newCount); spellAbility.getManaCostsToPay().load(mana.toString()); return true; diff --git a/Mage/src/mage/abilities/keyword/OfferingAbility.java b/Mage/src/mage/abilities/keyword/OfferingAbility.java index b1c59546f74..b5f7dc46961 100644 --- a/Mage/src/mage/abilities/keyword/OfferingAbility.java +++ b/Mage/src/mage/abilities/keyword/OfferingAbility.java @@ -147,7 +147,7 @@ class OfferingAsThoughEffect extends AsThoughEffectImpl game.getState().setValue("offering_Id_" + card.getId(), null); } - if (game.getBattlefield().count(((OfferingAbility) source).getFilter(), source.getControllerId(), game) > 0) { + if (game.getBattlefield().count(((OfferingAbility) source).getFilter(), source.getSourceId(), source.getControllerId(), game) > 0) { FilterControlledCreaturePermanent filter = ((OfferingAbility) source).getFilter(); Card spellToCast = game.getCard(source.getSourceId()); diff --git a/Mage/src/mage/game/permanent/Battlefield.java b/Mage/src/mage/game/permanent/Battlefield.java index b3713dcab39..e3e22077781 100644 --- a/Mage/src/mage/game/permanent/Battlefield.java +++ b/Mage/src/mage/game/permanent/Battlefield.java @@ -28,15 +28,15 @@ package mage.game.permanent; +import java.io.Serializable; +import java.util.*; +import java.util.Map.Entry; import mage.Constants.CardType; import mage.Constants.RangeOfInfluence; import mage.abilities.keyword.PhasingAbility; import mage.filter.FilterPermanent; import mage.game.Game; -import java.io.Serializable; -import java.util.*; -import java.util.Map.Entry; /** * @@ -68,27 +68,9 @@ public class Battlefield implements Serializable { field.clear(); } - /** - * Returns a count of all {@link Permanent} that match the filter. - * This method ignores the range of influence. - * - * @param filter - * @return count - */ - public int countAll(FilterPermanent filter, Game game) { - int count = 0; - for (Permanent permanent: field.values()) { - if (filter.match(permanent, game)) { - count++; - } - } - return count; - } - /** * Returns a count of all {@link Permanent} that match the filter and are controlled by controllerId. - * This method ignores the range of influence. - * + * * @param filter * @param controllerId * @return count @@ -108,29 +90,11 @@ public class Battlefield implements Serializable { * and that match the supplied filter. * * @param filter + * @param sourceId - sourceId of the MageObject the calling effect/ability belongs to * @param sourcePlayerId * @param game * @return count */ - public int count(FilterPermanent filter, UUID sourcePlayerId, Game game) { - int count = 0; - if (game.getRangeOfInfluence() == RangeOfInfluence.ALL) { - for (Permanent permanent: field.values()) { - if (filter.match(permanent, null, sourcePlayerId, game)) { - count++; - } - } - } - else { - Set range = game.getPlayer(sourcePlayerId).getInRange(); - for (Permanent permanent: field.values()) { - if (range.contains(permanent.getControllerId()) && filter.match(permanent, null, sourcePlayerId, game)) { - count++; - } - } - } - return count; - } public int count(FilterPermanent filter, UUID sourceId, UUID sourcePlayerId, Game game) { int count = 0; @@ -165,8 +129,9 @@ public class Battlefield implements Serializable { for (Permanent permanent: field.values()) { if (filter.match(permanent, game)) { count++; - if (num == count) + if (num == count) { return true; + } } } return false; @@ -186,8 +151,9 @@ public class Battlefield implements Serializable { for (Permanent permanent: field.values()) { if (permanent.getControllerId().equals(controllerId) && filter.match(permanent, game)) { count++; - if (num == count) + if (num == count) { return true; + } } } return false; @@ -209,8 +175,9 @@ public class Battlefield implements Serializable { for (Permanent permanent: field.values()) { if (filter.match(permanent, null, sourcePlayerId, game)) { count++; - if (num == count) + if (num == count) { return true; + } } } } @@ -219,8 +186,9 @@ public class Battlefield implements Serializable { for (Permanent permanent: field.values()) { if (range.contains(permanent.getControllerId()) && filter.match(permanent, null, sourcePlayerId, game)) { count++; - if (num == count) + if (num == count) { return true; + } } } } @@ -266,8 +234,9 @@ public class Battlefield implements Serializable { public List getAllActivePermanents() { List active = new ArrayList(); for (Permanent perm: field.values()) { - if (perm.isPhasedIn()) + if (perm.isPhasedIn()) { active.add(perm); + } } return active; } @@ -283,8 +252,9 @@ public class Battlefield implements Serializable { public List getAllActivePermanents(UUID controllerId) { List active = new ArrayList(); for (Permanent perm: field.values()) { - if (perm.isPhasedIn() && perm.getControllerId().equals(controllerId)) + if (perm.isPhasedIn() && perm.getControllerId().equals(controllerId)) { active.add(perm); + } } return active; } @@ -300,8 +270,9 @@ public class Battlefield implements Serializable { public List getAllActivePermanents(CardType type) { List active = new ArrayList(); for (Permanent perm: field.values()) { - if (perm.isPhasedIn() && perm.getCardType().contains(type)) + if (perm.isPhasedIn() && perm.getCardType().contains(type)) { active.add(perm); + } } return active; } @@ -318,8 +289,9 @@ public class Battlefield implements Serializable { public List getAllActivePermanents(FilterPermanent filter, Game game) { List active = new ArrayList(); for (Permanent perm: field.values()) { - if (perm.isPhasedIn() && filter.match(perm, game)) + if (perm.isPhasedIn() && filter.match(perm, game)) { active.add(perm); + } } return active; } @@ -336,8 +308,9 @@ public class Battlefield implements Serializable { public List getAllActivePermanents(FilterPermanent filter, UUID controllerId, Game game) { List active = new ArrayList(); for (Permanent perm: field.values()) { - if (perm.isPhasedIn() && perm.getControllerId().equals(controllerId) && filter.match(perm, game)) + if (perm.isPhasedIn() && perm.getControllerId().equals(controllerId) && filter.match(perm, game)) { active.add(perm); + } } return active; } @@ -360,15 +333,17 @@ public class Battlefield implements Serializable { List active = new ArrayList(); if (game.getRangeOfInfluence() == RangeOfInfluence.ALL) { for (Permanent perm: field.values()) { - if (perm.isPhasedIn() && filter.match(perm, sourceId, sourcePlayerId, game)) + if (perm.isPhasedIn() && filter.match(perm, sourceId, sourcePlayerId, game)) { active.add(perm); + } } } else { Set range = game.getPlayer(sourcePlayerId).getInRange(); for (Permanent perm: field.values()) { - if (perm.isPhasedIn() && range.contains(perm.getControllerId()) && filter.match(perm, sourceId, sourcePlayerId, game)) + if (perm.isPhasedIn() && range.contains(perm.getControllerId()) && filter.match(perm, sourceId, sourcePlayerId, game)) { active.add(perm); + } } } return active; @@ -390,8 +365,9 @@ public class Battlefield implements Serializable { List active = new ArrayList(); Set range = game.getPlayer(sourcePlayerId).getInRange(); for (Permanent perm: field.values()) { - if (perm.isPhasedIn() && range.contains(perm.getControllerId())) + if (perm.isPhasedIn() && range.contains(perm.getControllerId())) { active.add(perm); + } } return active; } @@ -400,8 +376,9 @@ public class Battlefield implements Serializable { public List getPhasedIn(UUID controllerId) { List phasedIn = new ArrayList(); for (Permanent perm: field.values()) { - if (perm.getAbilities().containsKey(PhasingAbility.getInstance().getId()) && perm.isPhasedIn() && perm.getControllerId().equals(controllerId)) + if (perm.getAbilities().containsKey(PhasingAbility.getInstance().getId()) && perm.isPhasedIn() && perm.getControllerId().equals(controllerId)) { phasedIn.add(perm); + } } return phasedIn; } @@ -409,8 +386,9 @@ public class Battlefield implements Serializable { public List getPhasedOut(UUID controllerId) { List phasedOut = new ArrayList(); for (Permanent perm: field.values()) { - if (!perm.isPhasedIn() && perm.getControllerId().equals(controllerId)) + if (!perm.isPhasedIn() && perm.getControllerId().equals(controllerId)) { phasedOut.add(perm); + } } return phasedOut; } @@ -423,8 +401,9 @@ public class Battlefield implements Serializable { */ public void fireControlChangeEvents(Game game) { for (Permanent perm: field.values()) { - if (perm.isPhasedIn()) + if (perm.isPhasedIn()) { perm.checkControlChanged(game); + } } }