diff --git a/Mage.Sets/src/mage/sets/oathofthegatewatch/ComparativeAnalysis.java b/Mage.Sets/src/mage/sets/oathofthegatewatch/ComparativeAnalysis.java new file mode 100644 index 0000000000..4fdb1cccab --- /dev/null +++ b/Mage.Sets/src/mage/sets/oathofthegatewatch/ComparativeAnalysis.java @@ -0,0 +1,64 @@ +/* + * 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.oathofthegatewatch; + +import java.util.UUID; +import mage.abilities.effects.common.DrawCardTargetEffect; +import mage.abilities.keyword.SurgeAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.TargetPlayer; + +/** + * + * @author fireshoes + */ +public class ComparativeAnalysis extends CardImpl { + + public ComparativeAnalysis(UUID ownerId) { + super(ownerId, 51, "Comparative Analysis", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{3}{U}"); + this.expansionSetCode = "OGW"; + + // Target player draws two cards. + this.getSpellAbility().addEffect(new DrawCardTargetEffect(2)); + this.getSpellAbility().addTarget(new TargetPlayer()); + + // Has to be placed last here, because added spellAbility objects (e.g. effects) have to be copied from this + // Surge {2}{U} <You may cast this spell for its surge cost if you or a teammate has cast another spell this turn.)</i> + addAbility(new SurgeAbility(this, "{2}{U}")); } + + public ComparativeAnalysis(final ComparativeAnalysis card) { + super(card); + } + + @Override + public ComparativeAnalysis copy() { + return new ComparativeAnalysis(this); + } +} diff --git a/Mage.Sets/src/mage/sets/oathofthegatewatch/DeepfathomSkulker.java b/Mage.Sets/src/mage/sets/oathofthegatewatch/DeepfathomSkulker.java new file mode 100644 index 0000000000..910f719276 --- /dev/null +++ b/Mage.Sets/src/mage/sets/oathofthegatewatch/DeepfathomSkulker.java @@ -0,0 +1,120 @@ +/* + * 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.oathofthegatewatch; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; +import mage.abilities.keyword.DevoidAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.DamagedPlayerEvent; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class DeepfathomSkulker extends CardImpl { + + public DeepfathomSkulker(UUID ownerId) { + super(ownerId, 43, "Deepfathom Skulker", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{5}{U}"); + this.expansionSetCode = "OGW"; + this.subtype.add("Eldrazi"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Devoid </i>(This card has no color.)</i> + this.addAbility(new DevoidAbility(this.color)); + + // Whenever a creature you control deals combat damage to a player, you may draw a card. + this.addAbility(new DeepfathomSkulkerTriggeredAbility()); + + // {3}{C}: Target creature can't be blocked this turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(), new ManaCostsImpl("{3}{C}")); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public DeepfathomSkulker(final DeepfathomSkulker card) { + super(card); + } + + @Override + public DeepfathomSkulker copy() { + return new DeepfathomSkulker(this); + } +} + +class DeepfathomSkulkerTriggeredAbility extends TriggeredAbilityImpl { + + public DeepfathomSkulkerTriggeredAbility() { + super(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), true); + } + + public DeepfathomSkulkerTriggeredAbility(final DeepfathomSkulkerTriggeredAbility ability) { + super(ability); + } + + @Override + public DeepfathomSkulkerTriggeredAbility copy() { + return new DeepfathomSkulkerTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.DAMAGED_PLAYER; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (((DamagedPlayerEvent) event).isCombatDamage()) { + Permanent creature = game.getPermanent(event.getSourceId()); + if (creature != null && creature.getControllerId().equals(controllerId)) { + return true; + } + } + return false; + } + + @Override + public String getRule() { + return " Whenever a creature you control deals combat damage to a player, you may draw a card."; + } +} diff --git a/Mage.Sets/src/mage/sets/oathofthegatewatch/DreadDefiler.java b/Mage.Sets/src/mage/sets/oathofthegatewatch/DreadDefiler.java new file mode 100644 index 0000000000..8a9a10510e --- /dev/null +++ b/Mage.Sets/src/mage/sets/oathofthegatewatch/DreadDefiler.java @@ -0,0 +1,121 @@ +/* + * 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.oathofthegatewatch; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.Cost; +import mage.abilities.costs.common.ExileFromGraveCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.keyword.DevoidAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterCreatureCard; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetCardInYourGraveyard; +import mage.target.common.TargetOpponent; + +/** + * + * @author fireshoes + */ +public class DreadDefiler extends CardImpl { + + public DreadDefiler(UUID ownerId) { + super(ownerId, 68, "Dread Defiler", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{6}{B}"); + this.expansionSetCode = "OGW"; + this.subtype.add("Eldrazi"); + this.power = new MageInt(6); + this.toughness = new MageInt(8); + + // Devoid + this.addAbility(new DevoidAbility(this.color)); + + // {3}{C}, Exile a creature card from your graveyard: Target opponent loses life equal to the exiled card's power. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DreadDefilerEffect(), new ManaCostsImpl("{3}{C}")); + ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")))); + ability.addTarget(new TargetOpponent()); + this.addAbility(ability); + } + + public DreadDefiler(final DreadDefiler card) { + super(card); + } + + @Override + public DreadDefiler copy() { + return new DreadDefiler(this); + } +} + +class DreadDefilerEffect extends OneShotEffect { + + public DreadDefilerEffect() { + super(Outcome.DrawCard); + this.staticText = "Target opponent loses life equal to the exiled card's power"; + } + + public DreadDefilerEffect(final DreadDefilerEffect effect) { + super(effect); + } + + @Override + public DreadDefilerEffect copy() { + return new DreadDefilerEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + int amount = 0; + for (Cost cost : source.getCosts()) { + if (cost instanceof ExileFromGraveCost) { + Card card = game.getCard(cost.getTargets().getFirstTarget()); + if (card != null) { + amount = card.getPower().getValue(); + } + break; + } + } + if (amount > 0) { + Player targetOpponent = game.getPlayer(source.getFirstTarget()); + if (targetOpponent != null) { + targetOpponent.loseLife(amount, game); + return true; + } + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/oathofthegatewatch/JoriEnRuinDiver.java b/Mage.Sets/src/mage/sets/oathofthegatewatch/JoriEnRuinDiver.java new file mode 100644 index 0000000000..5d36252e75 --- /dev/null +++ b/Mage.Sets/src/mage/sets/oathofthegatewatch/JoriEnRuinDiver.java @@ -0,0 +1,148 @@ +/* + * 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.oathofthegatewatch; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.WatcherScope; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.stack.Spell; +import mage.watchers.Watcher; + +/** + * + * @author fireshoes + */ +public class JoriEnRuinDiver extends CardImpl { + + public JoriEnRuinDiver(UUID ownerId) { + super(ownerId, 155, "Jori En, Ruin Diver", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{1}{U}{R}"); + this.expansionSetCode = "OGW"; + this.supertype.add("Legendary"); + this.subtype.add("Merfolk"); + this.subtype.add("Wizard"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Whenever you cast your second spell each turn, draw a card. + this.addAbility(new JoriEnTriggeredAbility(), new JoriEnWatcher()); + } + + public JoriEnRuinDiver(final JoriEnRuinDiver card) { + super(card); + } + + @Override + public JoriEnRuinDiver copy() { + return new JoriEnRuinDiver(this); + } +} + +class JoriEnTriggeredAbility extends TriggeredAbilityImpl { + + public JoriEnTriggeredAbility() { + super(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1)); + } + + public JoriEnTriggeredAbility(final JoriEnTriggeredAbility ability) { + super(ability); + } + + @Override + public JoriEnTriggeredAbility copy() { + return new JoriEnTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.SPELL_CAST; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getPlayerId().equals(controllerId)) { + Watcher watcher = game.getState().getWatchers().get("SecondSpellCast", controllerId); + if (watcher != null && watcher.conditionMet()) { + return true; + } + } + return false; + } + + @Override + public String getRule() { + return "Whenever you cast your second spell each turn, draw a card."; + } +} + +class JoriEnWatcher extends Watcher { + + int spellCount = 0; + + public JoriEnWatcher() { + super("SecondSpellCast", WatcherScope.PLAYER); + } + + public JoriEnWatcher(final JoriEnWatcher watcher) { + super(watcher); + this.spellCount = watcher.spellCount; + } + + @Override + public JoriEnWatcher copy() { + return new JoriEnWatcher(this); + } + + @Override + public void watch(GameEvent event, Game game) { + condition = false; + if (event.getType() == GameEvent.EventType.SPELL_CAST && event.getPlayerId().equals(controllerId)) { + Spell spell = game.getStack().getSpell(event.getTargetId()); + if (spell != null) { + spellCount++; + if (spellCount == 2) { + condition = true; + } + } + } + } + + @Override + public void reset() { + super.reset(); + spellCount = 0; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/oathofthegatewatch/MundasVanguard.java b/Mage.Sets/src/mage/sets/oathofthegatewatch/MundasVanguard.java new file mode 100644 index 0000000000..a6d7e934a9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/oathofthegatewatch/MundasVanguard.java @@ -0,0 +1,87 @@ +/* + * 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.oathofthegatewatch; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.common.TapTargetCost; +import mage.abilities.effects.common.counter.AddCountersAllEffect; +import mage.cards.CardImpl; +import mage.constants.AbilityWord; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class MundasVanguard extends CardImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("untapped Ally you control"); + + static { + filter.add(new SubtypePredicate("Ally")); + filter.add(Predicates.not(new TappedPredicate())); + } + + public MundasVanguard(UUID ownerId) { + super(ownerId, 29, "Munda's Vanguard", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{W}"); + this.expansionSetCode = "OGW"; + this.subtype.add("Kor"); + this.subtype.add("Knight"); + this.subtype.add("Ally"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // <i>Cohort</i> — {T}, Tap an untapped Ally you control: Put a +1/+1 counter on each creature you control. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersAllEffect(CounterType.P1P1.createInstance(), new FilterControlledCreaturePermanent()), + new TapSourceCost()); + ability.addCost(new TapTargetCost(new TargetControlledCreaturePermanent(filter))); + ability.setAbilityWord(AbilityWord.COHORT); + this.addAbility(ability); + } + + public MundasVanguard(final MundasVanguard card) { + super(card); + } + + @Override + public MundasVanguard copy() { + return new MundasVanguard(this); + } +} diff --git a/Mage.Sets/src/mage/sets/oathofthegatewatch/RecklessBushwhacker.java b/Mage.Sets/src/mage/sets/oathofthegatewatch/RecklessBushwhacker.java new file mode 100644 index 0000000000..9b3490448e --- /dev/null +++ b/Mage.Sets/src/mage/sets/oathofthegatewatch/RecklessBushwhacker.java @@ -0,0 +1,82 @@ +/* + * 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.oathofthegatewatch; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.common.SurgedCondition; +import mage.abilities.decorator.ConditionalTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.SurgeAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.filter.common.FilterControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class RecklessBushwhacker extends CardImpl { + + public RecklessBushwhacker(UUID ownerId) { + super(ownerId, 116, "Reckless Bushwhacker", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "OGW"; + this.subtype.add("Goblin"); + this.subtype.add("Warrior"); + this.subtype.add("Ally"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Haste + this.addAbility(HasteAbility.getInstance()); + + // When Reckless Bushwhacker enters the battlefield, if its surge cost was paid, other creatures you control get +1/+0 and gain haste until end of turn. + EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new BoostControlledEffect(1, 0, Duration.EndOfTurn, true), false); + ability.addEffect(new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent(), true)); + this.addAbility(new ConditionalTriggeredAbility(ability, SurgedCondition.getInstance(), + "When {this} enters the battlefield, if its surge cost was paid, other creatures you control get +1/+0 and gain haste until end of turn.")); + + // Has to be placed last here, because added spellAbility objects (e.g. effects) have to be copied from this + // Surge {1}{R} (You may cast this spell for its surge cost if you or a teammate has cast another spell this turn) + addAbility(new SurgeAbility(this, "{1}{R}")); + } + + public RecklessBushwhacker(final RecklessBushwhacker card) { + super(card); + } + + @Override + public RecklessBushwhacker copy() { + return new RecklessBushwhacker(this); + } +} diff --git a/Mage.Sets/src/mage/sets/oathofthegatewatch/ScionSummoner.java b/Mage.Sets/src/mage/sets/oathofthegatewatch/ScionSummoner.java new file mode 100644 index 0000000000..348db98b25 --- /dev/null +++ b/Mage.Sets/src/mage/sets/oathofthegatewatch/ScionSummoner.java @@ -0,0 +1,73 @@ +/* + * 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.oathofthegatewatch; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.DevoidAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.EldraziScionToken; + +/** + * + * @author fireshoes + */ +public class ScionSummoner extends CardImpl { + + public ScionSummoner(UUID ownerId) { + super(ownerId, 123, "Scion Summoner", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{G}"); + this.expansionSetCode = "OGW"; + this.subtype.add("Eldrazi"); + this.subtype.add("Drone"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Devoid + this.addAbility(new DevoidAbility(this.color)); + + // When Scion Summoner enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. + // It has "Sacrifice this creature: Add {C} to your mana pool." + Effect effect = new CreateTokenEffect(new EldraziScionToken()); + effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {C} to your mana pool.\""); + this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); + } + + public ScionSummoner(final ScionSummoner card) { + super(card); + } + + @Override + public ScionSummoner copy() { + return new ScionSummoner(this); + } +} diff --git a/Mage.Sets/src/mage/sets/oathofthegatewatch/SpatialContortion.java b/Mage.Sets/src/mage/sets/oathofthegatewatch/SpatialContortion.java new file mode 100644 index 0000000000..457b39a5a8 --- /dev/null +++ b/Mage.Sets/src/mage/sets/oathofthegatewatch/SpatialContortion.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.oathofthegatewatch; + +import java.util.UUID; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class SpatialContortion extends CardImpl { + + public SpatialContortion(UUID ownerId) { + super(ownerId, 8, "Spatial Contortion", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{C}"); + this.expansionSetCode = "OGW"; + + // Target creature gets +3/-3 until end of turn. + this.getSpellAbility().addEffect(new BoostTargetEffect(3, -3, Duration.EndOfTurn)); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + } + + public SpatialContortion(final SpatialContortion card) { + super(card); + } + + @Override + public SpatialContortion copy() { + return new SpatialContortion(this); + } +} diff --git a/Mage.Sets/src/mage/sets/oathofthegatewatch/TyrantOfValakut.java b/Mage.Sets/src/mage/sets/oathofthegatewatch/TyrantOfValakut.java new file mode 100644 index 0000000000..a52129b852 --- /dev/null +++ b/Mage.Sets/src/mage/sets/oathofthegatewatch/TyrantOfValakut.java @@ -0,0 +1,78 @@ +/* + * 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.oathofthegatewatch; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.common.SurgedCondition; +import mage.abilities.decorator.ConditionalTriggeredAbility; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.SurgeAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author fireshoes + */ +public class TyrantOfValakut extends CardImpl { + + public TyrantOfValakut(UUID ownerId) { + super(ownerId, 119, "Tyrant of Valakut", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{5}{R}{R}"); + this.expansionSetCode = "OGW"; + this.subtype.add("Dragon"); + this.power = new MageInt(5); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // When Tyrant of Valakut enters the battlefield, if its surge cost was paid, it deals 3 damage to target creature or player. + EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3), false); + ability.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(new ConditionalTriggeredAbility(ability, SurgedCondition.getInstance(), + "When {this} enters the battlefield, if its surge cost was paid, it deals 3 damage to target creature or player.")); + + // Has to be placed last here, because added spellAbility objects (e.g. effects) have to be copied from this + // Surge {3}{R}{R} (You may cast this spell for its surge cost if you or a teammate has cast another spell this turn) + addAbility(new SurgeAbility(this, "{3}{R}{R}")); + } + + public TyrantOfValakut(final TyrantOfValakut card) { + super(card); + } + + @Override + public TyrantOfValakut copy() { + return new TyrantOfValakut(this); + } +} diff --git a/Mage.Sets/src/mage/sets/oathofthegatewatch/WalkerOfTheWastes.java b/Mage.Sets/src/mage/sets/oathofthegatewatch/WalkerOfTheWastes.java new file mode 100644 index 0000000000..8e4a05bef2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/oathofthegatewatch/WalkerOfTheWastes.java @@ -0,0 +1,82 @@ +/* + * 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.oathofthegatewatch; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.TrampleAbility; +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.common.FilterLandPermanent; +import mage.filter.predicate.mageobject.NamePredicate; +import mage.filter.predicate.permanent.ControllerPredicate; + +/** + * + * @author fireshoes + */ +public class WalkerOfTheWastes extends CardImpl { + + private static final FilterLandPermanent filter = new FilterLandPermanent("each land you control named Wastes"); + + static { + filter.add(new NamePredicate("Wastes")); + filter.add(new ControllerPredicate(TargetController.YOU)); + } + + public WalkerOfTheWastes(UUID ownerId) { + super(ownerId, 10, "Walker of the Wastes", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{C}"); + this.expansionSetCode = "OGW"; + this.subtype.add("Eldrazi"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + + // Walker of the Wastes gets +1/+1 for each land you control named Wastes. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect( + new PermanentsOnBattlefieldCount(filter), new PermanentsOnBattlefieldCount(filter), Duration.WhileOnBattlefield))); + } + + public WalkerOfTheWastes(final WalkerOfTheWastes card) { + super(card); + } + + @Override + public WalkerOfTheWastes copy() { + return new WalkerOfTheWastes(this); + } +} diff --git a/Mage/src/main/java/mage/constants/AbilityWord.java b/Mage/src/main/java/mage/constants/AbilityWord.java index f9c3352453..f2843a9f08 100644 --- a/Mage/src/main/java/mage/constants/AbilityWord.java +++ b/Mage/src/main/java/mage/constants/AbilityWord.java @@ -1,79 +1,80 @@ -/* - * 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.constants; - -/** - * - * @author LevelX2 - */ -public enum AbilityWord { - - BATTALION("Battalion"), - BLOODRUSH("Bloodrush"), - CHANNEL("Channel"), - CHROMA("Chroma"), - CONSTELLATION("Constellation"), - CONVERGE("Converge"), - DOMAIN("Domain"), - FATEFUL_HOUR("Fateful hour"), - FEROCIOUS("Ferocious"), - FORMIDABLE("Formidable"), - GRANDEUR("Grandeur"), - HELLBENT("Hellbent"), - HEROIC("Heroic"), - IMPRINT("Imprint"), - INSPIRED("Inspired"), - JOIN_FORCES("Join forces"), - KINSHIP("Kinship"), - LANDFALL("Landfall"), - LIEUTENANT("Lieutenant"), - METALCRAFT("Metalcraft"), - MORBID("Morbid"), - PARLEY("Parley"), - RADIANCE("Radiance"), - RAID("Raid"), - RALLY("Rally"), - SPELL_MASTERY("Spell mastery"), - STRIVE("Strive"), - SWEEP("Sweep"), - TEMPTING_OFFER("Tempting offer"), - THRESHOLD("Threshold"), - WILL_OF_THE_COUNCIL("Will of the council"); - - private final String text; - - AbilityWord(String text) { - this.text = text; - } - - @Override - public String toString() { - return text; - } - -} +/* + * 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.constants; + +/** + * + * @author LevelX2 + */ +public enum AbilityWord { + + BATTALION("Battalion"), + BLOODRUSH("Bloodrush"), + CHANNEL("Channel"), + CHROMA("Chroma"), + COHORT("Cohort"), + CONSTELLATION("Constellation"), + CONVERGE("Converge"), + DOMAIN("Domain"), + FATEFUL_HOUR("Fateful hour"), + FEROCIOUS("Ferocious"), + FORMIDABLE("Formidable"), + GRANDEUR("Grandeur"), + HELLBENT("Hellbent"), + HEROIC("Heroic"), + IMPRINT("Imprint"), + INSPIRED("Inspired"), + JOIN_FORCES("Join forces"), + KINSHIP("Kinship"), + LANDFALL("Landfall"), + LIEUTENANT("Lieutenant"), + METALCRAFT("Metalcraft"), + MORBID("Morbid"), + PARLEY("Parley"), + RADIANCE("Radiance"), + RAID("Raid"), + RALLY("Rally"), + SPELL_MASTERY("Spell mastery"), + STRIVE("Strive"), + SWEEP("Sweep"), + TEMPTING_OFFER("Tempting offer"), + THRESHOLD("Threshold"), + WILL_OF_THE_COUNCIL("Will of the council"); + + private final String text; + + AbilityWord(String text) { + this.text = text; + } + + @Override + public String toString() { + return text; + } + +} diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index c29299d849..3d9dbb9329 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -28243,15 +28243,27 @@ Tectonic Edge|Zendikar Expeditions|44|M||Land|||{tap}: Add {C} to your mana pool Wasteland|Zendikar Expeditions|45|M||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Wasteland: Destroy target nonbasic land.| Endbringer|Oath of the Gatewatch|3|R|{5}{C}|Creature - Eldrazi|5|5|Untap Endbringer during each other player's untap step.${T}: Endbringer deals 1 damage to target creature or player.${C}, {T}: Target creature can't attack or block this turn.${C}{C}, {T}: Draw a card.| Kozilek, the Great Distortion|Oath of the Gatewatch|4|M|{8}{C}{C}|Legendary Creature - Eldrazi|12|12|When you cast Kozilek, the Great Distortion, if you have fewer than seven cards in hand, draw cards equal to the difference.$Menace$Discard a card with converted mana cost X: Counter target spell with converted mana cost X.| +Spatial Contortion|Oath of the Gatewatch|8|U|{1}{C}|Instant|||Target creature gets +3/-3 until end of turn.| +Walker of the Wastes|Oath of the Gatewatch|10|U|{4}{C}|Creature - Eldrazi|4|4|Trample$Walker of the Wastes gets +1/+1 for each land you control named Wastes.| +Munda's Vanguard|Oath of the Gatewatch|29|R|{4}{W}|Creature - Kor Knight Ally|3|3|<i>Cohort</i> — {T}, Tap an untapped Ally you control: Put a +1/+1 counter on each creature you control.| +Shoulder to Shoulder|Oath of the Gatewatch|34|C|{2}{W}|Sorcery|||Support 2. <i>(Put a +1/+1 counter on each of up to two target creatured.)</i>$Draw a card.| +Deepfathom Skulker|Oath of the Gatewatch|43|R|{5}{U}|Creature - Eldrazi|4|4|Devoid <i>(This card has no color.)</i>$Whenever a creature you control deals combat damage to a player, you may draw a card.${3}{C}: Target creature can't be blocked this turn.| +Stone Haven Outfitter|Oath of the Gatewatch|37|R|{1}{W}|Creature - Kor Artificer Ally|2|2|Equipped creatures you control get +1/+1.$Whenever an equipped creature you control dies, draw a card.| +Comparative Analysis|Oath of the Gatewatch|51|C|{3}{U}|Instant|||Surge {2}{U} <You may cast this spell for its surge cost if you or a teammate has cast another spell this turn.)</i>$Target player draws two cards.| Crush of Tentacles|Oath of the Gatewatch|53|M|{4}{U}{U}|Sorcery|||Surge {3}{U}{U} <i>(You may cast this spell for its surge cost if you or a teammate has cast another spell this turn.)</i>$Return all nonland permanents to their owners' hands. If Crush of Tentacles surge cost was paid, put an 8/8 blue Octopus creature token onto the battlefield.| Sphinx of the Final Word|Oath of the Gatewatch|63|M|{5}{U}{U}|Creature - Sphinx|5|5|Sphinx of the Final Word can't be countered.$Flying, hexproof$Instant and sorcery spells you control can't be countered by spells or abilities.| +Dread Defiler|Oath of the Gatewatch|68|R|{6}{B}|Creature - Eldrazi|6|8|Devoid <i>(This card has no color.)</i>${3}{C}, Exile a creature card from your graveyard: Target opponent loses life equal to the exiled card's power.| Kalitas, Traitor of Ghet|Oath of the Gatewatch|86|M|{2}{B}{B}|Legendary Creature - Vampire Warrior|3|4|Lifelink$If a nontoken creature an opponent controls would die, instead exile that card and put a 2/2 black Zombie creature token onto the battlefield.${2}{B}, Sacrifice another Vampire or Zombie: Put two +1/+1 counters on Kalitas, Traitor of Ghet.| Kozilek's Return|Oath of the Gatewatch|98|M|{2}{R}|Instant|||Devoid <i>(This card has no color.)</i>$Kozilek's Return deals 2 damage to each creature.$Whenever you cast an Eldrazi creature spell with converted mana cost 7 or greater, you may exile Kozilek's Return from your graveyard. If you do, Kozilek's Return deals 5 damage to each creature.| Chandra, Flamecaller|Oath of the Gatewatch|104|M|{4}{R}{R}|Planeswalker - Chandra|||+1: Put two 3/1 red Elemental creature tokens with haste onto the battlefield. Exile them at the beginning of the next end step.$0: Discard all the cards in your hand, then draw that many cards plus one.$-X: Chandra, Flamecaller deals X damage to each creature.| Goblin Dark-Dwellers|Oath of the Gatewatch|110|R|{3}{R}{R}|Creature - Goblin|4|4|Menace$When Goblin Dark-Dwellers enters the battlefield, you may cast target instant or sorcery card with converted mana cost 3 or less from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead.| +Reckless Bushwhacker|Oath of the Gatewatch|116|U|{2}{R}|Creature - Goblin Warrior Ally|2|1|Surge {1}{R} <i>(You may cast this spell for its surge cost if you or a teammate has cast another spell this turn.)</i>$Haste$When Reckless Bushwhacker enters the battlefield, if its surge cost was paid, other creatures you control get +1/+0 and gain haste until end of turn.| +Tyrant of Valakut|Oath of the Gatewatch|119|R|{5}{R}{R}|Creature - Dragon|5|4|Surge {3}{R}{R} <i>(You may cast this spell for its surge cost if you or a teammate has cast another spell this turn.)</i>$Flying$When Tyrant of Valakut enters the battlefield, if its surge cost was paid, it deals 3 damage to target creature or player.| +Scion Summoner|Oath of the Gatewatch|123|C|{2}{G}|Creature - Eldrazi Drone|2|2|Devoid <i>(This card has no color.)</i>$When Scion Summoner enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| World Breaker|Oath of the Gatewatch|126|M|{6}{G}|Creature - Eldrazi|5|7|Devoid <i>(This card has no color.)</i>$When you cast World Breaker, exile target artifact, enchantment, or land.$Reach${2}{C}, Sacrifice a land: Return World Breaker from your graveyard to your hand. <i>({C} represents colorless mana.)</i>| Nissa, Voice of Zendikar|Oath of the Gatewatch|138|M|{1}{G}{G}|Planeswalker - Nissa|||+1: Put a 0/1 green Plant creature token onto the battlefield.$-2: Put a +1/+1 counter on each creature you control.$-7: You gain X life and draw X cards, where X is the number of lands you control.| Ayli, Eternal Pilgrim|Oath of the Gatewatch|151|R|{W}{B}|Legendary Creature - Kor Cleric|2|3|Deathtouch${1}, Sacrifice another creature: You gain life equal to the sacrificed creature's toughness.${1}{W}{B}, Sacrifice another creature: Exile target nonland permanent. Activate this ability only if you have at least 10 life more than your starting life total.| +Jori En, Ruin Diver|Oath of the Gatewatch|155|R|{1}{U}{R}|Legendary Creature - Merfolk Wizard|2|3|Whenever you cast your second spell each turn, draw a card.| Mina and Denn, Wildborn|Oath of the Gatewatch|156|R|{2}{R}{G}|Legendary Creature - Elf Ally|4|4|You may play an additional land on each of your turns.${R}{G}, Return a land you control to its owner's hand: Target creature gains trample until end of turn.| Ashen Moor|Oath of the Gatewatch|168|U||Land|||Ashen Moor enters the battlefield tapped.${T}: Add {B} or {R} to your mana pool.| Blighted Crossroads|Oath of the Gatewatch|169|R||Land|||{T}: Add {C} to your mana pool. <i>({C} represents colorless mana.)</i>${T}, Pay 1 life: Add one mana of any color to your mana pool. Spend this mana only to cast spells with devoid.|