From 1caf3a6be4b0357e55631d9e05ff730e6fb0c0fc Mon Sep 17 00:00:00 2001 From: ingmargoudt Date: Tue, 7 Mar 2017 17:28:26 +0100 Subject: [PATCH] change getLibrary().size() > 0 to hasCards() --- Mage.Common/src/mage/view/PlayerView.java | 4 +- .../src/mage/cards/a/AbbotOfKeralKeep.java | 2 +- .../src/mage/cards/a/AberrantResearcher.java | 2 +- Mage.Sets/src/mage/cards/a/Abundance.java | 2 +- Mage.Sets/src/mage/cards/a/AdNauseam.java | 6 +-- .../src/mage/cards/a/AidFromTheCowl.java | 2 +- .../src/mage/cards/a/ArbiterOfTheIdeal.java | 2 +- Mage.Sets/src/mage/cards/b/BalustradeSpy.java | 2 +- Mage.Sets/src/mage/cards/b/BanefulOmen.java | 2 +- .../mage/cards/b/BlessedReincarnation.java | 4 +- .../src/mage/cards/b/BloodlineShaman.java | 2 +- Mage.Sets/src/mage/cards/c/CallOfTheWild.java | 2 +- Mage.Sets/src/mage/cards/c/CandlesOfLeng.java | 2 +- Mage.Sets/src/mage/cards/c/CellarDoor.java | 2 +- .../src/mage/cards/c/CerebralEruption.java | 2 +- .../src/mage/cards/c/ChandraPyromaster.java | 2 +- .../mage/cards/c/ChandraTorchOfDefiance.java | 2 +- Mage.Sets/src/mage/cards/c/ChaosWarp.java | 2 +- Mage.Sets/src/mage/cards/c/Chronostutter.java | 2 +- Mage.Sets/src/mage/cards/c/Conflux.java | 10 ++-- .../src/mage/cards/c/ConsumingAberration.java | 2 +- .../src/mage/cards/c/ConundrumSphinx.java | 2 +- .../src/mage/cards/c/CountrysideCrusher.java | 2 +- Mage.Sets/src/mage/cards/d/DakraMystic.java | 4 +- Mage.Sets/src/mage/cards/d/DarkConfidant.java | 2 +- Mage.Sets/src/mage/cards/d/DarkTutelage.java | 2 +- .../src/mage/cards/d/DelverOfSecrets.java | 2 +- .../src/mage/cards/d/DemonicConsultation.java | 2 +- .../src/mage/cards/d/DescendantsPath.java | 2 +- .../src/mage/cards/d/DestroyTheEvidence.java | 2 +- .../mage/cards/d/DimensionalInfiltrator.java | 2 +- .../cards/d/DivergentTransformations.java | 4 +- Mage.Sets/src/mage/cards/d/DjinnOfWishes.java | 2 +- Mage.Sets/src/mage/cards/d/DomriRade.java | 2 +- .../src/mage/cards/d/DuskmantleSeer.java | 2 +- .../src/mage/cards/e/ErraticExplosion.java | 2 +- .../src/mage/cards/e/ErraticMutation.java | 2 +- .../src/mage/cards/e/EtherwroughtPage.java | 2 +- .../src/mage/cards/e/ExplosiveRevelation.java | 4 +- Mage.Sets/src/mage/cards/f/FathomTrawl.java | 2 +- Mage.Sets/src/mage/cards/f/ForceMastery.java | 2 +- Mage.Sets/src/mage/cards/g/Galvanoth.java | 6 +-- .../src/mage/cards/g/GhoulcallersBell.java | 2 +- .../src/mage/cards/g/GoblinCharbelcher.java | 2 +- .../src/mage/cards/g/GrenzoDungeonWarden.java | 2 +- Mage.Sets/src/mage/cards/g/Grindstone.java | 2 +- Mage.Sets/src/mage/cards/g/GrinningTotem.java | 2 +- .../src/mage/cards/h/HellcarverDemon.java | 2 +- .../src/mage/cards/h/HelmOfObedience.java | 2 +- Mage.Sets/src/mage/cards/h/HideSeek.java | 2 +- .../mage/cards/i/IndomitableCreativity.java | 4 +- Mage.Sets/src/mage/cards/i/IreShaman.java | 2 +- .../src/mage/cards/j/JeskaiInfiltrator.java | 2 +- .../src/mage/cards/j/JestersScepter.java | 2 +- Mage.Sets/src/mage/cards/j/JudgeUnworthy.java | 2 +- .../src/mage/cards/k/KnacksawClique.java | 2 +- Mage.Sets/src/mage/cards/l/LongTermPlans.java | 4 +- .../src/mage/cards/l/LostInTheWoods.java | 2 +- .../src/mage/cards/l/LurkingPredators.java | 2 +- .../src/mage/cards/m/MadcapExperiment.java | 4 +- Mage.Sets/src/mage/cards/m/MassPolymorph.java | 2 +- .../src/mage/cards/m/MatterReshaper.java | 2 +- .../mage/cards/m/MechanizedProduction.java | 7 +-- Mage.Sets/src/mage/cards/m/MindFuneral.java | 2 +- Mage.Sets/src/mage/cards/m/MindGrind.java | 2 +- Mage.Sets/src/mage/cards/m/MindsDesire.java | 2 +- Mage.Sets/src/mage/cards/m/MindsDilation.java | 2 +- Mage.Sets/src/mage/cards/m/Mindshrieker.java | 2 +- .../mage/cards/m/MirkoVoskMindDrinker.java | 2 +- .../src/mage/cards/n/NarsetTranscendent.java | 2 +- Mage.Sets/src/mage/cards/n/NayaSoulbeast.java | 2 +- Mage.Sets/src/mage/cards/n/Necropotence.java | 2 +- .../src/mage/cards/n/NeurokFamiliar.java | 2 +- Mage.Sets/src/mage/cards/n/NimbusMaze.java | 34 +------------ .../src/mage/cards/n/NissaSageAnimist.java | 2 +- .../mage/cards/n/NivixAerieOfTheFiremind.java | 2 +- Mage.Sets/src/mage/cards/o/OathOfDruids.java | 2 +- .../src/mage/cards/o/OrnateKanzashi.java | 2 +- Mage.Sets/src/mage/cards/o/Oust.java | 2 +- Mage.Sets/src/mage/cards/p/PainSeer.java | 2 +- .../src/mage/cards/p/PhyrexianDevourer.java | 2 +- Mage.Sets/src/mage/cards/p/Polymorph.java | 4 +- .../src/mage/cards/p/PossibilityStorm.java | 4 +- Mage.Sets/src/mage/cards/p/PrimalSurge.java | 2 +- .../mage/cards/p/PropheticFlamespeaker.java | 2 +- Mage.Sets/src/mage/cards/p/ProteusStaff.java | 2 +- Mage.Sets/src/mage/cards/p/PsychicVortex.java | 2 +- .../src/mage/cards/p/PyxisOfPandemonium.java | 2 +- .../src/mage/cards/q/QuestForUlasTemple.java | 2 +- Mage.Sets/src/mage/cards/r/RallyTheHorde.java | 6 +-- Mage.Sets/src/mage/cards/r/Reweave.java | 6 +-- .../src/mage/cards/r/RiddleOfLightning.java | 2 +- .../src/mage/cards/r/RiptideShapeshifter.java | 2 +- .../src/mage/cards/r/RummagingWizard.java | 2 +- .../src/mage/cards/s/SaplingOfColfenor.java | 2 +- Mage.Sets/src/mage/cards/s/ScribNibblers.java | 2 +- Mage.Sets/src/mage/cards/s/SearchTheCity.java | 2 +- .../src/mage/cards/s/SelvalasStampede.java | 2 +- Mage.Sets/src/mage/cards/s/ShapeAnew.java | 2 +- Mage.Sets/src/mage/cards/s/SinProdder.java | 2 +- .../src/mage/cards/s/SkirkDrillSergeant.java | 2 +- .../src/mage/cards/s/SorinGrimNemesis.java | 2 +- Mage.Sets/src/mage/cards/s/Spellshift.java | 4 +- .../src/mage/cards/s/SphinxsTutelage.java | 2 +- .../src/mage/cards/s/SpoilsOfTheVault.java | 2 +- Mage.Sets/src/mage/cards/s/StolenGoods.java | 4 +- .../src/mage/cards/s/StormchaserChimera.java | 2 +- .../src/mage/cards/s/StromkirkOccultist.java | 2 +- Mage.Sets/src/mage/cards/s/Sunforger.java | 2 +- .../src/mage/cards/s/SyntheticDestiny.java | 2 +- Mage.Sets/src/mage/cards/t/TaintedPact.java | 2 +- .../src/mage/cards/t/TeleminPerformance.java | 2 +- Mage.Sets/src/mage/cards/t/ThinkTank.java | 2 +- .../src/mage/cards/t/ThrasiosTritonHero.java | 2 +- Mage.Sets/src/mage/cards/t/TreasureHunt.java | 4 +- .../src/mage/cards/t/TreasureKeeper.java | 2 +- .../src/mage/cards/t/TrepanationBlade.java | 2 +- Mage.Sets/src/mage/cards/t/TunnelVision.java | 2 +- .../src/mage/cards/u/UndercityInformer.java | 2 +- Mage.Sets/src/mage/cards/u/UndyingFlames.java | 2 +- .../src/mage/cards/u/UnexpectedResults.java | 2 +- .../mage/cards/v/VolrathsShapeshifter.java | 50 +++++++++---------- .../src/mage/cards/w/WriteIntoBeing.java | 2 +- Mage.Sets/src/mage/cards/z/Zoologist.java | 2 +- .../abilities/abilityword/KinshipAbility.java | 2 +- .../common/TopLibraryCardTypeCondition.java | 2 +- .../abilities/effects/common/ClashEffect.java | 4 +- .../RevealCardsFromLibraryUntilEffect.java | 4 +- ...ealTopLandToBattlefieldElseHandEffect.java | 2 +- Mage/src/main/java/mage/players/Library.java | 7 ++- .../main/java/mage/players/PlayerImpl.java | 2 +- 131 files changed, 186 insertions(+), 220 deletions(-) diff --git a/Mage.Common/src/mage/view/PlayerView.java b/Mage.Common/src/mage/view/PlayerView.java index 0d08ff3cf38..70e4238a1fc 100644 --- a/Mage.Common/src/mage/view/PlayerView.java +++ b/Mage.Common/src/mage/view/PlayerView.java @@ -34,6 +34,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.UUID; + import mage.cards.Card; import mage.counters.Counters; import mage.game.ExileZone; @@ -47,7 +48,6 @@ import mage.players.Player; import mage.players.net.UserData; /** - * * @author BetaSteward_at_googlemail.com */ public class PlayerView implements Serializable { @@ -125,7 +125,7 @@ public class PlayerView implements Serializable { } catch (ConcurrentModificationException e) { // can happen as a player left battlefield while PlayerView is created } - Card cardOnTop = (player.isTopCardRevealed() && player.getLibrary().size() > 0) + Card cardOnTop = (player.isTopCardRevealed() && player.getLibrary().hasCards()) ? player.getLibrary().getFromTop(game) : null; this.topCard = cardOnTop != null ? new CardView(cardOnTop) : null; if (player.getUserData() != null) { diff --git a/Mage.Sets/src/mage/cards/a/AbbotOfKeralKeep.java b/Mage.Sets/src/mage/cards/a/AbbotOfKeralKeep.java index e5032b1b600..3d356f51ef6 100644 --- a/Mage.Sets/src/mage/cards/a/AbbotOfKeralKeep.java +++ b/Mage.Sets/src/mage/cards/a/AbbotOfKeralKeep.java @@ -98,7 +98,7 @@ class AbbotOfKeralKeepExileEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); - if (sourcePermanent != null && controller != null && controller.getLibrary().size() > 0) { + if (sourcePermanent != null && controller != null && controller.getLibrary().hasCards()) { Library library = controller.getLibrary(); Card card = library.removeFromTop(game); if (card != null) { diff --git a/Mage.Sets/src/mage/cards/a/AberrantResearcher.java b/Mage.Sets/src/mage/cards/a/AberrantResearcher.java index 751f658b1eb..30cc88245da 100644 --- a/Mage.Sets/src/mage/cards/a/AberrantResearcher.java +++ b/Mage.Sets/src/mage/cards/a/AberrantResearcher.java @@ -94,7 +94,7 @@ class AberrantResearcherEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); - if (controller != null && controller.getLibrary().size() > 0) { + if (controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); controller.moveCards(card, Zone.GRAVEYARD, source, game); if (card.isInstant() || card.isSorcery()) { diff --git a/Mage.Sets/src/mage/cards/a/Abundance.java b/Mage.Sets/src/mage/cards/a/Abundance.java index 097111b3678..cf999559242 100644 --- a/Mage.Sets/src/mage/cards/a/Abundance.java +++ b/Mage.Sets/src/mage/cards/a/Abundance.java @@ -104,7 +104,7 @@ class AbundanceReplacementEffect extends ReplacementEffectImpl { filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); } Cards cards = new CardsImpl(); - while (controller.getLibrary().size() > 0) { + while (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (filter.match(card, source.getSourceId(), source.getControllerId(), game)) { controller.moveCards(card, Zone.HAND, source, game); diff --git a/Mage.Sets/src/mage/cards/a/AdNauseam.java b/Mage.Sets/src/mage/cards/a/AdNauseam.java index d8409b828b7..9afb29c2392 100644 --- a/Mage.Sets/src/mage/cards/a/AdNauseam.java +++ b/Mage.Sets/src/mage/cards/a/AdNauseam.java @@ -28,6 +28,7 @@ package mage.cards.a; import java.util.UUID; + import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; @@ -41,13 +42,12 @@ import mage.game.Game; import mage.players.Player; /** - * * @author North */ public class AdNauseam extends CardImpl { public AdNauseam(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{B}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{B}{B}"); // Reveal the top card of your library and put that card into your hand. You lose life equal to its converted mana cost. You may repeat this process any number of times. this.getSpellAbility().addEffect(new AdNauseamEffect()); @@ -87,7 +87,7 @@ class AdNauseamEffect extends OneShotEffect { if (controller == null || sourceCard == null) { return false; } - while (controller.chooseUse(outcome, message, source, game) && controller.getLibrary().size() > 0) { + while (controller.chooseUse(outcome, message, source, game) && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { controller.moveCards(card, Zone.HAND, source, game); diff --git a/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java b/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java index 95e03ecdca5..31117314068 100644 --- a/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java +++ b/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java @@ -100,7 +100,7 @@ class AidFromTheCowlEffect extends OneShotEffect { return false; } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); Cards cards = new CardsImpl(card); controller.revealCards(sourceObject.getIdName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java b/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java index 260d14a40c2..7b130e201c8 100644 --- a/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java +++ b/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java @@ -114,7 +114,7 @@ class ArbiterOfTheIdealEffect extends OneShotEffect { return false; } - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); Cards cards = new CardsImpl(); cards.add(card); diff --git a/Mage.Sets/src/mage/cards/b/BalustradeSpy.java b/Mage.Sets/src/mage/cards/b/BalustradeSpy.java index 24b0aa60a00..9620c233012 100644 --- a/Mage.Sets/src/mage/cards/b/BalustradeSpy.java +++ b/Mage.Sets/src/mage/cards/b/BalustradeSpy.java @@ -103,7 +103,7 @@ class BalustradeSpyEffect extends OneShotEffect { } CardsImpl cards = new CardsImpl(); boolean landFound = false; - while (controller.getLibrary().size() > 0 && !landFound) { + while (controller.getLibrary().hasCards() && !landFound) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { cards.add(card); diff --git a/Mage.Sets/src/mage/cards/b/BanefulOmen.java b/Mage.Sets/src/mage/cards/b/BanefulOmen.java index f2bc1b33ea8..285cedde96a 100644 --- a/Mage.Sets/src/mage/cards/b/BanefulOmen.java +++ b/Mage.Sets/src/mage/cards/b/BanefulOmen.java @@ -112,7 +112,7 @@ public class BanefulOmen extends CardImpl { if (player == null) { return false; } - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); Cards cards = new CardsImpl(); cards.add(card); diff --git a/Mage.Sets/src/mage/cards/b/BlessedReincarnation.java b/Mage.Sets/src/mage/cards/b/BlessedReincarnation.java index db157f79449..b4f3f4b2c7c 100644 --- a/Mage.Sets/src/mage/cards/b/BlessedReincarnation.java +++ b/Mage.Sets/src/mage/cards/b/BlessedReincarnation.java @@ -114,11 +114,11 @@ class BlessedReincarnationEffect extends OneShotEffect { Player player = game.getPlayer(permanent.getControllerId()); if (player != null) { Library library = player.getLibrary(); - if (library.size() > 0) { + if (library.hasCards()) { Cards cards = new CardsImpl(); Card card = library.removeFromTop(game); cards.add(card); - while (!card.isCreature() && library.size() > 0) { + while (!card.isCreature() && library.hasCards()) { card = library.removeFromTop(game); cards.add(card); } diff --git a/Mage.Sets/src/mage/cards/b/BloodlineShaman.java b/Mage.Sets/src/mage/cards/b/BloodlineShaman.java index d391cef9424..753f52cceea 100644 --- a/Mage.Sets/src/mage/cards/b/BloodlineShaman.java +++ b/Mage.Sets/src/mage/cards/b/BloodlineShaman.java @@ -119,7 +119,7 @@ class BloodlineShamanEffect extends OneShotEffect { filterSubtype.add(new SubtypePredicate(typeChoice.getChoice())); // Reveal the top card of your library. - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); Cards cards = new CardsImpl(card); controller.revealCards(sourceObject.getIdName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/c/CallOfTheWild.java b/Mage.Sets/src/mage/cards/c/CallOfTheWild.java index 79eb9790f59..c4b93b6b303 100644 --- a/Mage.Sets/src/mage/cards/c/CallOfTheWild.java +++ b/Mage.Sets/src/mage/cards/c/CallOfTheWild.java @@ -91,7 +91,7 @@ class CallOfTheWildEffect extends OneShotEffect { return false; } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { Cards cards = new CardsImpl(card); diff --git a/Mage.Sets/src/mage/cards/c/CandlesOfLeng.java b/Mage.Sets/src/mage/cards/c/CandlesOfLeng.java index 19b26d28ad4..4b507698e48 100644 --- a/Mage.Sets/src/mage/cards/c/CandlesOfLeng.java +++ b/Mage.Sets/src/mage/cards/c/CandlesOfLeng.java @@ -89,7 +89,7 @@ class CandlesOfLengEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = game.getObject(source.getSourceId()); - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { CardsImpl cards = new CardsImpl(); Card card = controller.getLibrary().getFromTop(game); if (card == null) { diff --git a/Mage.Sets/src/mage/cards/c/CellarDoor.java b/Mage.Sets/src/mage/cards/c/CellarDoor.java index 8be8e191a63..cc7df9fe989 100644 --- a/Mage.Sets/src/mage/cards/c/CellarDoor.java +++ b/Mage.Sets/src/mage/cards/c/CellarDoor.java @@ -89,7 +89,7 @@ class CellarDoorEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getFirstTarget()); - if (player != null && player.getLibrary().size() > 0) { + if (player != null && player.getLibrary().hasCards()) { Card card = player.getLibrary().removeFromBottom(game); if (card != null) { player.moveCards(card, Zone.GRAVEYARD, source, game); diff --git a/Mage.Sets/src/mage/cards/c/CerebralEruption.java b/Mage.Sets/src/mage/cards/c/CerebralEruption.java index 5eabdb4865a..0c339ece431 100644 --- a/Mage.Sets/src/mage/cards/c/CerebralEruption.java +++ b/Mage.Sets/src/mage/cards/c/CerebralEruption.java @@ -87,7 +87,7 @@ class CerebralEruptionEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getFirstTarget()); MageObject sourceObject = game.getObject(source.getSourceId()); - if (player != null && sourceObject != null && player.getLibrary().size() > 0) { + if (player != null && sourceObject != null && player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); Cards cards = new CardsImpl(card); player.revealCards(sourceObject.getIdName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java b/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java index 71fff4c7308..5202369badd 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java +++ b/Mage.Sets/src/mage/cards/c/ChandraPyromaster.java @@ -206,7 +206,7 @@ class ChandraPyromasterEffect2 extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = source.getSourceObject(game); - if (controller != null && sourceObject != null && controller.getLibrary().size() > 0) { + if (controller != null && sourceObject != null && controller.getLibrary().hasCards()) { Library library = controller.getLibrary(); Card card = library.removeFromTop(game); if (card != null) { diff --git a/Mage.Sets/src/mage/cards/c/ChandraTorchOfDefiance.java b/Mage.Sets/src/mage/cards/c/ChandraTorchOfDefiance.java index 7a04ad0f707..ab383e871be 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraTorchOfDefiance.java +++ b/Mage.Sets/src/mage/cards/c/ChandraTorchOfDefiance.java @@ -114,7 +114,7 @@ class ChandraTorchOfDefianceEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = source.getSourceObject(game); - if (controller != null && sourceObject != null && controller.getLibrary().size() > 0) { + if (controller != null && sourceObject != null && controller.getLibrary().hasCards()) { Library library = controller.getLibrary(); Card card = library.removeFromTop(game); if (card != null) { diff --git a/Mage.Sets/src/mage/cards/c/ChaosWarp.java b/Mage.Sets/src/mage/cards/c/ChaosWarp.java index 0d22e126b59..b014b0d8f37 100644 --- a/Mage.Sets/src/mage/cards/c/ChaosWarp.java +++ b/Mage.Sets/src/mage/cards/c/ChaosWarp.java @@ -133,7 +133,7 @@ class ChaosWarpRevealEffect extends OneShotEffect { return false; } - if (owner.getLibrary().size() > 0) { + if (owner.getLibrary().hasCards()) { Card card = owner.getLibrary().getFromTop(game); if (card != null) { Cards cards = new CardsImpl(card); diff --git a/Mage.Sets/src/mage/cards/c/Chronostutter.java b/Mage.Sets/src/mage/cards/c/Chronostutter.java index 9a9fc1cb770..2bd233048b2 100644 --- a/Mage.Sets/src/mage/cards/c/Chronostutter.java +++ b/Mage.Sets/src/mage/cards/c/Chronostutter.java @@ -94,7 +94,7 @@ class ChronostutterEffect extends OneShotEffect { } Card card = null; - if (owner.getLibrary().size() > 0) { + if (owner.getLibrary().hasCards()) { card = owner.getLibrary().removeFromTop(game); } diff --git a/Mage.Sets/src/mage/cards/c/Conflux.java b/Mage.Sets/src/mage/cards/c/Conflux.java index a39557b81cb..c0e81212ca4 100644 --- a/Mage.Sets/src/mage/cards/c/Conflux.java +++ b/Mage.Sets/src/mage/cards/c/Conflux.java @@ -107,7 +107,7 @@ class ConfluxEffect extends OneShotEffect { TargetCardInLibrary targetRed = new TargetCardInLibrary(filterRed); TargetCardInLibrary targetGreen = new TargetCardInLibrary(filterGreen); - if (you != null && you.getLibrary().size() > 0) { + if (you != null && you.getLibrary().hasCards()) { if (you.searchLibrary(targetWhite, game)) { if (!targetWhite.getTargets().isEmpty()) { for (UUID cardId : (List) targetWhite.getTargets()) { @@ -119,7 +119,7 @@ class ConfluxEffect extends OneShotEffect { } } } - if (you != null && you.getLibrary().size() > 0) { + if (you != null && you.getLibrary().hasCards()) { if (you.searchLibrary(targetBlue, game)) { if (!targetBlue.getTargets().isEmpty()) { for (UUID cardId : (List) targetBlue.getTargets()) { @@ -131,7 +131,7 @@ class ConfluxEffect extends OneShotEffect { } } } - if (you != null && you.getLibrary().size() > 0) { + if (you != null && you.getLibrary().hasCards()) { if (you.searchLibrary(targetBlack, game)) { if (!targetBlack.getTargets().isEmpty()) { for (UUID cardId : (List) targetBlack.getTargets()) { @@ -143,7 +143,7 @@ class ConfluxEffect extends OneShotEffect { } } } - if (you != null && you.getLibrary().size() > 0) { + if (you != null && you.getLibrary().hasCards()) { if (you.searchLibrary(targetRed, game)) { if (!targetRed.getTargets().isEmpty()) { for (UUID cardId : (List) targetRed.getTargets()) { @@ -155,7 +155,7 @@ class ConfluxEffect extends OneShotEffect { } } } - if (you != null && you.getLibrary().size() > 0) { + if (you != null && you.getLibrary().hasCards()) { if (you.searchLibrary(targetGreen, game)) { if (!targetGreen.getTargets().isEmpty()) { for (UUID cardId : (List) targetGreen.getTargets()) { diff --git a/Mage.Sets/src/mage/cards/c/ConsumingAberration.java b/Mage.Sets/src/mage/cards/c/ConsumingAberration.java index 9c41cfbcce2..f9b9e47c28b 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumingAberration.java +++ b/Mage.Sets/src/mage/cards/c/ConsumingAberration.java @@ -105,7 +105,7 @@ class ConsumingAberrationEffect extends OneShotEffect { } Cards cards = new CardsImpl(); - while(player.getLibrary().size() > 0){ + while(player.getLibrary().hasCards()){ Card card = player.getLibrary().removeFromTop(game); if (card != null) { cards.add(card); diff --git a/Mage.Sets/src/mage/cards/c/ConundrumSphinx.java b/Mage.Sets/src/mage/cards/c/ConundrumSphinx.java index 7defd8d7898..1156891e429 100644 --- a/Mage.Sets/src/mage/cards/c/ConundrumSphinx.java +++ b/Mage.Sets/src/mage/cards/c/ConundrumSphinx.java @@ -92,7 +92,7 @@ class ConundrumSphinxEffect extends OneShotEffect { Choice cardChoice = new ChoiceImpl(); cardChoice.setChoices(CardRepository.instance.getNames()); for (Player player: game.getPlayers().values()) { - if(player.getLibrary().size() > 0){ + if(player.getLibrary().hasCards()){ cardChoice.clearChoice(); while (!player.choose(Outcome.DrawCard, cardChoice, game) && player.canRespond()) { if (!player.canRespond()) { diff --git a/Mage.Sets/src/mage/cards/c/CountrysideCrusher.java b/Mage.Sets/src/mage/cards/c/CountrysideCrusher.java index 3c696b846eb..e0419c580cd 100644 --- a/Mage.Sets/src/mage/cards/c/CountrysideCrusher.java +++ b/Mage.Sets/src/mage/cards/c/CountrysideCrusher.java @@ -105,7 +105,7 @@ class CountrysideCrusherEffect extends OneShotEffect { Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); if (controller != null && sourcePermanent != null) { Cards cards = new CardsImpl(); - while (controller.getLibrary().size() > 0) { + while (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); cards.add(card); if (card.isLand()) { diff --git a/Mage.Sets/src/mage/cards/d/DakraMystic.java b/Mage.Sets/src/mage/cards/d/DakraMystic.java index 635cde66323..ace9563f95b 100644 --- a/Mage.Sets/src/mage/cards/d/DakraMystic.java +++ b/Mage.Sets/src/mage/cards/d/DakraMystic.java @@ -98,14 +98,14 @@ class DakraMysticEffect extends OneShotEffect { if (controller != null) { for(UUID playerId: game.getState().getPlayersInRange(controller.getId(), game)) { Player player = game.getPlayer(playerId); - if (player != null && player.getLibrary().size() > 0) { + if (player != null && player.getLibrary().hasCards()) { player.revealCards(player.getLogName(), new CardsImpl(player.getLibrary().getFromTop(game)), game); } } if (controller.chooseUse(outcome, "Put revealed cards into graveyard?", source, game)) { for(UUID playerId: game.getState().getPlayersInRange(controller.getId(), game)) { Player player = game.getPlayer(playerId); - if (player != null && player.getLibrary().size() > 0) { + if (player != null && player.getLibrary().hasCards()) { player.moveCards(player.getLibrary().getFromTop(game), Zone.GRAVEYARD, source, game); } } diff --git a/Mage.Sets/src/mage/cards/d/DarkConfidant.java b/Mage.Sets/src/mage/cards/d/DarkConfidant.java index 0361cae8c5f..b70c8cb6c6c 100644 --- a/Mage.Sets/src/mage/cards/d/DarkConfidant.java +++ b/Mage.Sets/src/mage/cards/d/DarkConfidant.java @@ -89,7 +89,7 @@ class DarkConfidantEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); if (controller != null && sourcePermanent != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { Cards cards = new CardsImpl(card); diff --git a/Mage.Sets/src/mage/cards/d/DarkTutelage.java b/Mage.Sets/src/mage/cards/d/DarkTutelage.java index 565ac07b9ac..8b258646971 100644 --- a/Mage.Sets/src/mage/cards/d/DarkTutelage.java +++ b/Mage.Sets/src/mage/cards/d/DarkTutelage.java @@ -80,7 +80,7 @@ class DarkTutelageEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); - if (player != null && player.getLibrary().size() > 0) { + if (player != null && player.getLibrary().hasCards()) { Card card = player.getLibrary().removeFromTop(game); if (card != null) { card.moveToZone(Zone.HAND, source.getSourceId(), game, false); diff --git a/Mage.Sets/src/mage/cards/d/DelverOfSecrets.java b/Mage.Sets/src/mage/cards/d/DelverOfSecrets.java index 86c123da2b3..9a15b7c558e 100644 --- a/Mage.Sets/src/mage/cards/d/DelverOfSecrets.java +++ b/Mage.Sets/src/mage/cards/d/DelverOfSecrets.java @@ -104,7 +104,7 @@ class DelverOfSecretsEffect extends OneShotEffect { Player player = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); if (player != null && sourcePermanent != null) { - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); Cards cards = new CardsImpl(); cards.add(card); diff --git a/Mage.Sets/src/mage/cards/d/DemonicConsultation.java b/Mage.Sets/src/mage/cards/d/DemonicConsultation.java index d84666e64c3..fd0a61754b3 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicConsultation.java +++ b/Mage.Sets/src/mage/cards/d/DemonicConsultation.java @@ -106,7 +106,7 @@ class DemonicConsultationEffect extends OneShotEffect { // then reveal cards from the top of your library until you reveal the named card. Cards cardsToReaveal = new CardsImpl(); Card cardToHand = null; - while (controller.getLibrary().size() > 0) { + while (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { cardsToReaveal.add(card); diff --git a/Mage.Sets/src/mage/cards/d/DescendantsPath.java b/Mage.Sets/src/mage/cards/d/DescendantsPath.java index 55b4b6a64fa..6cc36053f63 100644 --- a/Mage.Sets/src/mage/cards/d/DescendantsPath.java +++ b/Mage.Sets/src/mage/cards/d/DescendantsPath.java @@ -92,7 +92,7 @@ class DescendantsPathEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = source.getSourceObject(game); if (controller != null && sourceObject != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card == null) { return false; diff --git a/Mage.Sets/src/mage/cards/d/DestroyTheEvidence.java b/Mage.Sets/src/mage/cards/d/DestroyTheEvidence.java index e429de0a628..1fc45c695c9 100644 --- a/Mage.Sets/src/mage/cards/d/DestroyTheEvidence.java +++ b/Mage.Sets/src/mage/cards/d/DestroyTheEvidence.java @@ -100,7 +100,7 @@ class DestroyTheEvidenceEffect extends OneShotEffect { } boolean landFound = false; Cards cards = new CardsImpl(); - while (player.getLibrary().size() > 0 && !landFound) { + while (player.getLibrary().hasCards() && !landFound) { if (!player.canRespond()) { return false; } diff --git a/Mage.Sets/src/mage/cards/d/DimensionalInfiltrator.java b/Mage.Sets/src/mage/cards/d/DimensionalInfiltrator.java index d0fed542415..fb2fc88583a 100644 --- a/Mage.Sets/src/mage/cards/d/DimensionalInfiltrator.java +++ b/Mage.Sets/src/mage/cards/d/DimensionalInfiltrator.java @@ -110,7 +110,7 @@ class DimensionalInfiltratorEffect extends OneShotEffect { return false; } - if (opponent.getLibrary().size() > 0) { + if (opponent.getLibrary().hasCards()) { Card card = opponent.getLibrary().getFromTop(game); if (card != null) { card.moveToExile(null, "Dimensional Infiltrator", source.getSourceId(), game); diff --git a/Mage.Sets/src/mage/cards/d/DivergentTransformations.java b/Mage.Sets/src/mage/cards/d/DivergentTransformations.java index e717dc58a65..81044f05e96 100644 --- a/Mage.Sets/src/mage/cards/d/DivergentTransformations.java +++ b/Mage.Sets/src/mage/cards/d/DivergentTransformations.java @@ -112,11 +112,11 @@ class DivergentTransformationsEffect extends OneShotEffect { for (UUID playerId : controllerList) { Player player = game.getPlayer(playerId); if (player != null) { - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Cards cards = new CardsImpl(); Card card = player.getLibrary().removeFromTop(game); cards.add(card); - while (!card.isCreature() && player.getLibrary().size() > 0) { + while (!card.isCreature() && player.getLibrary().hasCards()) { card = player.getLibrary().removeFromTop(game); cards.add(card); } diff --git a/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java b/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java index c43bfa648c9..0a65c1f3fa3 100644 --- a/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java +++ b/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java @@ -101,7 +101,7 @@ class DjinnOfWishesEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = game.getObject(source.getSourceId()); - if (controller != null && sourceObject != null && controller.getLibrary().size() > 0) { + if (controller != null && sourceObject != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); Cards cards = new CardsImpl(card); controller.revealCards(sourceObject.getIdName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/d/DomriRade.java b/Mage.Sets/src/mage/cards/d/DomriRade.java index 912c2fd0d04..16f5947be5a 100644 --- a/Mage.Sets/src/mage/cards/d/DomriRade.java +++ b/Mage.Sets/src/mage/cards/d/DomriRade.java @@ -122,7 +122,7 @@ class DomriRadeEffect1 extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = source.getSourceObject(game); - if (sourceObject != null && controller != null && controller.getLibrary().size() > 0) { + if (sourceObject != null && controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { CardsImpl cards = new CardsImpl(); diff --git a/Mage.Sets/src/mage/cards/d/DuskmantleSeer.java b/Mage.Sets/src/mage/cards/d/DuskmantleSeer.java index cbaef385013..d4c69f27969 100644 --- a/Mage.Sets/src/mage/cards/d/DuskmantleSeer.java +++ b/Mage.Sets/src/mage/cards/d/DuskmantleSeer.java @@ -100,7 +100,7 @@ class DuskmantleSeerEffect extends OneShotEffect { return false; } for (Player player: game.getPlayers().values()) { - if(player.getLibrary().size() > 0){ + if(player.getLibrary().hasCards()){ Card card = player.getLibrary().removeFromTop(game); if (card != null) { Cards cards = new CardsImpl(); diff --git a/Mage.Sets/src/mage/cards/e/ErraticExplosion.java b/Mage.Sets/src/mage/cards/e/ErraticExplosion.java index e728b7f4446..c626519798d 100644 --- a/Mage.Sets/src/mage/cards/e/ErraticExplosion.java +++ b/Mage.Sets/src/mage/cards/e/ErraticExplosion.java @@ -90,7 +90,7 @@ class ErraticExplosionEffect extends OneShotEffect { CardsImpl toReveal = new CardsImpl(); Card nonLandCard = null; - while (nonLandCard == null && controller.getLibrary().size() > 0) { + while (nonLandCard == null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); toReveal.add(card); if (!card.isLand()) { diff --git a/Mage.Sets/src/mage/cards/e/ErraticMutation.java b/Mage.Sets/src/mage/cards/e/ErraticMutation.java index ee26f54c259..1789167d019 100644 --- a/Mage.Sets/src/mage/cards/e/ErraticMutation.java +++ b/Mage.Sets/src/mage/cards/e/ErraticMutation.java @@ -95,7 +95,7 @@ class ErraticMutationEffect extends OneShotEffect { CardsImpl toReveal = new CardsImpl(); Card nonLandCard = null; - while (nonLandCard == null && controller.getLibrary().size() > 0) { + while (nonLandCard == null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); toReveal.add(card); if (!card.isLand()) { diff --git a/Mage.Sets/src/mage/cards/e/EtherwroughtPage.java b/Mage.Sets/src/mage/cards/e/EtherwroughtPage.java index 99c5389bc37..89e97b4a084 100644 --- a/Mage.Sets/src/mage/cards/e/EtherwroughtPage.java +++ b/Mage.Sets/src/mage/cards/e/EtherwroughtPage.java @@ -104,7 +104,7 @@ class EtherwroughtPageEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); - if (controller != null && controller.getLibrary().size() > 0) { + if (controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { CardsImpl cards = new CardsImpl(); diff --git a/Mage.Sets/src/mage/cards/e/ExplosiveRevelation.java b/Mage.Sets/src/mage/cards/e/ExplosiveRevelation.java index 10eac472bdc..3bbb3fceae9 100644 --- a/Mage.Sets/src/mage/cards/e/ExplosiveRevelation.java +++ b/Mage.Sets/src/mage/cards/e/ExplosiveRevelation.java @@ -88,7 +88,7 @@ class ExplosiveRevelationEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); - if (player != null && player.getLibrary().size() > 0) { + if (player != null && player.getLibrary().hasCards()) { CardsImpl cards = new CardsImpl(); Library library = player.getLibrary(); Card card = null; @@ -97,7 +97,7 @@ class ExplosiveRevelationEffect extends OneShotEffect { if (card != null) { cards.add(card); } - } while (library.size() > 0 && card != null && card.isLand()); + } while (library.hasCards() && card != null && card.isLand()); // reveal cards if (!cards.isEmpty()) { player.revealCards("Explosive Revelation", cards, game); diff --git a/Mage.Sets/src/mage/cards/f/FathomTrawl.java b/Mage.Sets/src/mage/cards/f/FathomTrawl.java index 44ab2225dec..e28f39edcf7 100644 --- a/Mage.Sets/src/mage/cards/f/FathomTrawl.java +++ b/Mage.Sets/src/mage/cards/f/FathomTrawl.java @@ -90,7 +90,7 @@ public class FathomTrawl extends CardImpl { Cards cards = new CardsImpl(); Cards nonlandCards = new CardsImpl(); Cards landCards = new CardsImpl(); - while (controller.getLibrary().size() > 0) { + while (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { cards.add(card); diff --git a/Mage.Sets/src/mage/cards/f/ForceMastery.java b/Mage.Sets/src/mage/cards/f/ForceMastery.java index b9ad1ec4fe0..0db6f835a53 100644 --- a/Mage.Sets/src/mage/cards/f/ForceMastery.java +++ b/Mage.Sets/src/mage/cards/f/ForceMastery.java @@ -84,7 +84,7 @@ class ForceMasteryEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); if (controller != null && sourcePermanent != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { Cards cards = new CardsImpl(card); diff --git a/Mage.Sets/src/mage/cards/g/Galvanoth.java b/Mage.Sets/src/mage/cards/g/Galvanoth.java index 8f92d590bea..fc282da54e1 100644 --- a/Mage.Sets/src/mage/cards/g/Galvanoth.java +++ b/Mage.Sets/src/mage/cards/g/Galvanoth.java @@ -28,6 +28,7 @@ package mage.cards.g; import java.util.UUID; + import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TargetController; @@ -44,13 +45,12 @@ import mage.game.Game; import mage.players.Player; /** - * * @author North */ public class Galvanoth extends CardImpl { public Galvanoth(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{R}"); this.subtype.add("Beast"); this.power = new MageInt(3); @@ -84,7 +84,7 @@ class GalvanothEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); - if (controller != null && controller.getLibrary().size() > 0) { + if (controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); Cards cards = new CardsImpl(card); controller.lookAtCards("Galvanoth", cards, game); diff --git a/Mage.Sets/src/mage/cards/g/GhoulcallersBell.java b/Mage.Sets/src/mage/cards/g/GhoulcallersBell.java index 617e9176a4f..695b7b507cd 100644 --- a/Mage.Sets/src/mage/cards/g/GhoulcallersBell.java +++ b/Mage.Sets/src/mage/cards/g/GhoulcallersBell.java @@ -85,7 +85,7 @@ class GhoulcallersBellEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Collection players = game.getPlayers().values(); for (Player player : players) { - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Card card = player.getLibrary().removeFromTop(game); if (card != null) { player.moveCards(card, Zone.GRAVEYARD, source, game); diff --git a/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java b/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java index 39c1ebf2788..979c304f904 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java +++ b/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java @@ -99,7 +99,7 @@ class GoblinCharbelcherEffect extends OneShotEffect { } Cards cards = new CardsImpl(); boolean landFound = false; - while (controller.getLibrary().size() > 0) { + while (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { cards.add(card); diff --git a/Mage.Sets/src/mage/cards/g/GrenzoDungeonWarden.java b/Mage.Sets/src/mage/cards/g/GrenzoDungeonWarden.java index 6470844bb37..2e48c23d94c 100644 --- a/Mage.Sets/src/mage/cards/g/GrenzoDungeonWarden.java +++ b/Mage.Sets/src/mage/cards/g/GrenzoDungeonWarden.java @@ -98,7 +98,7 @@ class GrenzoDungeonWardenEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromBottom(game); if (card != null) { controller.moveCards(card, Zone.GRAVEYARD, source, game); diff --git a/Mage.Sets/src/mage/cards/g/Grindstone.java b/Mage.Sets/src/mage/cards/g/Grindstone.java index fe829099f32..c42aef233cb 100644 --- a/Mage.Sets/src/mage/cards/g/Grindstone.java +++ b/Mage.Sets/src/mage/cards/g/Grindstone.java @@ -110,7 +110,7 @@ class GrindstoneEffect extends OneShotEffect { cards.addAll(targetPlayer.getLibrary().getTopCards(game, 2)); if (!cards.isEmpty()) { Card card1 = targetPlayer.getLibrary().removeFromTop(game); - if (targetPlayer.getLibrary().size() > 0) { + if (targetPlayer.getLibrary().hasCards()) { colorShared = card1.getColor(game).shares(targetPlayer.getLibrary().removeFromTop(game).getColor(game)); } } diff --git a/Mage.Sets/src/mage/cards/g/GrinningTotem.java b/Mage.Sets/src/mage/cards/g/GrinningTotem.java index 039ce0bd4ae..5738d938044 100644 --- a/Mage.Sets/src/mage/cards/g/GrinningTotem.java +++ b/Mage.Sets/src/mage/cards/g/GrinningTotem.java @@ -110,7 +110,7 @@ class GrinningTotemSearchAndExileEffect extends OneShotEffect { Player targetOpponent = game.getPlayer(source.getFirstTarget()); MageObject sourceObject = game.getObject(source.getSourceId()); if (you != null && targetOpponent != null) { - if (targetOpponent.getLibrary().size() > 0) { + if (targetOpponent.getLibrary().hasCards()) { TargetCardInLibrary targetCard = new TargetCardInLibrary(); if (you.searchLibrary(targetCard, game, targetOpponent.getId())) { Card card = targetOpponent.getLibrary().remove(targetCard.getFirstTarget(), game); diff --git a/Mage.Sets/src/mage/cards/h/HellcarverDemon.java b/Mage.Sets/src/mage/cards/h/HellcarverDemon.java index bb676686c16..7a6eda95827 100644 --- a/Mage.Sets/src/mage/cards/h/HellcarverDemon.java +++ b/Mage.Sets/src/mage/cards/h/HellcarverDemon.java @@ -107,7 +107,7 @@ class HellcarverDemonEffect extends OneShotEffect { } for (int i = 0; i < 6; i++) { - if (player != null && player.getLibrary().size() > 0) { + if (player != null && player.getLibrary().hasCards()) { Card topCard = player.getLibrary().getFromTop(game); topCard.moveToExile(source.getSourceId(), "Cards exiled by Hellcarver Demon", source.getSourceId(), game); } diff --git a/Mage.Sets/src/mage/cards/h/HelmOfObedience.java b/Mage.Sets/src/mage/cards/h/HelmOfObedience.java index 09a1a14201c..4a92862724c 100644 --- a/Mage.Sets/src/mage/cards/h/HelmOfObedience.java +++ b/Mage.Sets/src/mage/cards/h/HelmOfObedience.java @@ -102,7 +102,7 @@ class HelmOfObedienceEffect extends OneShotEffect { if(max != 0){ int numberOfCard = 0; - while(targetOpponent.getLibrary().size() > 0) { + while(targetOpponent.getLibrary().hasCards()) { Card card = targetOpponent.getLibrary().removeFromTop(game); if (card != null){ if (targetOpponent.moveCards(card, Zone.GRAVEYARD, source, game)) { diff --git a/Mage.Sets/src/mage/cards/h/HideSeek.java b/Mage.Sets/src/mage/cards/h/HideSeek.java index 3815719fca6..169f4f5c98a 100644 --- a/Mage.Sets/src/mage/cards/h/HideSeek.java +++ b/Mage.Sets/src/mage/cards/h/HideSeek.java @@ -97,7 +97,7 @@ class SeekEffect extends OneShotEffect { Player opponent = game.getPlayer(source.getFirstTarget()); Player player = game.getPlayer(source.getControllerId()); if (player != null && opponent != null) { - if (opponent.getLibrary().size() > 0) { + if (opponent.getLibrary().hasCards()) { TargetCardInLibrary target = new TargetCardInLibrary(); if (player.searchLibrary(target, game, opponent.getId())) { UUID targetId = target.getFirstTarget(); diff --git a/Mage.Sets/src/mage/cards/i/IndomitableCreativity.java b/Mage.Sets/src/mage/cards/i/IndomitableCreativity.java index 959c977c599..61325514eda 100644 --- a/Mage.Sets/src/mage/cards/i/IndomitableCreativity.java +++ b/Mage.Sets/src/mage/cards/i/IndomitableCreativity.java @@ -127,7 +127,7 @@ class IndomitableCreativityEffect extends OneShotEffect { Player controllerOfDestroyedCreature = game.getPlayer(permanent.getControllerId()); if (controllerOfDestroyedCreature != null) { Library library = controllerOfDestroyedCreature.getLibrary(); - if (library.size() > 0) { + if (library.hasCards()) { Cards cards = new CardsImpl(); Cards revealCards; if (cardsToReveal.containsKey(controllerOfDestroyedCreature)) { @@ -138,7 +138,7 @@ class IndomitableCreativityEffect extends OneShotEffect { } Card card = library.removeFromTop(game); cards.add(card); - while (!card.isCreature() && !card.isArtifact() && library.size() > 0) { + while (!card.isCreature() && !card.isArtifact() && library.hasCards()) { card = library.removeFromTop(game); cards.add(card); } diff --git a/Mage.Sets/src/mage/cards/i/IreShaman.java b/Mage.Sets/src/mage/cards/i/IreShaman.java index 690ed1ae913..42c812734a2 100644 --- a/Mage.Sets/src/mage/cards/i/IreShaman.java +++ b/Mage.Sets/src/mage/cards/i/IreShaman.java @@ -102,7 +102,7 @@ class IreShamanExileEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); - if (sourcePermanent != null && controller != null && controller.getLibrary().size() > 0) { + if (sourcePermanent != null && controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { String exileName = sourcePermanent.getIdName() + " "; diff --git a/Mage.Sets/src/mage/cards/j/JeskaiInfiltrator.java b/Mage.Sets/src/mage/cards/j/JeskaiInfiltrator.java index 45a02339c0b..dc2324f9f6a 100644 --- a/Mage.Sets/src/mage/cards/j/JeskaiInfiltrator.java +++ b/Mage.Sets/src/mage/cards/j/JeskaiInfiltrator.java @@ -118,7 +118,7 @@ class JeskaiInfiltratorEffect extends OneShotEffect { controller.moveCardToExileWithInfo(sourcePermanent, sourcePermanent.getId(), sourcePermanent.getIdName(), source.getSourceId(), game, Zone.BATTLEFIELD, true); cardsToManifest.add(sourceCard); } - if (sourcePermanent != null && controller.getLibrary().size() > 0) { + if (sourcePermanent != null && controller.getLibrary().hasCards()) { Card cardFromLibrary = controller.getLibrary().removeFromTop(game); controller.moveCardToExileWithInfo(cardFromLibrary, sourcePermanent.getId(), sourcePermanent.getIdName(), source.getSourceId(), game, Zone.LIBRARY, true); cardsToManifest.add(cardFromLibrary); diff --git a/Mage.Sets/src/mage/cards/j/JestersScepter.java b/Mage.Sets/src/mage/cards/j/JestersScepter.java index ac65cbeec86..7d48a2cc365 100644 --- a/Mage.Sets/src/mage/cards/j/JestersScepter.java +++ b/Mage.Sets/src/mage/cards/j/JestersScepter.java @@ -115,7 +115,7 @@ class JestersScepterEffect extends OneShotEffect { if (controller != null && targetedPlayer != null && sourceObject != null) { - if (targetedPlayer.getLibrary().size() > 0) { + if (targetedPlayer.getLibrary().hasCards()) { Set cardsToExile = targetedPlayer.getLibrary().getTopCards(game, 5); for (Card card : cardsToExile) { if (card.moveToExile(CardUtil.getCardExileZoneId(game, source), new StringBuilder(sourceObject.getName()).toString(), source.getSourceId(), game)) { diff --git a/Mage.Sets/src/mage/cards/j/JudgeUnworthy.java b/Mage.Sets/src/mage/cards/j/JudgeUnworthy.java index 8506be9b0bc..07a6c7344c1 100644 --- a/Mage.Sets/src/mage/cards/j/JudgeUnworthy.java +++ b/Mage.Sets/src/mage/cards/j/JudgeUnworthy.java @@ -91,7 +91,7 @@ class JudgeUnworthyEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Card sourceCard = game.getCard(source.getSourceId()); if (sourceCard != null && controller != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); controller.revealCards(sourceCard.getName(), new CardsImpl(card), game); Permanent targetCreature = game.getPermanent(this.getTargetPointer().getFirst(game, source)); diff --git a/Mage.Sets/src/mage/cards/k/KnacksawClique.java b/Mage.Sets/src/mage/cards/k/KnacksawClique.java index f6d60cda400..65e522ef4f0 100644 --- a/Mage.Sets/src/mage/cards/k/KnacksawClique.java +++ b/Mage.Sets/src/mage/cards/k/KnacksawClique.java @@ -108,7 +108,7 @@ class KnacksawCliqueEffect extends OneShotEffect { Player opponent = game.getPlayer(targetPointer.getFirst(game, source)); MageObject sourceObject = game.getObject(source.getSourceId()); if (sourceObject != null && opponent != null) { - if (opponent.getLibrary().size() > 0) { + if (opponent.getLibrary().hasCards()) { Library library = opponent.getLibrary(); Card card = library.getFromTop(game); if (card != null) { diff --git a/Mage.Sets/src/mage/cards/l/LongTermPlans.java b/Mage.Sets/src/mage/cards/l/LongTermPlans.java index 5781daf29df..9787c01cd51 100644 --- a/Mage.Sets/src/mage/cards/l/LongTermPlans.java +++ b/Mage.Sets/src/mage/cards/l/LongTermPlans.java @@ -90,10 +90,10 @@ class LongTermPlansEffect extends OneShotEffect { player.shuffleLibrary(source, game); Card cardTop = null; Card cardSecond = null; - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { cardTop = player.getLibrary().removeFromTop(game); } - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { cardSecond = player.getLibrary().removeFromTop(game); } player.getLibrary().putOnTop(card, game); diff --git a/Mage.Sets/src/mage/cards/l/LostInTheWoods.java b/Mage.Sets/src/mage/cards/l/LostInTheWoods.java index 647aa5e8a8f..593cd73e41a 100644 --- a/Mage.Sets/src/mage/cards/l/LostInTheWoods.java +++ b/Mage.Sets/src/mage/cards/l/LostInTheWoods.java @@ -88,7 +88,7 @@ class LostInTheWoodsEffect extends OneShotEffect { if (sourceObject == null || controller == null) { return false; } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); Cards cards = new CardsImpl(); cards.add(card); diff --git a/Mage.Sets/src/mage/cards/l/LurkingPredators.java b/Mage.Sets/src/mage/cards/l/LurkingPredators.java index 9a5a0ce3141..7139ed67f35 100644 --- a/Mage.Sets/src/mage/cards/l/LurkingPredators.java +++ b/Mage.Sets/src/mage/cards/l/LurkingPredators.java @@ -90,7 +90,7 @@ class LurkingPredatorsEffect extends OneShotEffect { return false; } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); Cards cards = new CardsImpl(card); controller.revealCards(sourceObject.getIdName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/m/MadcapExperiment.java b/Mage.Sets/src/mage/cards/m/MadcapExperiment.java index d2c68cd420e..5982a6ddfe7 100644 --- a/Mage.Sets/src/mage/cards/m/MadcapExperiment.java +++ b/Mage.Sets/src/mage/cards/m/MadcapExperiment.java @@ -85,7 +85,7 @@ class MadcapExperimentEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = game.getObject(source.getSourceId()); - if (controller != null && controller.getLibrary().size() > 0) { + if (controller != null && controller.getLibrary().hasCards()) { CardsImpl cards = new CardsImpl(); Library library = controller.getLibrary(); Card card = null; @@ -94,7 +94,7 @@ class MadcapExperimentEffect extends OneShotEffect { if (card != null) { cards.add(card); } - } while (library.size() > 0 && card != null && !card.isArtifact()); + } while (library.hasCards() && card != null && !card.isArtifact()); // reveal cards if (!cards.isEmpty()) { controller.revealCards(sourceObject.getIdName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/m/MassPolymorph.java b/Mage.Sets/src/mage/cards/m/MassPolymorph.java index 9ab2cc8b302..de49e63a399 100644 --- a/Mage.Sets/src/mage/cards/m/MassPolymorph.java +++ b/Mage.Sets/src/mage/cards/m/MassPolymorph.java @@ -99,7 +99,7 @@ class MassPolymorphEffect extends OneShotEffect { Cards revealed = new CardsImpl(); Set creatureCards = new LinkedHashSet<>(); Cards nonCreatureCards = new CardsImpl(); - while (creatureCards.size() < count && controller.getLibrary().size() > 0) { + while (creatureCards.size() < count && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); revealed.add(card); if (card.isCreature()) { diff --git a/Mage.Sets/src/mage/cards/m/MatterReshaper.java b/Mage.Sets/src/mage/cards/m/MatterReshaper.java index 387d2712054..149b042136b 100644 --- a/Mage.Sets/src/mage/cards/m/MatterReshaper.java +++ b/Mage.Sets/src/mage/cards/m/MatterReshaper.java @@ -89,7 +89,7 @@ class MatterReshaperEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = game.getObject(source.getSourceId()); - if (controller != null && sourceObject != null && controller.getLibrary().size() > 0) { + if (controller != null && sourceObject != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card == null) { return false; diff --git a/Mage.Sets/src/mage/cards/m/MechanizedProduction.java b/Mage.Sets/src/mage/cards/m/MechanizedProduction.java index e3e0aad4c8e..b05eaaa0f8e 100644 --- a/Mage.Sets/src/mage/cards/m/MechanizedProduction.java +++ b/Mage.Sets/src/mage/cards/m/MechanizedProduction.java @@ -111,12 +111,7 @@ class MechanizedProductionEffect extends OneShotEffect { } Map countNames = new HashMap<>(); for (Permanent permanent : game.getBattlefield().getAllActivePermanents(new FilterArtifactPermanent(), source.getControllerId(), game)) { - int counter; - if (countNames.containsKey(permanent.getName())) { - counter = countNames.get(permanent.getName()); - } else { - counter = 0; - } + int counter = countNames.getOrDefault(permanent.getName(),0); countNames.put(permanent.getName(), counter + 1); } for (Entry entry : countNames.entrySet()) { diff --git a/Mage.Sets/src/mage/cards/m/MindFuneral.java b/Mage.Sets/src/mage/cards/m/MindFuneral.java index 5edd72f845c..6c3e2e57f0d 100644 --- a/Mage.Sets/src/mage/cards/m/MindFuneral.java +++ b/Mage.Sets/src/mage/cards/m/MindFuneral.java @@ -92,7 +92,7 @@ class MindFuneralEffect extends OneShotEffect { if (opponent != null) { Cards cards = new CardsImpl(); int landsFound = 0; - while (landsFound < 4 && opponent.getLibrary().size() > 0) { + while (landsFound < 4 && opponent.getLibrary().hasCards()) { Card card = opponent.getLibrary().removeFromTop(game); if (card == null) { break; diff --git a/Mage.Sets/src/mage/cards/m/MindGrind.java b/Mage.Sets/src/mage/cards/m/MindGrind.java index bd9ec924721..1ae4b03b63b 100644 --- a/Mage.Sets/src/mage/cards/m/MindGrind.java +++ b/Mage.Sets/src/mage/cards/m/MindGrind.java @@ -103,7 +103,7 @@ class MindGrindEffect extends OneShotEffect { } int landsToReveal = xValue; Cards cards = new CardsImpl(); - while(player.getLibrary().size() > 0){ + while(player.getLibrary().hasCards()){ Card card = player.getLibrary().removeFromTop(game); if (card != null) { cards.add(card); diff --git a/Mage.Sets/src/mage/cards/m/MindsDesire.java b/Mage.Sets/src/mage/cards/m/MindsDesire.java index 4cce5935a7b..e1f56375e63 100644 --- a/Mage.Sets/src/mage/cards/m/MindsDesire.java +++ b/Mage.Sets/src/mage/cards/m/MindsDesire.java @@ -95,7 +95,7 @@ class MindsDesireEffect extends OneShotEffect { MageObject sourceObject = source.getSourceObject(game); if (controller != null && sourceObject != null) { controller.shuffleLibrary(source, game); - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { controller.moveCardToExileWithInfo(card, source.getSourceId(), sourceObject.getIdName(), source.getSourceId(), game, Zone.LIBRARY, true); diff --git a/Mage.Sets/src/mage/cards/m/MindsDilation.java b/Mage.Sets/src/mage/cards/m/MindsDilation.java index dbe3fe1d432..7785c7c34c4 100644 --- a/Mage.Sets/src/mage/cards/m/MindsDilation.java +++ b/Mage.Sets/src/mage/cards/m/MindsDilation.java @@ -133,7 +133,7 @@ class MindsDilationEffect extends OneShotEffect { MageObject sourceObject = source.getSourceObject(game); Player opponent = game.getPlayer(getTargetPointer().getFirst(game, source)); if (controller != null && sourceObject != null && opponent != null) { - if (opponent.getLibrary().size() > 0) { + if (opponent.getLibrary().hasCards()) { Card card = opponent.getLibrary().getFromTop(game); if (card != null && opponent.moveCards(card, Zone.EXILED, source, game)) { if (!card.isLand()) { diff --git a/Mage.Sets/src/mage/cards/m/Mindshrieker.java b/Mage.Sets/src/mage/cards/m/Mindshrieker.java index 439a9cea63f..aeaf078d563 100644 --- a/Mage.Sets/src/mage/cards/m/Mindshrieker.java +++ b/Mage.Sets/src/mage/cards/m/Mindshrieker.java @@ -93,7 +93,7 @@ class MindshriekerEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player targetPlayer = game.getPlayer(source.getFirstTarget()); if (targetPlayer != null) { - if (targetPlayer.getLibrary().size() > 0) { + if (targetPlayer.getLibrary().hasCards()) { Card card = targetPlayer.getLibrary().removeFromTop(game); if (card != null) { targetPlayer.moveCards(card, Zone.GRAVEYARD, source, game); diff --git a/Mage.Sets/src/mage/cards/m/MirkoVoskMindDrinker.java b/Mage.Sets/src/mage/cards/m/MirkoVoskMindDrinker.java index 355dd83bacc..1392852eb68 100644 --- a/Mage.Sets/src/mage/cards/m/MirkoVoskMindDrinker.java +++ b/Mage.Sets/src/mage/cards/m/MirkoVoskMindDrinker.java @@ -105,7 +105,7 @@ class MirkoVoskMindDrinkerEffect extends OneShotEffect { } int landsToReveal = 4; Cards cards = new CardsImpl(); - while(player.getLibrary().size() > 0){ + while(player.getLibrary().hasCards()){ Card card = player.getLibrary().removeFromTop(game); if (card != null) { cards.add(card); diff --git a/Mage.Sets/src/mage/cards/n/NarsetTranscendent.java b/Mage.Sets/src/mage/cards/n/NarsetTranscendent.java index 4c04b59215a..df6d5e42266 100644 --- a/Mage.Sets/src/mage/cards/n/NarsetTranscendent.java +++ b/Mage.Sets/src/mage/cards/n/NarsetTranscendent.java @@ -110,7 +110,7 @@ class NarsetTranscendentEffect1 extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = source.getSourceObject(game); - if (sourceObject != null && controller != null && controller.getLibrary().size() > 0) { + if (sourceObject != null && controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { CardsImpl cards = new CardsImpl(); diff --git a/Mage.Sets/src/mage/cards/n/NayaSoulbeast.java b/Mage.Sets/src/mage/cards/n/NayaSoulbeast.java index e7e24c4f241..79a58f02ab9 100644 --- a/Mage.Sets/src/mage/cards/n/NayaSoulbeast.java +++ b/Mage.Sets/src/mage/cards/n/NayaSoulbeast.java @@ -107,7 +107,7 @@ class NayaSoulbeastCastEffect extends OneShotEffect { for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) { Player player = game.getPlayer(playerId); if (player != null) { - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); cmc += card.getConvertedManaCost(); player.revealCards(sourceObject.getName() + " (" + player.getName() + ')', new CardsImpl(card), game); diff --git a/Mage.Sets/src/mage/cards/n/Necropotence.java b/Mage.Sets/src/mage/cards/n/Necropotence.java index 97cc7c5c120..180b17fce08 100644 --- a/Mage.Sets/src/mage/cards/n/Necropotence.java +++ b/Mage.Sets/src/mage/cards/n/Necropotence.java @@ -137,7 +137,7 @@ class NecropotenceEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (controller.moveCardToExileWithInfo(card, null, "", source.getSourceId(), game, Zone.LIBRARY, false)) { card.setFaceDown(true, game); diff --git a/Mage.Sets/src/mage/cards/n/NeurokFamiliar.java b/Mage.Sets/src/mage/cards/n/NeurokFamiliar.java index 1fb7f84daf7..1deb40cf857 100644 --- a/Mage.Sets/src/mage/cards/n/NeurokFamiliar.java +++ b/Mage.Sets/src/mage/cards/n/NeurokFamiliar.java @@ -98,7 +98,7 @@ class NeurokFamiliarEffect extends OneShotEffect { return false; } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { Cards cards = new CardsImpl(card); diff --git a/Mage.Sets/src/mage/cards/n/NimbusMaze.java b/Mage.Sets/src/mage/cards/n/NimbusMaze.java index ac4ff7fb508..730f0137450 100644 --- a/Mage.Sets/src/mage/cards/n/NimbusMaze.java +++ b/Mage.Sets/src/mage/cards/n/NimbusMaze.java @@ -28,6 +28,7 @@ package mage.cards.n; import java.util.UUID; + import mage.Mana; import mage.abilities.Ability; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; @@ -47,7 +48,6 @@ import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.Game; /** - * * @author dustinconrad */ public class NimbusMaze extends CardImpl { @@ -61,7 +61,7 @@ public class NimbusMaze extends CardImpl { } public NimbusMaze(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); @@ -89,33 +89,3 @@ public class NimbusMaze extends CardImpl { } } -class FilterPermanentCost extends CostImpl { - - private final FilterPermanent filter; - - public FilterPermanentCost(FilterPermanent filter) { - this.filter = filter; - this.text = "Activate this ability only if " + filter.getMessage(); - } - - public FilterPermanentCost(final FilterPermanentCost cost) { - super(cost); - this.filter = cost.filter; - } - - @Override - public FilterPermanentCost copy() { - return new FilterPermanentCost(this); - } - - @Override - public boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game) { - return game.getBattlefield().contains(filter, controllerId, 1, game); - } - - @Override - public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { - this.paid = true; - return paid; - } -} diff --git a/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java b/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java index 7669e5d84cd..11d0b19ddf6 100644 --- a/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java +++ b/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java @@ -111,7 +111,7 @@ class NissaSageAnimistPlusOneEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = game.getObject(source.getSourceId()); - if (sourceObject != null && controller != null && controller.getLibrary().size() > 0) { + if (sourceObject != null && controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card == null) { return false; diff --git a/Mage.Sets/src/mage/cards/n/NivixAerieOfTheFiremind.java b/Mage.Sets/src/mage/cards/n/NivixAerieOfTheFiremind.java index 8195e0659a6..3da4ca67d33 100644 --- a/Mage.Sets/src/mage/cards/n/NivixAerieOfTheFiremind.java +++ b/Mage.Sets/src/mage/cards/n/NivixAerieOfTheFiremind.java @@ -98,7 +98,7 @@ class NivixAerieOfTheFiremindEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { Library library = controller.getLibrary(); - if (library.size() > 0) { + if (library.hasCards()) { Card card = library.removeFromTop(game); if (card != null && controller.moveCardsToExile(card, source, game, true, source.getSourceId(), "Nivix, Aerie of the Firemind") diff --git a/Mage.Sets/src/mage/cards/o/OathOfDruids.java b/Mage.Sets/src/mage/cards/o/OathOfDruids.java index 31a3b514c1b..9b76d66afb2 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfDruids.java +++ b/Mage.Sets/src/mage/cards/o/OathOfDruids.java @@ -145,7 +145,7 @@ class OathOfDruidsEffect extends OneShotEffect { Card creatureCard = null; Cards nonCreatureCards = new CardsImpl(); //The first player may reveal cards from the top of his or her library - while (creatureCard == null && controller.getLibrary().size() > 0) { + while (creatureCard == null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); revealed.add(card); // until he or she reveals a creature card. diff --git a/Mage.Sets/src/mage/cards/o/OrnateKanzashi.java b/Mage.Sets/src/mage/cards/o/OrnateKanzashi.java index 1ca24916ff6..4e9e6daf00f 100644 --- a/Mage.Sets/src/mage/cards/o/OrnateKanzashi.java +++ b/Mage.Sets/src/mage/cards/o/OrnateKanzashi.java @@ -100,7 +100,7 @@ class OrnateKanzashiEffect extends OneShotEffect { Player opponent = game.getPlayer(targetPointer.getFirst(game, source)); MageObject sourceObject = game.getObject(source.getSourceId()); if (sourceObject != null && opponent != null) { - if (opponent.getLibrary().size() > 0) { + if (opponent.getLibrary().hasCards()) { Library library = opponent.getLibrary(); Card card = library.getFromTop(game); if (card != null) { diff --git a/Mage.Sets/src/mage/cards/o/Oust.java b/Mage.Sets/src/mage/cards/o/Oust.java index d00ada1c464..9eb0ae806e4 100644 --- a/Mage.Sets/src/mage/cards/o/Oust.java +++ b/Mage.Sets/src/mage/cards/o/Oust.java @@ -93,7 +93,7 @@ class OustEffect extends OneShotEffect { } Card card = null; - if (owner.getLibrary().size() > 0) { + if (owner.getLibrary().hasCards()) { card = owner.getLibrary().removeFromTop(game); } diff --git a/Mage.Sets/src/mage/cards/p/PainSeer.java b/Mage.Sets/src/mage/cards/p/PainSeer.java index 544ae79d893..9cbaa18e851 100644 --- a/Mage.Sets/src/mage/cards/p/PainSeer.java +++ b/Mage.Sets/src/mage/cards/p/PainSeer.java @@ -94,7 +94,7 @@ class PainSeerEffect extends OneShotEffect { return false; } - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); Cards cards = new CardsImpl(); cards.add(card); diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianDevourer.java b/Mage.Sets/src/mage/cards/p/PhyrexianDevourer.java index 5cd23670835..a8bd254a411 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianDevourer.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianDevourer.java @@ -174,7 +174,7 @@ class ExileTopCardLibraryCost extends CostImpl { public boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game) { Player controller = game.getPlayer(controllerId); if (controller != null) { - return controller.getLibrary().size() > 0; + return controller.getLibrary().hasCards(); } return false; } diff --git a/Mage.Sets/src/mage/cards/p/Polymorph.java b/Mage.Sets/src/mage/cards/p/Polymorph.java index 9e74f571c00..ae75ecf5241 100644 --- a/Mage.Sets/src/mage/cards/p/Polymorph.java +++ b/Mage.Sets/src/mage/cards/p/Polymorph.java @@ -96,11 +96,11 @@ class PolymorphEffect extends OneShotEffect { Player player = game.getPlayer(permanent.getControllerId()); if (player != null) { Library library = player.getLibrary(); - if (library.size() > 0) { + if (library.hasCards()) { Cards cards = new CardsImpl(); Card card = library.removeFromTop(game); cards.add(card); - while (!card.isCreature() && library.size() > 0) { + while (!card.isCreature() && library.hasCards()) { card = library.removeFromTop(game); cards.add(card); } diff --git a/Mage.Sets/src/mage/cards/p/PossibilityStorm.java b/Mage.Sets/src/mage/cards/p/PossibilityStorm.java index 9cb8c7ba9f2..8e589252385 100644 --- a/Mage.Sets/src/mage/cards/p/PossibilityStorm.java +++ b/Mage.Sets/src/mage/cards/p/PossibilityStorm.java @@ -136,7 +136,7 @@ class PossibilityStormEffect extends OneShotEffect { Player spellController = game.getPlayer(spell.getControllerId()); if (spellController != null && spellController.moveCardsToExile(spell, source, game, true, source.getSourceId(), sourceObject.getIdName())) { - if (spellController.getLibrary().size() > 0) { + if (spellController.getLibrary().hasCards()) { Library library = spellController.getLibrary(); Card card; do { @@ -144,7 +144,7 @@ class PossibilityStormEffect extends OneShotEffect { if (card != null) { spellController.moveCardsToExile(card, source, game, true, source.getSourceId(), sourceObject.getIdName()); } - } while (library.size() > 0 && card != null && !sharesType(card, spell.getCardType())); + } while (library.hasCards() && card != null && !sharesType(card, spell.getCardType())); if (card != null && sharesType(card, spell.getCardType()) && !card.isLand() diff --git a/Mage.Sets/src/mage/cards/p/PrimalSurge.java b/Mage.Sets/src/mage/cards/p/PrimalSurge.java index f4814a6a6f3..d941e8f4a89 100644 --- a/Mage.Sets/src/mage/cards/p/PrimalSurge.java +++ b/Mage.Sets/src/mage/cards/p/PrimalSurge.java @@ -92,7 +92,7 @@ class PrimalSurgeEffect extends OneShotEffect { boolean repeat; do { repeat = false; - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Card card = player.getLibrary().removeFromTop(game); if (card != null) { card.moveToExile(null, "", source.getSourceId(), game); diff --git a/Mage.Sets/src/mage/cards/p/PropheticFlamespeaker.java b/Mage.Sets/src/mage/cards/p/PropheticFlamespeaker.java index 1e48a41fd75..e0ac4aab73f 100644 --- a/Mage.Sets/src/mage/cards/p/PropheticFlamespeaker.java +++ b/Mage.Sets/src/mage/cards/p/PropheticFlamespeaker.java @@ -102,7 +102,7 @@ class PropheticFlamespeakerExileEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); - if (sourcePermanent != null && controller != null && controller.getLibrary().size() > 0) { + if (sourcePermanent != null && controller != null && controller.getLibrary().hasCards()) { Library library = controller.getLibrary(); Card card = library.removeFromTop(game); if (card != null) { diff --git a/Mage.Sets/src/mage/cards/p/ProteusStaff.java b/Mage.Sets/src/mage/cards/p/ProteusStaff.java index a79e0fa092e..21ad8854b00 100644 --- a/Mage.Sets/src/mage/cards/p/ProteusStaff.java +++ b/Mage.Sets/src/mage/cards/p/ProteusStaff.java @@ -102,7 +102,7 @@ class ProteusStaffEffect extends OneShotEffect { // That creature's controller reveals cards from the top of his or her library until he or she reveals a creature card. Cards cards = new CardsImpl(); - while (controller.getLibrary().size() > 0) { + while (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { if (card.isCreature()) { diff --git a/Mage.Sets/src/mage/cards/p/PsychicVortex.java b/Mage.Sets/src/mage/cards/p/PsychicVortex.java index 0885733a346..c65c6216138 100644 --- a/Mage.Sets/src/mage/cards/p/PsychicVortex.java +++ b/Mage.Sets/src/mage/cards/p/PsychicVortex.java @@ -98,7 +98,7 @@ class PsychicVortexCost extends CostImpl { @Override public boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game) { Player controller = game.getPlayer(controllerId); - return controller.getLibrary().size() > 0; + return controller.getLibrary().hasCards(); } @Override diff --git a/Mage.Sets/src/mage/cards/p/PyxisOfPandemonium.java b/Mage.Sets/src/mage/cards/p/PyxisOfPandemonium.java index 0ab8b036c28..efddbff2b88 100644 --- a/Mage.Sets/src/mage/cards/p/PyxisOfPandemonium.java +++ b/Mage.Sets/src/mage/cards/p/PyxisOfPandemonium.java @@ -111,7 +111,7 @@ class PyxisOfPandemoniumExileEffect extends OneShotEffect { Player player = game.getPlayer(playerId); if (player != null) { - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); String exileKey = playerId.toString() + CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter()).toString(); UUID exileId = exileIds.computeIfAbsent(exileKey, k -> UUID.randomUUID()); diff --git a/Mage.Sets/src/mage/cards/q/QuestForUlasTemple.java b/Mage.Sets/src/mage/cards/q/QuestForUlasTemple.java index fc93255ea9a..96eb11c5488 100644 --- a/Mage.Sets/src/mage/cards/q/QuestForUlasTemple.java +++ b/Mage.Sets/src/mage/cards/q/QuestForUlasTemple.java @@ -98,7 +98,7 @@ class QuestForUlasTempleEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); - if (sourcePermanent != null && controller != null && controller.getLibrary().size() > 0) { + if (sourcePermanent != null && controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); Cards cards = new CardsImpl(card); controller.lookAtCards(sourcePermanent.getName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/r/RallyTheHorde.java b/Mage.Sets/src/mage/cards/r/RallyTheHorde.java index 6931b031693..14b8a567307 100644 --- a/Mage.Sets/src/mage/cards/r/RallyTheHorde.java +++ b/Mage.Sets/src/mage/cards/r/RallyTheHorde.java @@ -87,12 +87,12 @@ class RallyTheHordeEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { int nonLandCardsExiled = 0; - while(controller.getLibrary().size() > 0) { + while(controller.getLibrary().hasCards()) { nonLandCardsExiled += checkIfNextLibCardIsNonLandAndExile(controller, source, game); - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { nonLandCardsExiled += checkIfNextLibCardIsNonLandAndExile(controller, source, game); } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { int nonLands = checkIfNextLibCardIsNonLandAndExile(controller, source, game); if (nonLands == 0) { break; diff --git a/Mage.Sets/src/mage/cards/r/Reweave.java b/Mage.Sets/src/mage/cards/r/Reweave.java index edee2c3a178..40d895a2e7e 100644 --- a/Mage.Sets/src/mage/cards/r/Reweave.java +++ b/Mage.Sets/src/mage/cards/r/Reweave.java @@ -104,11 +104,11 @@ class ReweaveEffect extends OneShotEffect { Player permanentController = game.getPlayer(permanent.getControllerId()); if (permanentController != null) { Library library = permanentController.getLibrary(); - if (library.size() > 0) { + if (library.hasCards()) { Cards cards = new CardsImpl(); Card card = null; boolean cardFound = false; - if (library.size() > 0) { + if (library.hasCards()) { do { card = library.removeFromTop(game); cards.add(card); @@ -121,7 +121,7 @@ class ReweaveEffect extends OneShotEffect { } } } - } while (!cardFound && library.size() > 0); + } while (!cardFound && library.hasCards()); permanentController.moveCards(card, Zone.BATTLEFIELD, source, game); } diff --git a/Mage.Sets/src/mage/cards/r/RiddleOfLightning.java b/Mage.Sets/src/mage/cards/r/RiddleOfLightning.java index de07d3d00ae..6c44f191bd0 100644 --- a/Mage.Sets/src/mage/cards/r/RiddleOfLightning.java +++ b/Mage.Sets/src/mage/cards/r/RiddleOfLightning.java @@ -92,7 +92,7 @@ class RiddleOfLightningEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Card sourceCard = game.getCard(source.getSourceId()); if (sourceCard != null && controller != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); controller.revealCards(sourceCard.getName(), new CardsImpl(card), game); Permanent targetCreature = game.getPermanent(this.getTargetPointer().getFirst(game, source)); diff --git a/Mage.Sets/src/mage/cards/r/RiptideShapeshifter.java b/Mage.Sets/src/mage/cards/r/RiptideShapeshifter.java index 6d5d4947f09..fcc7ce9c71d 100644 --- a/Mage.Sets/src/mage/cards/r/RiptideShapeshifter.java +++ b/Mage.Sets/src/mage/cards/r/RiptideShapeshifter.java @@ -108,7 +108,7 @@ class RiptideShapeshifterEffect extends OneShotEffect { } } Cards revealedCards = new CardsImpl(); - while (controller.getLibrary().size() > 0) { + while (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card.isCreature() && card.getSubtype(game).contains(choice.getChoice())) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); diff --git a/Mage.Sets/src/mage/cards/r/RummagingWizard.java b/Mage.Sets/src/mage/cards/r/RummagingWizard.java index 05385cc5b31..52e75fba8f2 100644 --- a/Mage.Sets/src/mage/cards/r/RummagingWizard.java +++ b/Mage.Sets/src/mage/cards/r/RummagingWizard.java @@ -90,7 +90,7 @@ class RummagingWizardLookLibraryEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { CardsImpl cards = new CardsImpl(); diff --git a/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java b/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java index 998d2a8d7dc..2038e8c1aef 100644 --- a/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java +++ b/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java @@ -100,7 +100,7 @@ class SaplingOfColfenorEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = source.getSourceObject(game); if (controller != null && sourceObject != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); Cards cards = new CardsImpl(card); controller.revealCards(sourceObject.getIdName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/s/ScribNibblers.java b/Mage.Sets/src/mage/cards/s/ScribNibblers.java index 9694d7a241e..5e1aafb1a85 100644 --- a/Mage.Sets/src/mage/cards/s/ScribNibblers.java +++ b/Mage.Sets/src/mage/cards/s/ScribNibblers.java @@ -98,7 +98,7 @@ class ScribNibblersEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player you = game.getPlayer(source.getControllerId()); Player targetPlayer = game.getPlayer(source.getFirstTarget()); - if (targetPlayer != null && targetPlayer.getLibrary().size() > 0) { + if (targetPlayer != null && targetPlayer.getLibrary().hasCards()) { Card card = targetPlayer.getLibrary().getFromTop(game); card.moveToExile(id, "Scrib Nibblers Exile", source.getSourceId(), game); if (card != null && card.isLand()) { diff --git a/Mage.Sets/src/mage/cards/s/SearchTheCity.java b/Mage.Sets/src/mage/cards/s/SearchTheCity.java index 03beca4577b..cc03610b7e3 100644 --- a/Mage.Sets/src/mage/cards/s/SearchTheCity.java +++ b/Mage.Sets/src/mage/cards/s/SearchTheCity.java @@ -96,7 +96,7 @@ class SearchTheCityExileEffect extends OneShotEffect { if (player != null) { // move cards from library to exile for (int i = 0; i < 5; i++) { - if (player != null && player.getLibrary().size() > 0) { + if (player != null && player.getLibrary().hasCards()) { Card topCard = player.getLibrary().getFromTop(game); topCard.moveToExile(source.getSourceId(), "Cards exiled by Search the City", source.getSourceId(), game); } diff --git a/Mage.Sets/src/mage/cards/s/SelvalasStampede.java b/Mage.Sets/src/mage/cards/s/SelvalasStampede.java index 25738a01900..8977abf3ffb 100644 --- a/Mage.Sets/src/mage/cards/s/SelvalasStampede.java +++ b/Mage.Sets/src/mage/cards/s/SelvalasStampede.java @@ -89,7 +89,7 @@ class SelvalasStampedeDilemmaEffect extends CouncilsDilemmaVoteEffect { Cards revealedCards = new CardsImpl(); int cardsToReveal = voteOneCount; - while (cardsToReveal > 0 && controller.getLibrary().size() > 0) { + while (cardsToReveal > 0 && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card.isCreature()) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); diff --git a/Mage.Sets/src/mage/cards/s/ShapeAnew.java b/Mage.Sets/src/mage/cards/s/ShapeAnew.java index e8c85d8573a..e2c16edf629 100644 --- a/Mage.Sets/src/mage/cards/s/ShapeAnew.java +++ b/Mage.Sets/src/mage/cards/s/ShapeAnew.java @@ -100,7 +100,7 @@ public class ShapeAnew extends CardImpl { Card artifactCard = null; Cards nonArtifactCards = new CardsImpl(); Player targetController = game.getPlayer(sourcePermanent.getControllerId()); - while (artifactCard == null && targetController.getLibrary().size() > 0) { + while (artifactCard == null && targetController.getLibrary().hasCards()) { Card card = targetController.getLibrary().removeFromTop(game); revealed.add(card); if (card.isArtifact()) { diff --git a/Mage.Sets/src/mage/cards/s/SinProdder.java b/Mage.Sets/src/mage/cards/s/SinProdder.java index fb3c758f42f..9ae64f01903 100644 --- a/Mage.Sets/src/mage/cards/s/SinProdder.java +++ b/Mage.Sets/src/mage/cards/s/SinProdder.java @@ -99,7 +99,7 @@ class SinProdderEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); if (controller != null && sourcePermanent != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { Cards cards = new CardsImpl(card); diff --git a/Mage.Sets/src/mage/cards/s/SkirkDrillSergeant.java b/Mage.Sets/src/mage/cards/s/SkirkDrillSergeant.java index 7e92c253bad..fc5f14165d8 100644 --- a/Mage.Sets/src/mage/cards/s/SkirkDrillSergeant.java +++ b/Mage.Sets/src/mage/cards/s/SkirkDrillSergeant.java @@ -112,7 +112,7 @@ class SkirkDrillSergeantEffect extends OneShotEffect { return false; } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); controller.revealCards(sourceObject.getIdName(), new CardsImpl(card), game); if (card != null) { diff --git a/Mage.Sets/src/mage/cards/s/SorinGrimNemesis.java b/Mage.Sets/src/mage/cards/s/SorinGrimNemesis.java index 4e835ebe62f..1122a172077 100644 --- a/Mage.Sets/src/mage/cards/s/SorinGrimNemesis.java +++ b/Mage.Sets/src/mage/cards/s/SorinGrimNemesis.java @@ -111,7 +111,7 @@ class SorinGrimNemesisRevealEffect extends OneShotEffect { return false; } - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); Cards cards = new CardsImpl(); cards.add(card); diff --git a/Mage.Sets/src/mage/cards/s/Spellshift.java b/Mage.Sets/src/mage/cards/s/Spellshift.java index c9f9d41dbcc..a58475d546f 100644 --- a/Mage.Sets/src/mage/cards/s/Spellshift.java +++ b/Mage.Sets/src/mage/cards/s/Spellshift.java @@ -94,11 +94,11 @@ class SpellshiftEffect extends OneShotEffect { Player player = game.getPlayer(((Spell) game.getLastKnownInformation(targetPointer.getFirst(game, source), Zone.STACK)).getControllerId()); if (player != null) { Library library = player.getLibrary(); - if (library.size() > 0) { + if (library.hasCards()) { Cards cards = new CardsImpl(); Card card = library.removeFromTop(game); cards.add(card); - while (!(card.isSorcery() || card.isInstant()) && library.size() > 0) { + while (!(card.isSorcery() || card.isInstant()) && library.hasCards()) { card = library.removeFromTop(game); cards.add(card); } diff --git a/Mage.Sets/src/mage/cards/s/SphinxsTutelage.java b/Mage.Sets/src/mage/cards/s/SphinxsTutelage.java index 4028b6356a7..eebbc51ab9a 100644 --- a/Mage.Sets/src/mage/cards/s/SphinxsTutelage.java +++ b/Mage.Sets/src/mage/cards/s/SphinxsTutelage.java @@ -112,7 +112,7 @@ class SphinxsTutelageEffect extends OneShotEffect { cards.addAll(targetPlayer.getLibrary().getTopCards(game, 2)); if (!cards.isEmpty()) { Card card1 = targetPlayer.getLibrary().removeFromTop(game); - if (!card1.isLand() && targetPlayer.getLibrary().size() > 0) { + if (!card1.isLand() && targetPlayer.getLibrary().hasCards()) { Card card2 = targetPlayer.getLibrary().removeFromTop(game); if (!card2.isLand()) { colorShared = card1.getColor(game).shares(card2.getColor(game)); diff --git a/Mage.Sets/src/mage/cards/s/SpoilsOfTheVault.java b/Mage.Sets/src/mage/cards/s/SpoilsOfTheVault.java index 589ed996b04..c0aaa9537ac 100644 --- a/Mage.Sets/src/mage/cards/s/SpoilsOfTheVault.java +++ b/Mage.Sets/src/mage/cards/s/SpoilsOfTheVault.java @@ -94,7 +94,7 @@ class SpoilsOfTheVaultEffect extends OneShotEffect { Cards cardsToReveal = new CardsImpl(); Cards cardsToExile = new CardsImpl(); - while (controller.getLibrary().size() > 0) { + while (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); if (card != null) { cardsToReveal.add(card); diff --git a/Mage.Sets/src/mage/cards/s/StolenGoods.java b/Mage.Sets/src/mage/cards/s/StolenGoods.java index 366fe3cb75e..efc6b06b279 100644 --- a/Mage.Sets/src/mage/cards/s/StolenGoods.java +++ b/Mage.Sets/src/mage/cards/s/StolenGoods.java @@ -91,7 +91,7 @@ class StolenGoodsEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player opponent = game.getPlayer(targetPointer.getFirst(game, source)); MageObject sourceObject = source.getSourceObject(game); - if (opponent != null && opponent.getLibrary().size() > 0 && sourceObject != null) { + if (opponent != null && opponent.getLibrary().hasCards() && sourceObject != null) { Library library = opponent.getLibrary(); Card card; do { @@ -99,7 +99,7 @@ class StolenGoodsEffect extends OneShotEffect { if (card != null) { opponent.moveCardsToExile(card, source, game, true, source.getSourceId(), sourceObject.getIdName()); } - } while (library.size() > 0 && card != null && card.isLand()); + } while (library.hasCards() && card != null && card.isLand()); if (card != null) { ContinuousEffect effect = new StolenGoodsCastFromExileEffect(); diff --git a/Mage.Sets/src/mage/cards/s/StormchaserChimera.java b/Mage.Sets/src/mage/cards/s/StormchaserChimera.java index 4c9f75b762f..4adc656ddc7 100644 --- a/Mage.Sets/src/mage/cards/s/StormchaserChimera.java +++ b/Mage.Sets/src/mage/cards/s/StormchaserChimera.java @@ -98,7 +98,7 @@ class StormchaserChimeraEffect extends OneShotEffect { if (player == null || sourcePermanent == null) { return false; } - if (player.getLibrary().size() > 0) { + if (player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); Cards cards = new CardsImpl(card); player.revealCards(sourcePermanent.getName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/s/StromkirkOccultist.java b/Mage.Sets/src/mage/cards/s/StromkirkOccultist.java index 21253ac9be6..7480eb9271f 100644 --- a/Mage.Sets/src/mage/cards/s/StromkirkOccultist.java +++ b/Mage.Sets/src/mage/cards/s/StromkirkOccultist.java @@ -103,7 +103,7 @@ class StromkirkOccultistExileEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); - if (sourcePermanent != null && controller != null && controller.getLibrary().size() > 0) { + if (sourcePermanent != null && controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { String exileName = new StringBuilder(sourcePermanent.getIdName()).append(" ").toString(); diff --git a/Mage.Sets/src/mage/cards/s/Sunforger.java b/Mage.Sets/src/mage/cards/s/Sunforger.java index f43b22ad5b4..d042a2f96d2 100644 --- a/Mage.Sets/src/mage/cards/s/Sunforger.java +++ b/Mage.Sets/src/mage/cards/s/Sunforger.java @@ -112,7 +112,7 @@ class SunforgerEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { /** * 10/1/2005 Any card you find must be legally castable (for * example, you have to be able to choose a legal target for diff --git a/Mage.Sets/src/mage/cards/s/SyntheticDestiny.java b/Mage.Sets/src/mage/cards/s/SyntheticDestiny.java index 4c179ad0074..2b26417e2ba 100644 --- a/Mage.Sets/src/mage/cards/s/SyntheticDestiny.java +++ b/Mage.Sets/src/mage/cards/s/SyntheticDestiny.java @@ -131,7 +131,7 @@ class SyntheticDestinyDelayedEffect extends OneShotEffect { Cards revealed = new CardsImpl(); Set creatureCards = new LinkedHashSet<>(); Cards nonCreatureCards = new CardsImpl(); - while (creatureCards.size() < numberOfCards && controller.getLibrary().size() > 0) { + while (creatureCards.size() < numberOfCards && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); revealed.add(card); if (card.isCreature()) { diff --git a/Mage.Sets/src/mage/cards/t/TaintedPact.java b/Mage.Sets/src/mage/cards/t/TaintedPact.java index 89bb815b47e..cf7b7b3e649 100644 --- a/Mage.Sets/src/mage/cards/t/TaintedPact.java +++ b/Mage.Sets/src/mage/cards/t/TaintedPact.java @@ -89,7 +89,7 @@ class TaintedPactEffect extends OneShotEffect{ return false; } Set names = new HashSet<>(); - while (player.canRespond() && player.getLibrary().size() > 0) { + while (player.canRespond() && player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); if (card != null) { diff --git a/Mage.Sets/src/mage/cards/t/TeleminPerformance.java b/Mage.Sets/src/mage/cards/t/TeleminPerformance.java index c673ce3aaad..005b1da2880 100644 --- a/Mage.Sets/src/mage/cards/t/TeleminPerformance.java +++ b/Mage.Sets/src/mage/cards/t/TeleminPerformance.java @@ -89,7 +89,7 @@ class TeleminPerformanceEffect extends OneShotEffect { Player opponent = game.getPlayer(source.getFirstTarget()); CardsImpl cards = new CardsImpl(); boolean creatureFound = false; - while (opponent.getLibrary().size() > 0 && !creatureFound) { + while (opponent.getLibrary().hasCards() && !creatureFound) { Card card = opponent.getLibrary().removeFromTop(game); if (card != null) { if (card.isCreature()) { diff --git a/Mage.Sets/src/mage/cards/t/ThinkTank.java b/Mage.Sets/src/mage/cards/t/ThinkTank.java index fe343e77f61..c82acfe2d26 100644 --- a/Mage.Sets/src/mage/cards/t/ThinkTank.java +++ b/Mage.Sets/src/mage/cards/t/ThinkTank.java @@ -87,7 +87,7 @@ class ThinkTankLookLibraryEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { CardsImpl cards = new CardsImpl(); diff --git a/Mage.Sets/src/mage/cards/t/ThrasiosTritonHero.java b/Mage.Sets/src/mage/cards/t/ThrasiosTritonHero.java index 616044763d2..15c0a0eecd2 100644 --- a/Mage.Sets/src/mage/cards/t/ThrasiosTritonHero.java +++ b/Mage.Sets/src/mage/cards/t/ThrasiosTritonHero.java @@ -103,7 +103,7 @@ class ThrasiosTritonHeroEffect extends OneShotEffect { if (sourceObject == null || controller == null) { return false; } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { CardsImpl cards = new CardsImpl(); Card card = controller.getLibrary().getFromTop(game); if (card == null) { diff --git a/Mage.Sets/src/mage/cards/t/TreasureHunt.java b/Mage.Sets/src/mage/cards/t/TreasureHunt.java index f29e8fd9965..f0c495223da 100644 --- a/Mage.Sets/src/mage/cards/t/TreasureHunt.java +++ b/Mage.Sets/src/mage/cards/t/TreasureHunt.java @@ -84,7 +84,7 @@ class TreasureHuntEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); - if (player != null && player.getLibrary().size() > 0) { + if (player != null && player.getLibrary().hasCards()) { CardsImpl cards = new CardsImpl(); Library library = player.getLibrary(); Card card = null; @@ -94,7 +94,7 @@ class TreasureHuntEffect extends OneShotEffect { cards.add(card); card.moveToZone(Zone.HAND, source.getSourceId(), game, false); } - } while (library.size() > 0 && card != null && card.isLand()); + } while (library.hasCards() && card != null && card.isLand()); if (!cards.isEmpty()) { player.revealCards("Treasure Hunt", cards, game); diff --git a/Mage.Sets/src/mage/cards/t/TreasureKeeper.java b/Mage.Sets/src/mage/cards/t/TreasureKeeper.java index 4ce5d59304a..8d3487f2066 100644 --- a/Mage.Sets/src/mage/cards/t/TreasureKeeper.java +++ b/Mage.Sets/src/mage/cards/t/TreasureKeeper.java @@ -89,7 +89,7 @@ class TreasureKeeperEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = game.getObject(source.getSourceId()); if (controller != null && sourceObject != null) { - while (nonLandCard == null && controller.getLibrary().size() > 0) { + while (nonLandCard == null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().removeFromTop(game); toReveal.add(card); if (!card.isLand() && card.getConvertedManaCost() < 4) { diff --git a/Mage.Sets/src/mage/cards/t/TrepanationBlade.java b/Mage.Sets/src/mage/cards/t/TrepanationBlade.java index 71f42e56b4a..d3593c9f12e 100644 --- a/Mage.Sets/src/mage/cards/t/TrepanationBlade.java +++ b/Mage.Sets/src/mage/cards/t/TrepanationBlade.java @@ -110,7 +110,7 @@ class TrepanationBladeDiscardEffect extends OneShotEffect { CardsImpl cards = new CardsImpl(); boolean landFound = false; - while (player.getLibrary().size() > 0 && !landFound) { + while (player.getLibrary().hasCards() && !landFound) { Card card = player.getLibrary().removeFromTop(game); if (card != null) { cards.add(card); diff --git a/Mage.Sets/src/mage/cards/t/TunnelVision.java b/Mage.Sets/src/mage/cards/t/TunnelVision.java index 436036cc5c9..03ef8cd3b83 100644 --- a/Mage.Sets/src/mage/cards/t/TunnelVision.java +++ b/Mage.Sets/src/mage/cards/t/TunnelVision.java @@ -104,7 +104,7 @@ class TunnelVisionEffect extends OneShotEffect { // if named card found, put all revealed cards in grave and put named card on top of library // if named card not found, shuffle library boolean namedCardFound = false; - while (targetPlayer.getLibrary().size() > 0) { + while (targetPlayer.getLibrary().hasCards()) { Card card = targetPlayer.getLibrary().removeFromTop(game); if (card != null) { cardsToReveal.add(card); diff --git a/Mage.Sets/src/mage/cards/u/UndercityInformer.java b/Mage.Sets/src/mage/cards/u/UndercityInformer.java index 6f170793210..eebe62e03ae 100644 --- a/Mage.Sets/src/mage/cards/u/UndercityInformer.java +++ b/Mage.Sets/src/mage/cards/u/UndercityInformer.java @@ -106,7 +106,7 @@ class UndercityInformerEffect extends OneShotEffect { } Cards cards = new CardsImpl(); - while(player.getLibrary().size() > 0){ + while(player.getLibrary().hasCards()){ Card card = player.getLibrary().removeFromTop(game); if (card != null) { cards.add(card); diff --git a/Mage.Sets/src/mage/cards/u/UndyingFlames.java b/Mage.Sets/src/mage/cards/u/UndyingFlames.java index 3b6264a7e95..0fdb37c9958 100644 --- a/Mage.Sets/src/mage/cards/u/UndyingFlames.java +++ b/Mage.Sets/src/mage/cards/u/UndyingFlames.java @@ -89,7 +89,7 @@ class UndyingFlamesEffect extends OneShotEffect { Player you = game.getPlayer(source.getControllerId()); Card sourceCard = game.getCard(source.getSourceId()); while (you != null && sourceCard != null - && you.getLibrary().size() > 0 && you.canRespond()) { + && you.getLibrary().hasCards() && you.canRespond()) { Card card = you.getLibrary().removeFromTop(game); if (card != null) { you.moveCardToExileWithInfo(card, null, null, source.getSourceId(), game, Zone.LIBRARY, true); diff --git a/Mage.Sets/src/mage/cards/u/UnexpectedResults.java b/Mage.Sets/src/mage/cards/u/UnexpectedResults.java index 6bd43ce9606..9cc36e8e2c5 100644 --- a/Mage.Sets/src/mage/cards/u/UnexpectedResults.java +++ b/Mage.Sets/src/mage/cards/u/UnexpectedResults.java @@ -109,7 +109,7 @@ class UnexpectedResultEffect extends OneShotEffect { if (controller == null || sourceCard == null) { return false; } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { controller.shuffleLibrary(source, game); Card card = controller.getLibrary().getFromTop(game); if (card == null) { diff --git a/Mage.Sets/src/mage/cards/v/VolrathsShapeshifter.java b/Mage.Sets/src/mage/cards/v/VolrathsShapeshifter.java index 6ad142144d2..1e167548d4f 100644 --- a/Mage.Sets/src/mage/cards/v/VolrathsShapeshifter.java +++ b/Mage.Sets/src/mage/cards/v/VolrathsShapeshifter.java @@ -49,21 +49,19 @@ import mage.game.Game; import mage.game.permanent.Permanent; /** - * * @author ImperatorPrime - */ public class VolrathsShapeshifter extends CardImpl { public VolrathsShapeshifter(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{U}"); this.subtype.add("Shapeshifter"); this.power = new MageInt(0); this.toughness = new MageInt(1); // As long as the top card of your graveyard is a creature card, Volrath's Shapeshifter has the full text of that card and has the text "{2}: Discard a card." this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VolrathsShapeshifterEffect())); - + // {2}: Discard a card. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DiscardControllerEffect(1), new ManaCostsImpl("{2}"))); } @@ -79,29 +77,29 @@ public class VolrathsShapeshifter extends CardImpl { } class VolrathsShapeshifterEffect extends ContinuousEffectImpl { - - public VolrathsShapeshifterEffect() { + + public VolrathsShapeshifterEffect() { super(Duration.WhileOnBattlefield, Layer.TextChangingEffects_3, SubLayer.NA, Outcome.BecomeCreature); - } - + } + public VolrathsShapeshifterEffect(final VolrathsShapeshifterEffect effect) { super(effect); } - - @Override - public VolrathsShapeshifterEffect copy() { - return new VolrathsShapeshifterEffect(this); - } - @Override - public boolean apply(Game game, Ability source) { - Card card = game.getPlayer(source.getControllerId()).getGraveyard().getTopCard(game); + @Override + public VolrathsShapeshifterEffect copy() { + return new VolrathsShapeshifterEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Card card = game.getPlayer(source.getControllerId()).getGraveyard().getTopCard(game); Permanent permanent = game.getPermanent(source.getSourceId()); - + if (card == null || permanent == null || !card.isCreature()) { return false; } - + permanent.getPower().setValue(card.getPower().getValue()); permanent.getToughness().setValue(card.getToughness().getValue()); permanent.getColor(game).setColor(card.getColor(game)); @@ -109,33 +107,31 @@ class VolrathsShapeshifterEffect extends ContinuousEffectImpl { permanent.getManaCost().add(card.getManaCost()); permanent.getCardType().clear(); permanent.setName(card.getName()); - + for (CardType type : card.getCardType()) { - if (!permanent.getCardType().contains(type)) { - permanent.getCardType().add(type); - } + permanent.getCardType().add(type); } - + permanent.getSubtype(game).clear(); for (String type : card.getSubtype(game)) { if (!permanent.getSubtype(game).contains(type)) { permanent.getSubtype(game).add(type); } } - + permanent.getSupertype().clear(); for (String type : card.getSupertype()) { if (!permanent.getSupertype().contains(type)) { permanent.getSupertype().add(type); } } - + for (Ability ability : card.getAbilities()) { if (!permanent.getAbilities().contains(ability)) { permanent.addAbility(ability, source.getSourceId(), game); } } - + return true; - } + } } diff --git a/Mage.Sets/src/mage/cards/w/WriteIntoBeing.java b/Mage.Sets/src/mage/cards/w/WriteIntoBeing.java index e02e618e1b7..9a6495ad8f1 100644 --- a/Mage.Sets/src/mage/cards/w/WriteIntoBeing.java +++ b/Mage.Sets/src/mage/cards/w/WriteIntoBeing.java @@ -108,7 +108,7 @@ class WriteIntoBeingEffect extends OneShotEffect { controller.getLibrary().putOnTop(cardToManifest, game); } new ManifestEffect(1).apply(game, source); - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card cardToPutBack = controller.getLibrary().getFromTop(game); String position = "on top"; if (controller.chooseUse(Outcome.Detriment, "Put " + cardToPutBack.getName() + " on bottom of library?", source, game)) { diff --git a/Mage.Sets/src/mage/cards/z/Zoologist.java b/Mage.Sets/src/mage/cards/z/Zoologist.java index f967916e74d..c488d535432 100644 --- a/Mage.Sets/src/mage/cards/z/Zoologist.java +++ b/Mage.Sets/src/mage/cards/z/Zoologist.java @@ -99,7 +99,7 @@ class ZoologistEffect extends OneShotEffect { return false; } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); controller.revealCards(sourceObject.getIdName(), new CardsImpl(card), game); if (card != null) { diff --git a/Mage/src/main/java/mage/abilities/abilityword/KinshipAbility.java b/Mage/src/main/java/mage/abilities/abilityword/KinshipAbility.java index cc5c531c575..6670a61c990 100644 --- a/Mage/src/main/java/mage/abilities/abilityword/KinshipAbility.java +++ b/Mage/src/main/java/mage/abilities/abilityword/KinshipAbility.java @@ -121,7 +121,7 @@ class KinshipBaseEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); if (controller != null && sourcePermanent != null) { - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { Cards cards = new CardsImpl(card); diff --git a/Mage/src/main/java/mage/abilities/condition/common/TopLibraryCardTypeCondition.java b/Mage/src/main/java/mage/abilities/condition/common/TopLibraryCardTypeCondition.java index bdd7a5e9b98..18ec77b1ab7 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/TopLibraryCardTypeCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/TopLibraryCardTypeCondition.java @@ -48,7 +48,7 @@ public class TopLibraryCardTypeCondition implements Condition { @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); - if (controller != null && controller.getLibrary().size() > 0) { + if (controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); if (card != null) { switch (this.type) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/ClashEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ClashEffect.java index 44db56cada1..c112eba43a0 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ClashEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ClashEffect.java @@ -128,7 +128,7 @@ public class ClashEffect extends OneShotEffect implements MageSingleton { // Reveal top cards of involved players StringBuilder message = new StringBuilder("Clash: "); message.append(controller.getLogName()); - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { Cards cards = new CardsImpl(); cardController = controller.getLibrary().getFromTop(game); cards.add(cardController); @@ -139,7 +139,7 @@ public class ClashEffect extends OneShotEffect implements MageSingleton { message.append(" no card"); } message.append(" vs. ").append(opponent.getLogName()); - if (opponent.getLibrary().size() > 0) { + if (opponent.getLibrary().hasCards()) { Cards cards = new CardsImpl(); cardOpponent = opponent.getLibrary().getFromTop(game); cards.add(cardOpponent); diff --git a/Mage/src/main/java/mage/abilities/effects/common/RevealCardsFromLibraryUntilEffect.java b/Mage/src/main/java/mage/abilities/effects/common/RevealCardsFromLibraryUntilEffect.java index d7cd05e9143..67adcc88a11 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/RevealCardsFromLibraryUntilEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/RevealCardsFromLibraryUntilEffect.java @@ -89,7 +89,7 @@ public class RevealCardsFromLibraryUntilEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = game.getObject(source.getSourceId()); - if (controller != null && controller.getLibrary().size() > 0) { + if (controller != null && controller.getLibrary().hasCards()) { Cards cards = new CardsImpl(); Library library = controller.getLibrary(); Card card = null; @@ -98,7 +98,7 @@ public class RevealCardsFromLibraryUntilEffect extends OneShotEffect { if (card != null) { cards.add(card); } - } while (library.size() > 0 && card != null && !filter.match(card, game)); + } while (library.hasCards() && card != null && !filter.match(card, game)); // reveal cards if (!cards.isEmpty()) { controller.revealCards(sourceObject.getIdName(), cards, game); diff --git a/Mage/src/main/java/mage/abilities/effects/common/RevealTopLandToBattlefieldElseHandEffect.java b/Mage/src/main/java/mage/abilities/effects/common/RevealTopLandToBattlefieldElseHandEffect.java index 8da3ce2be0a..ec06e46b057 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/RevealTopLandToBattlefieldElseHandEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/RevealTopLandToBattlefieldElseHandEffect.java @@ -34,7 +34,7 @@ public class RevealTopLandToBattlefieldElseHandEffect extends OneShotEffect { if (sourceObject == null || controller == null) { return false; } - if (controller.getLibrary().size() > 0) { + if (controller.getLibrary().hasCards()) { CardsImpl cards = new CardsImpl(); Card card = controller.getLibrary().getFromTop(game); if (card == null) { diff --git a/Mage/src/main/java/mage/players/Library.java b/Mage/src/main/java/mage/players/Library.java index b4f5e44a1a1..9b4a8adc8f5 100644 --- a/Mage/src/main/java/mage/players/Library.java +++ b/Mage/src/main/java/mage/players/Library.java @@ -40,6 +40,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; + import mage.cards.Card; import mage.constants.Zone; import mage.filter.FilterCard; @@ -47,7 +48,6 @@ import mage.game.Game; import mage.util.RandomUtil; /** - * * @author BetaSteward_at_googlemail.com */ public class Library implements Serializable { @@ -255,6 +255,11 @@ public class Library implements Serializable { return null; } + + public boolean hasCards() { + return size() > 0; + } + public void reset() { this.emptyDraw = false; } diff --git a/Mage/src/main/java/mage/players/PlayerImpl.java b/Mage/src/main/java/mage/players/PlayerImpl.java index 3e8097b597d..03b5ab4d5af 100644 --- a/Mage/src/main/java/mage/players/PlayerImpl.java +++ b/Mage/src/main/java/mage/players/PlayerImpl.java @@ -2685,7 +2685,7 @@ public abstract class PlayerImpl implements Player, Serializable { for (UUID playerInRangeId : game.getState().getPlayersInRange(getId(), game)) { Player player = game.getPlayer(playerInRangeId); if (player != null) { - if (player.isTopCardRevealed() && player.getLibrary().size() > 0) { + if (player.isTopCardRevealed() && player.getLibrary().hasCards()) { Card card = player.getLibrary().getFromTop(game); if (game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, getId(), game)) { for (ActivatedAbility ability : card.getAbilities().getActivatedAbilities(Zone.HAND)) {