From 5a4d8c22ebedc37dd26b79b63d6d596c95b5ed2b Mon Sep 17 00:00:00 2001 From: Quercitron Date: Tue, 20 May 2014 12:44:03 +0400 Subject: [PATCH] [6ED] Add 5 cards --- .../mage/sets/alliances/MysticCompass.java | 71 +++++ .../src/mage/sets/fifthedition/Meekstone.java | 52 ++++ .../mage/sets/fourthedition/Meekstone.java | 52 ++++ .../src/mage/sets/limitedalpha/Meekstone.java | 71 +++++ .../src/mage/sets/limitedbeta/Meekstone.java | 52 ++++ .../src/mage/sets/mirage/GrinningTotem.java | 54 ++++ .../src/mage/sets/mirage/MossDiamond.java | 52 ++++ .../mage/sets/revisededition/Meekstone.java | 52 ++++ .../mage/sets/seventhedition/Meekstone.java | 52 ++++ .../mage/sets/seventhedition/MossDiamond.java | 61 ++++ .../src/mage/sets/seventhedition/Rowen.java | 114 ++++++++ .../mage/sets/sixthedition/GrinningTotem.java | 54 ++++ .../src/mage/sets/sixthedition/Meekstone.java | 52 ++++ .../mage/sets/sixthedition/MossDiamond.java | 52 ++++ .../mage/sets/sixthedition/MysticCompass.java | 52 ++++ .../src/mage/sets/sixthedition/Rowen.java | 52 ++++ .../mage/sets/timeshifted/GrinningTotem.java | 263 ++++++++++++++++++ .../mage/sets/unlimitededition/Meekstone.java | 52 ++++ Mage.Sets/src/mage/sets/visions/Rowen.java | 52 ++++ 19 files changed, 1312 insertions(+) create mode 100644 Mage.Sets/src/mage/sets/alliances/MysticCompass.java create mode 100644 Mage.Sets/src/mage/sets/fifthedition/Meekstone.java create mode 100644 Mage.Sets/src/mage/sets/fourthedition/Meekstone.java create mode 100644 Mage.Sets/src/mage/sets/limitedalpha/Meekstone.java create mode 100644 Mage.Sets/src/mage/sets/limitedbeta/Meekstone.java create mode 100644 Mage.Sets/src/mage/sets/mirage/GrinningTotem.java create mode 100644 Mage.Sets/src/mage/sets/mirage/MossDiamond.java create mode 100644 Mage.Sets/src/mage/sets/revisededition/Meekstone.java create mode 100644 Mage.Sets/src/mage/sets/seventhedition/Meekstone.java create mode 100644 Mage.Sets/src/mage/sets/seventhedition/MossDiamond.java create mode 100644 Mage.Sets/src/mage/sets/seventhedition/Rowen.java create mode 100644 Mage.Sets/src/mage/sets/sixthedition/GrinningTotem.java create mode 100644 Mage.Sets/src/mage/sets/sixthedition/Meekstone.java create mode 100644 Mage.Sets/src/mage/sets/sixthedition/MossDiamond.java create mode 100644 Mage.Sets/src/mage/sets/sixthedition/MysticCompass.java create mode 100644 Mage.Sets/src/mage/sets/sixthedition/Rowen.java create mode 100644 Mage.Sets/src/mage/sets/timeshifted/GrinningTotem.java create mode 100644 Mage.Sets/src/mage/sets/unlimitededition/Meekstone.java create mode 100644 Mage.Sets/src/mage/sets/visions/Rowen.java diff --git a/Mage.Sets/src/mage/sets/alliances/MysticCompass.java b/Mage.Sets/src/mage/sets/alliances/MysticCompass.java new file mode 100644 index 0000000000..d1f7e09882 --- /dev/null +++ b/Mage.Sets/src/mage/sets/alliances/MysticCompass.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.alliances; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continious.BecomesBasicLandTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.Target; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author Quercitron + */ +public class MysticCompass extends CardImpl { + + public MysticCompass(UUID ownerId) { + super(ownerId, 166, "Mystic Compass", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetCode = "ALL"; + + // {1}, {tap}: Target land becomes the basic land type of your choice until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}")); + ability.addCost(new TapSourceCost()); + Target target = new TargetLandPermanent(); + target.setRequired(true); + ability.addTarget(target); + this.addAbility(ability); + } + + public MysticCompass(final MysticCompass card) { + super(card); + } + + @Override + public MysticCompass copy() { + return new MysticCompass(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fifthedition/Meekstone.java b/Mage.Sets/src/mage/sets/fifthedition/Meekstone.java new file mode 100644 index 0000000000..4d2a3965b7 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fifthedition/Meekstone.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fifthedition; + +import java.util.UUID; + +/** + * + * @author Quercitron + */ +public class Meekstone extends mage.sets.limitedalpha.Meekstone { + + public Meekstone(UUID ownerId) { + super(ownerId); + this.cardNumber = 389; + this.expansionSetCode = "5ED"; + } + + public Meekstone(final Meekstone card) { + super(card); + } + + @Override + public Meekstone copy() { + return new Meekstone(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fourthedition/Meekstone.java b/Mage.Sets/src/mage/sets/fourthedition/Meekstone.java new file mode 100644 index 0000000000..f806254425 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fourthedition/Meekstone.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fourthedition; + +import java.util.UUID; + +/** + * + * @author Quercitron + */ +public class Meekstone extends mage.sets.limitedalpha.Meekstone { + + public Meekstone(UUID ownerId) { + super(ownerId); + this.cardNumber = 353; + this.expansionSetCode = "4ED"; + } + + public Meekstone(final Meekstone card) { + super(card); + } + + @Override + public Meekstone copy() { + return new Meekstone(this); + } +} diff --git a/Mage.Sets/src/mage/sets/limitedalpha/Meekstone.java b/Mage.Sets/src/mage/sets/limitedalpha/Meekstone.java new file mode 100644 index 0000000000..a839236b0b --- /dev/null +++ b/Mage.Sets/src/mage/sets/limitedalpha/Meekstone.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.limitedalpha; + +import java.util.UUID; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.SkipUntapAllEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.Filter.ComparisonType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; + +/** + * + * @author Quercitron + */ +public class Meekstone extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures with power 3 or greater"); + + static { + filter.add(new PowerPredicate(ComparisonType.GreaterThan, 2)); + } + + public Meekstone(UUID ownerId) { + super(ownerId, 260, "Meekstone", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{1}"); + this.expansionSetCode = "LEA"; + + // Creatures with power 3 or greater don't untap during their controllers' untap steps. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, filter))); + } + + public Meekstone(final Meekstone card) { + super(card); + } + + @Override + public Meekstone copy() { + return new Meekstone(this); + } +} diff --git a/Mage.Sets/src/mage/sets/limitedbeta/Meekstone.java b/Mage.Sets/src/mage/sets/limitedbeta/Meekstone.java new file mode 100644 index 0000000000..12c3d49ba9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/limitedbeta/Meekstone.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.limitedbeta; + +import java.util.UUID; + +/** + * + * @author Quercitron + */ +public class Meekstone extends mage.sets.limitedalpha.Meekstone { + + public Meekstone(UUID ownerId) { + super(ownerId); + this.cardNumber = 262; + this.expansionSetCode = "LEB"; + } + + public Meekstone(final Meekstone card) { + super(card); + } + + @Override + public Meekstone copy() { + return new Meekstone(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mirage/GrinningTotem.java b/Mage.Sets/src/mage/sets/mirage/GrinningTotem.java new file mode 100644 index 0000000000..faec4b1aeb --- /dev/null +++ b/Mage.Sets/src/mage/sets/mirage/GrinningTotem.java @@ -0,0 +1,54 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.mirage; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author Quercitron + */ +public class GrinningTotem extends mage.sets.timeshifted.GrinningTotem { + + public GrinningTotem(UUID ownerId) { + super(ownerId); + this.cardNumber = 268; + this.expansionSetCode = "MIR"; + this.rarity = Rarity.RARE; + } + + public GrinningTotem(final GrinningTotem card) { + super(card); + } + + @Override + public GrinningTotem copy() { + return new GrinningTotem(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mirage/MossDiamond.java b/Mage.Sets/src/mage/sets/mirage/MossDiamond.java new file mode 100644 index 0000000000..8c98400d59 --- /dev/null +++ b/Mage.Sets/src/mage/sets/mirage/MossDiamond.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.mirage; + +import java.util.UUID; + +/** + * + * @author Quercitron + */ +public class MossDiamond extends mage.sets.seventhedition.MossDiamond { + + public MossDiamond(UUID ownerId) { + super(ownerId); + this.cardNumber = 277; + this.expansionSetCode = "MIR"; + } + + public MossDiamond(final MossDiamond card) { + super(card); + } + + @Override + public MossDiamond copy() { + return new MossDiamond(this); + } +} diff --git a/Mage.Sets/src/mage/sets/revisededition/Meekstone.java b/Mage.Sets/src/mage/sets/revisededition/Meekstone.java new file mode 100644 index 0000000000..2a803ff028 --- /dev/null +++ b/Mage.Sets/src/mage/sets/revisededition/Meekstone.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.revisededition; + +import java.util.UUID; + +/** + * + * @author Quercitron + */ +public class Meekstone extends mage.sets.limitedalpha.Meekstone { + + public Meekstone(UUID ownerId) { + super(ownerId); + this.cardNumber = 264; + this.expansionSetCode = "3ED"; + } + + public Meekstone(final Meekstone card) { + super(card); + } + + @Override + public Meekstone copy() { + return new Meekstone(this); + } +} diff --git a/Mage.Sets/src/mage/sets/seventhedition/Meekstone.java b/Mage.Sets/src/mage/sets/seventhedition/Meekstone.java new file mode 100644 index 0000000000..787bf62f77 --- /dev/null +++ b/Mage.Sets/src/mage/sets/seventhedition/Meekstone.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.seventhedition; + +import java.util.UUID; + +/** + * + * @author Quercitron + */ +public class Meekstone extends mage.sets.limitedalpha.Meekstone { + + public Meekstone(UUID ownerId) { + super(ownerId); + this.cardNumber = 307; + this.expansionSetCode = "7ED"; + } + + public Meekstone(final Meekstone card) { + super(card); + } + + @Override + public Meekstone copy() { + return new Meekstone(this); + } +} diff --git a/Mage.Sets/src/mage/sets/seventhedition/MossDiamond.java b/Mage.Sets/src/mage/sets/seventhedition/MossDiamond.java new file mode 100644 index 0000000000..f946a2e6e5 --- /dev/null +++ b/Mage.Sets/src/mage/sets/seventhedition/MossDiamond.java @@ -0,0 +1,61 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.seventhedition; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.mana.GreenManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author Quercitron + */ +public class MossDiamond extends CardImpl { + + public MossDiamond(UUID ownerId) { + super(ownerId, 309, "Moss Diamond", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetCode = "7ED"; + + // Moss Diamond enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + // {tap}: Add {G} to your mana pool. + this.addAbility(new GreenManaAbility()); + } + + public MossDiamond(final MossDiamond card) { + super(card); + } + + @Override + public MossDiamond copy() { + return new MossDiamond(this); + } +} diff --git a/Mage.Sets/src/mage/sets/seventhedition/Rowen.java b/Mage.Sets/src/mage/sets/seventhedition/Rowen.java new file mode 100644 index 0000000000..e2cf646fec --- /dev/null +++ b/Mage.Sets/src/mage/sets/seventhedition/Rowen.java @@ -0,0 +1,114 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.seventhedition; + +import java.util.UUID; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.EmptyEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author Quercitron + */ +public class Rowen extends CardImpl { + + public Rowen(UUID ownerId) { + super(ownerId, 266, "Rowen", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}{G}"); + this.expansionSetCode = "7ED"; + + this.color.setGreen(true); + + // Reveal the first card you draw each turn. Whenever you reveal a basic land card this way, draw a card. + this.addAbility(new RowenAbility()); + } + + public Rowen(final Rowen card) { + super(card); + } + + @Override + public Rowen copy() { + return new Rowen(this); + } +} + +class RowenAbility extends TriggeredAbilityImpl { + + private int lastTriggeredTurn; + + RowenAbility() { + super(Zone.BATTLEFIELD, new EmptyEffect(""), false); + } + + RowenAbility(final RowenAbility ability) { + super(ability); + } + + @Override + public RowenAbility copy() { + return new RowenAbility(this); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.DREW_CARD && event.getPlayerId().equals(this.getControllerId())) { + if (game.getActivePlayerId().equals(this.getControllerId()) && this.lastTriggeredTurn != game.getTurnNum()) { + Card card = game.getCard(event.getTargetId()); + Player controller = game.getPlayer(this.getControllerId()); + Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(this.getSourceId()); + if (card != null && controller != null && sourcePermanent != null) { + lastTriggeredTurn = game.getTurnNum(); + controller.revealCards(sourcePermanent.getName(), new CardsImpl(card), game); + this.getEffects().clear(); + if (card.getCardType().contains(CardType.LAND) && card.getSupertype().contains("Basic")) { + this.addEffect(new DrawCardSourceControllerEffect(1)); + } + return true; + } + } + } + return false; + } + + @Override + public String getRule() { + return "Reveal the first card you draw each turn. Whenever you reveal a basic land card this way, draw a card."; + } + +} diff --git a/Mage.Sets/src/mage/sets/sixthedition/GrinningTotem.java b/Mage.Sets/src/mage/sets/sixthedition/GrinningTotem.java new file mode 100644 index 0000000000..9995393181 --- /dev/null +++ b/Mage.Sets/src/mage/sets/sixthedition/GrinningTotem.java @@ -0,0 +1,54 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.sixthedition; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author Quercitron + */ +public class GrinningTotem extends mage.sets.timeshifted.GrinningTotem { + + public GrinningTotem(UUID ownerId) { + super(ownerId); + this.cardNumber = 288; + this.expansionSetCode = "6ED"; + this.rarity = Rarity.RARE; + } + + public GrinningTotem(final GrinningTotem card) { + super(card); + } + + @Override + public GrinningTotem copy() { + return new GrinningTotem(this); + } +} diff --git a/Mage.Sets/src/mage/sets/sixthedition/Meekstone.java b/Mage.Sets/src/mage/sets/sixthedition/Meekstone.java new file mode 100644 index 0000000000..c6599905cd --- /dev/null +++ b/Mage.Sets/src/mage/sets/sixthedition/Meekstone.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.sixthedition; + +import java.util.UUID; + +/** + * + * @author Quercitron + */ +public class Meekstone extends mage.sets.limitedalpha.Meekstone { + + public Meekstone(UUID ownerId) { + super(ownerId); + this.cardNumber = 299; + this.expansionSetCode = "6ED"; + } + + public Meekstone(final Meekstone card) { + super(card); + } + + @Override + public Meekstone copy() { + return new Meekstone(this); + } +} diff --git a/Mage.Sets/src/mage/sets/sixthedition/MossDiamond.java b/Mage.Sets/src/mage/sets/sixthedition/MossDiamond.java new file mode 100644 index 0000000000..4304dbf76f --- /dev/null +++ b/Mage.Sets/src/mage/sets/sixthedition/MossDiamond.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.sixthedition; + +import java.util.UUID; + +/** + * + * @author Quercitron + */ +public class MossDiamond extends mage.sets.seventhedition.MossDiamond { + + public MossDiamond(UUID ownerId) { + super(ownerId); + this.cardNumber = 301; + this.expansionSetCode = "6ED"; + } + + public MossDiamond(final MossDiamond card) { + super(card); + } + + @Override + public MossDiamond copy() { + return new MossDiamond(this); + } +} diff --git a/Mage.Sets/src/mage/sets/sixthedition/MysticCompass.java b/Mage.Sets/src/mage/sets/sixthedition/MysticCompass.java new file mode 100644 index 0000000000..6faab7baa6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/sixthedition/MysticCompass.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.sixthedition; + +import java.util.UUID; + +/** + * + * @author Quercitron + */ +public class MysticCompass extends mage.sets.alliances.MysticCompass { + + public MysticCompass(UUID ownerId) { + super(ownerId); + this.cardNumber = 302; + this.expansionSetCode = "6ED"; + } + + public MysticCompass(final MysticCompass card) { + super(card); + } + + @Override + public MysticCompass copy() { + return new MysticCompass(this); + } +} diff --git a/Mage.Sets/src/mage/sets/sixthedition/Rowen.java b/Mage.Sets/src/mage/sets/sixthedition/Rowen.java new file mode 100644 index 0000000000..2c57c25ac8 --- /dev/null +++ b/Mage.Sets/src/mage/sets/sixthedition/Rowen.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.sixthedition; + +import java.util.UUID; + +/** + * + * @author anonymous + */ +public class Rowen extends mage.sets.seventhedition.Rowen { + + public Rowen(UUID ownerId) { + super(ownerId); + this.cardNumber = 250; + this.expansionSetCode = "6ED"; + } + + public Rowen(final Rowen card) { + super(card); + } + + @Override + public Rowen copy() { + return new Rowen(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timeshifted/GrinningTotem.java b/Mage.Sets/src/mage/sets/timeshifted/GrinningTotem.java new file mode 100644 index 0000000000..f50ed7e25e --- /dev/null +++ b/Mage.Sets/src/mage/sets/timeshifted/GrinningTotem.java @@ -0,0 +1,263 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.timeshifted; + +import java.util.UUID; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.DelayedTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.AsThoughEffectImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.constants.AsThoughEffectType; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.PhaseStep; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.ExileZone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.players.Player; +import mage.target.common.TargetCardInLibrary; +import mage.target.common.TargetOpponent; +import mage.util.CardUtil; + +/** + * + * @author Quercitron + */ +public class GrinningTotem extends CardImpl { + + public GrinningTotem(UUID ownerId) { + super(ownerId, 110, "Grinning Totem", Rarity.SPECIAL, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "TSB"; + + // {2}, {tap}, Sacrifice Grinning Totem: Search target opponent's library for a card and exile it. Then that player shuffles his or her library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GrinningTotemSearchAndExileEffect(), new ManaCostsImpl("{2}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetOpponent(true)); + // Until the beginning of your next upkeep, you may play that card. + ability.addEffect(new GrinningTotemMayPlayEffect()); + // At the beginning of your next upkeep, if you haven't played it, put it into its owner's graveyard. + ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new GrinningTotemDelayedTriggeredAbility())); + + this.addAbility(ability); + } + + public GrinningTotem(final GrinningTotem card) { + super(card); + } + + @Override + public GrinningTotem copy() { + return new GrinningTotem(this); + } +} + +class GrinningTotemSearchAndExileEffect extends OneShotEffect { + + public GrinningTotemSearchAndExileEffect() { + super(Outcome.Benefit); + this.staticText = "Search target opponent's library for a card and exile it. Then that player shuffles his or her library."; + } + + public GrinningTotemSearchAndExileEffect(final GrinningTotemSearchAndExileEffect effect) { + super(effect); + } + + @Override + public GrinningTotemSearchAndExileEffect copy() { + return new GrinningTotemSearchAndExileEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player you = game.getPlayer(source.getControllerId()); + Player targetOpponent = game.getPlayer(source.getFirstTarget()); + MageObject sourcObject = game.getObject(source.getSourceId()); + if (you != null && targetOpponent != null) { + if (targetOpponent.getLibrary().size() > 0) { + TargetCardInLibrary targetCard = new TargetCardInLibrary(); + targetCard.setRequired(true); + if (you.searchLibrary(targetCard, game, targetOpponent.getId())) { + Card card = targetOpponent.getLibrary().remove(targetCard.getFirstTarget(), game); + if (card != null) { + you.moveCardToExileWithInfo(card, CardUtil.getCardExileZoneId(game, source), sourcObject != null ? sourcObject.getName() : "", source.getSourceId(), game, Zone.LIBRARY); + } + } + } + targetOpponent.shuffleLibrary(game); + return true; + } + return false; + } + +} + +class GrinningTotemMayPlayEffect extends AsThoughEffectImpl { + + public GrinningTotemMayPlayEffect() { + super(AsThoughEffectType.CAST, Duration.Custom, Outcome.Benefit); + this.staticText = "Until the beginning of your next upkeep, you may play that card."; + } + + public GrinningTotemMayPlayEffect(final GrinningTotemMayPlayEffect effect) { + super(effect); + } + + @Override + public GrinningTotemMayPlayEffect copy() { + return new GrinningTotemMayPlayEffect(this); + } + + @Override + public boolean isInactive(Ability source, Game game) { + if (game.getPhase().getStep().getType() == PhaseStep.UPKEEP) { + if (game.getActivePlayerId().equals(source.getControllerId())) { + return true; + } + } + return false; + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public boolean applies(UUID sourceId, Ability source, Game game) { + // implementation from NightveilSpecterEffect + Card card = game.getCard(sourceId); + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null && card != null && game.getState().getZone(card.getId()) == Zone.EXILED) { + ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source)); + if (zone != null && zone.contains(card.getId())) { + if (card.getCardType().contains(CardType.LAND)) { + // If the revealed card is a land, you can play it only if it's your turn and you haven't yet played a land this turn. + if (game.getActivePlayerId().equals(source.getControllerId()) && controller.canPlayLand()) { + return true; + } + } else { + if (card.getSpellAbility().spellCanBeActivatedRegularlyNow(source.getControllerId(), game)) { + return true; + } + } + } + } + return false; + } + +} + +class GrinningTotemDelayedTriggeredAbility extends DelayedTriggeredAbility { + + public GrinningTotemDelayedTriggeredAbility() { + super(new GrinningTotemPutIntoGraveyardEffect()); + } + + public GrinningTotemDelayedTriggeredAbility(final GrinningTotemDelayedTriggeredAbility ability) { + super(ability); + } + + @Override + public boolean checkInterveningIfClause(Game game) { + ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, this.getSourceId())); + return zone.getCards(game).size() > 0; + } + + @Override + public GrinningTotemDelayedTriggeredAbility copy() { + return new GrinningTotemDelayedTriggeredAbility(this); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.UPKEEP_STEP_PRE && game.getActivePlayerId().equals(this.getControllerId())) { + return true; + } + return false; + } + + @Override + public String getRule() { + return "At the beginning of your next upkeep, if you haven't played it, " + modes.getText(); + } +} + + +class GrinningTotemYouHaveNotPlayedCondition implements Condition { + + @Override + public boolean apply(Game game, Ability source) { + ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source)); + return zone.getCards(game).size() > 0; + } + +} + +class GrinningTotemPutIntoGraveyardEffect extends OneShotEffect { + + public GrinningTotemPutIntoGraveyardEffect() { + super(Outcome.Detriment); + this.staticText = "put it into its owner's graveyard"; + } + + public GrinningTotemPutIntoGraveyardEffect(final GrinningTotemPutIntoGraveyardEffect effect) { + super(effect); + } + + @Override + public GrinningTotemPutIntoGraveyardEffect copy() { + return new GrinningTotemPutIntoGraveyardEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source)); + if (controller != null && zone != null) { + for (Card card : zone.getCards(game)) { + controller.moveCardToGraveyardWithInfo(card, source.getSourceId(), game, Zone.EXILED); + } + return true; + } + return false; + } + +} diff --git a/Mage.Sets/src/mage/sets/unlimitededition/Meekstone.java b/Mage.Sets/src/mage/sets/unlimitededition/Meekstone.java new file mode 100644 index 0000000000..947fb3c77f --- /dev/null +++ b/Mage.Sets/src/mage/sets/unlimitededition/Meekstone.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.unlimitededition; + +import java.util.UUID; + +/** + * + * @author Quercitron + */ +public class Meekstone extends mage.sets.limitedalpha.Meekstone { + + public Meekstone(UUID ownerId) { + super(ownerId); + this.cardNumber = 261; + this.expansionSetCode = "2ED"; + } + + public Meekstone(final Meekstone card) { + super(card); + } + + @Override + public Meekstone copy() { + return new Meekstone(this); + } +} diff --git a/Mage.Sets/src/mage/sets/visions/Rowen.java b/Mage.Sets/src/mage/sets/visions/Rowen.java new file mode 100644 index 0000000000..b0000cb887 --- /dev/null +++ b/Mage.Sets/src/mage/sets/visions/Rowen.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.visions; + +import java.util.UUID; + +/** + * + * @author anonymous + */ +public class Rowen extends mage.sets.seventhedition.Rowen { + + public Rowen(UUID ownerId) { + super(ownerId); + this.cardNumber = 69; + this.expansionSetCode = "VIS"; + } + + public Rowen(final Rowen card) { + super(card); + } + + @Override + public Rowen copy() { + return new Rowen(this); + } +}