diff --git a/Mage.Sets/src/mage/sets/avacynrestored/AbundantGrowth.java b/Mage.Sets/src/mage/sets/avacynrestored/AbundantGrowth.java
index c5a18998f1..92af4cd0f7 100644
--- a/Mage.Sets/src/mage/sets/avacynrestored/AbundantGrowth.java
+++ b/Mage.Sets/src/mage/sets/avacynrestored/AbundantGrowth.java
@@ -58,7 +58,7 @@ public class AbundantGrowth extends CardImpl {
// Enchant land
TargetPermanent auraTarget = new TargetLandPermanent();
this.getSpellAbility().addTarget(auraTarget);
- this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment));
+ this.getSpellAbility().addEffect(new AttachEffect(Outcome.Benefit));
Ability ability = new EnchantAbility(auraTarget.getTargetName());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/sets/bornofthegods/PillarOfWar.java b/Mage.Sets/src/mage/sets/bornofthegods/PillarOfWar.java
index 56c09aec43..7cad13237f 100644
--- a/Mage.Sets/src/mage/sets/bornofthegods/PillarOfWar.java
+++ b/Mage.Sets/src/mage/sets/bornofthegods/PillarOfWar.java
@@ -34,7 +34,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.EnchantedCondition;
import mage.abilities.decorator.ConditionalAsThoughEffect;
import mage.abilities.effects.Effect;
-import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderEffect;
+import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderSourceEffect;
import mage.abilities.keyword.DefenderAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
@@ -60,7 +60,7 @@ public class PillarOfWar extends CardImpl {
this.addAbility(DefenderAbility.getInstance());
// As long as Pillar of War is enchanted, it can attack as though it didn't have defender.
Effect effect = new ConditionalAsThoughEffect(
- new CanAttackAsThoughtItDidntHaveDefenderEffect(Duration.WhileOnBattlefield),
+ new CanAttackAsThoughtItDidntHaveDefenderSourceEffect(Duration.WhileOnBattlefield),
new EnchantedCondition());
effect.setText("As long as {this} is enchanted, it can attack as though it didn't have defender");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
diff --git a/Mage.Sets/src/mage/sets/dragonsmaze/ScabClanGiant.java b/Mage.Sets/src/mage/sets/dragonsmaze/ScabClanGiant.java
index 51ee138fd7..6338e83699 100644
--- a/Mage.Sets/src/mage/sets/dragonsmaze/ScabClanGiant.java
+++ b/Mage.Sets/src/mage/sets/dragonsmaze/ScabClanGiant.java
@@ -108,9 +108,7 @@ class ScabClanGiantEffect extends OneShotEffect {
// 20110930 - 701.10
if (creature1 != null && creature2 != null) {
if (creature1.getCardType().contains(CardType.CREATURE) && creature2.getCardType().contains(CardType.CREATURE)) {
- creature1.damage(creature2.getPower().getValue(), creature2.getId(), game, false, true);
- creature2.damage(creature1.getPower().getValue(), creature1.getId(), game, false, true);
- return true;
+ return creature1.fight(creature2, source, game);
}
}
return false;
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/AinokArtillerist.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/AinokArtillerist.java
new file mode 100644
index 0000000000..3440aa88f7
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/AinokArtillerist.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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.SimpleStaticAbility;
+import mage.abilities.condition.common.SourceHasCounterCondition;
+import mage.abilities.decorator.ConditionalContinuousEffect;
+import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.keyword.ReachAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+import mage.counters.CounterType;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class AinokArtillerist extends CardImpl {
+
+ public AinokArtillerist(UUID ownerId) {
+ super(ownerId, 171, "Ainok Artillerist", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Hound");
+ this.subtype.add("Arch");
+ this.power = new MageInt(4);
+ this.toughness = new MageInt(1);
+
+ // Ainok Artillerist has reach as long as it has a +1/+1 counter on it.
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
+ new ConditionalContinuousEffect(new GainAbilitySourceEffect(ReachAbility.getInstance()),
+ new SourceHasCounterCondition(CounterType.P1P1),"{this} has reach as long as it has a +1/+1 counter on it")));
+ }
+
+ public AinokArtillerist(final AinokArtillerist card) {
+ super(card);
+ }
+
+ @Override
+ public AinokArtillerist copy() {
+ return new AinokArtillerist(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/AssaultFormation.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/AssaultFormation.java
new file mode 100644
index 0000000000..5e30ae6d56
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/AssaultFormation.java
@@ -0,0 +1,127 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.common.SimpleStaticAbility;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.ContinuousEffectImpl;
+import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderTargetEffect;
+import mage.abilities.effects.common.continuous.BoostControlledEffect;
+import mage.abilities.keyword.DefenderAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Layer;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.constants.SubLayer;
+import mage.constants.Zone;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.mageobject.AbilityPredicate;
+import mage.filter.predicate.permanent.ControllerIdPredicate;
+import mage.game.Game;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class AssaultFormation extends CardImpl {
+
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with defender");
+
+ static {
+ filter.add(new AbilityPredicate(DefenderAbility.class));
+ }
+
+ public AssaultFormation(UUID ownerId) {
+ super(ownerId, 173, "Assault Formation", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}");
+ this.expansionSetCode = "DTK";
+
+ // Each creature you control assigns combat damage equal to its toughness rather than its power.
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AssaultFormationCombatDamageRuleEffect()));
+
+ // {G}: Target creature with defender can attack this turn as though it didn't have defender.
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CanAttackAsThoughtItDidntHaveDefenderTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{G}"));
+ ability.addTarget(new TargetCreaturePermanent(filter));
+ this.addAbility(ability);
+
+ // {2}{G}: Creatures you control get +0/+1 until end of turn.
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0,1,Duration.EndOfTurn), new ManaCostsImpl("{2}{G}")));
+
+ }
+
+ public AssaultFormation(final AssaultFormation card) {
+ super(card);
+ }
+
+ @Override
+ public AssaultFormation copy() {
+ return new AssaultFormation(this);
+ }
+}
+
+class AssaultFormationCombatDamageRuleEffect extends ContinuousEffectImpl {
+
+ public AssaultFormationCombatDamageRuleEffect() {
+ super(Duration.WhileOnBattlefield, Outcome.Detriment);
+ staticText = "Each creature assigns combat damage equal to its toughness rather than its power";
+ }
+
+ public AssaultFormationCombatDamageRuleEffect(final AssaultFormationCombatDamageRuleEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public AssaultFormationCombatDamageRuleEffect copy() {
+ return new AssaultFormationCombatDamageRuleEffect(this);
+ }
+
+ @Override
+ public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) {
+ // Change the rule
+ FilterCreaturePermanent filter = new FilterCreaturePermanent();
+ filter.add(new ControllerIdPredicate(source.getControllerId()));
+ game.getCombat().setUseToughnessForDamage(true);
+ game.getCombat().addUseToughnessForDamageFilter(filter);
+ return true;
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ return false;
+ }
+
+ @Override
+ public boolean hasLayer(Layer layer) {
+ return layer == Layer.RulesEffects;
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/AtarkaBeastbreaker.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/AtarkaBeastbreaker.java
new file mode 100644
index 0000000000..d0fda78ed9
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/AtarkaBeastbreaker.java
@@ -0,0 +1,76 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.ActivateIfConditionActivatedAbility;
+import mage.abilities.condition.common.FormidableCondition;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.continuous.BoostSourceEffect;
+import mage.cards.CardImpl;
+import mage.constants.AbilityWord;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class AtarkaBeastbreaker extends CardImpl {
+
+ public AtarkaBeastbreaker(UUID ownerId) {
+ super(ownerId, 174, "Atarka Beastbreaker", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Human");
+ this.subtype.add("Warrior");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(2);
+
+ // Formidable - {4}{G}: Atarka Beastbreaker gets +4/+4 until end of turn. Activate this only if creatures you control have total power 8 or greater.
+ Ability ability = new ActivateIfConditionActivatedAbility(
+ Zone.BATTLEFIELD,
+ new BoostSourceEffect(4,4, Duration.EndOfTurn),
+ new ManaCostsImpl("{4}{G}"),
+ FormidableCondition.getInstance());
+ ability.setAbilityWord(AbilityWord.FORMIDABLE);
+ this.addAbility(ability);
+ }
+
+ public AtarkaBeastbreaker(final AtarkaBeastbreaker card) {
+ super(card);
+ }
+
+ @Override
+ public AtarkaBeastbreaker copy() {
+ return new AtarkaBeastbreaker(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/AvatarOfTheResolute.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/AvatarOfTheResolute.java
index d1de1ad6ad..ac00d35b5d 100644
--- a/Mage.Sets/src/mage/sets/dragonsoftarkir/AvatarOfTheResolute.java
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/AvatarOfTheResolute.java
@@ -71,7 +71,8 @@ public class AvatarOfTheResolute extends CardImpl {
// Avatar of the Resolute enters the battlefield with a +1/+1 counter on it for each other creature you control with a +1/+1 counter on it.
DynamicValue numberCounters = new PermanentsOnBattlefieldCount(filter);
- this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(), numberCounters, true)));
+ this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(), numberCounters, true),
+ "with a +1/+1 counter on it for each other creature you control with a +1/+1 counter on it"));
}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java
new file mode 100644
index 0000000000..d91d3f2a86
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java
@@ -0,0 +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.sets.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.Mana;
+import mage.abilities.Ability;
+import mage.abilities.condition.common.FormidableCondition;
+import mage.abilities.costs.common.TapSourceCost;
+import mage.abilities.effects.common.BasicManaEffect;
+import mage.abilities.keyword.VigilanceAbility;
+import mage.abilities.mana.ActivateIfConditionManaAbility;
+import mage.cards.CardImpl;
+import mage.constants.AbilityWord;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class CircleOfElders extends CardImpl {
+
+ public CircleOfElders(UUID ownerId) {
+ super(ownerId, 176, "Circle of Elders", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{G}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Human");
+ this.subtype.add("Shaman");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(4);
+
+ // Vigilance
+ this.addAbility(VigilanceAbility.getInstance());
+
+ // Formidable - {T}: Add {3} to your mana pool. Activate this only if creatures you control have total power 8 or greater.
+ Ability ability = new ActivateIfConditionManaAbility(
+ Zone.BATTLEFIELD,
+ new BasicManaEffect(new Mana(0,0,0,0,0,3,0)),
+ new TapSourceCost(),
+ FormidableCondition.getInstance());
+ ability.setAbilityWord(AbilityWord.FORMIDABLE);
+ this.addAbility(ability);
+ }
+
+ public CircleOfElders(final CircleOfElders card) {
+ super(card);
+ }
+
+ @Override
+ public CircleOfElders copy() {
+ return new CircleOfElders(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/CollectedCompany.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/CollectedCompany.java
index a2dcc66fb0..565b64438e 100644
--- a/Mage.Sets/src/mage/sets/dragonsoftarkir/CollectedCompany.java
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/CollectedCompany.java
@@ -32,6 +32,7 @@ import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
+import mage.constants.Zone;
import mage.filter.Filter.ComparisonType;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.CardTypePredicate;
@@ -55,7 +56,7 @@ public class CollectedCompany extends CardImpl {
this.expansionSetCode = "DTK";
// Look at the top six cards of your library. Put up to two creature cards with converted mana cost 3 or less from among them onto the battlefield. Put the rest on the bottom of your library in any order.
- this.getSpellAbility().addEffect(new LookLibraryAndPickControllerEffect(6, 2, filter, true));
+ this.getSpellAbility().addEffect(new LookLibraryAndPickControllerEffect(6, 2, filter, false, true, Zone.BATTLEFIELD, false));
}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/CraterElemental.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/CraterElemental.java
index b24004f326..642794ddda 100644
--- a/Mage.Sets/src/mage/sets/dragonsoftarkir/CraterElemental.java
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/CraterElemental.java
@@ -37,7 +37,6 @@ import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.dynamicvalue.common.StaticValue;
-import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.continuous.SetPowerSourceEffect;
import mage.cards.CardImpl;
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/DeathmistRaptor.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/DeathmistRaptor.java
new file mode 100644
index 0000000000..b3aec80aac
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/DeathmistRaptor.java
@@ -0,0 +1,109 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.TurnedFaceUpAllTriggeredAbility;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.OneShotEffect;
+import mage.abilities.keyword.DeathtouchAbility;
+import mage.abilities.keyword.MorphAbility;
+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.FilterControlledPermanent;
+import mage.game.Game;
+import mage.players.Player;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class DeathmistRaptor extends CardImpl {
+
+ public DeathmistRaptor(UUID ownerId) {
+ super(ownerId, 180, "Deathmist Raptor", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{1}{G}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Lizard");
+ this.subtype.add("Beast");
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(3);
+
+ // Deathtouch
+ this.addAbility(DeathtouchAbility.getInstance());
+
+ // Whenever a permanent you control is turned face up, you may return Deathmist Raptor from your graveyard to the battlefield face up or face down.
+ this.addAbility(new TurnedFaceUpAllTriggeredAbility(Zone.GRAVEYARD, new DeathmistRaptorEffect(), new FilterControlledPermanent(), false, true));
+
+ // Megamorph {4}{G}
+ this.addAbility(new MorphAbility(this, new ManaCostsImpl("{4}{G}"), true));
+ }
+
+ public DeathmistRaptor(final DeathmistRaptor card) {
+ super(card);
+ }
+
+ @Override
+ public DeathmistRaptor copy() {
+ return new DeathmistRaptor(this);
+ }
+}
+
+class DeathmistRaptorEffect extends OneShotEffect {
+
+ public DeathmistRaptorEffect() {
+ super(Outcome.Benefit);
+ this.staticText = "you may return {this} from your graveyard to the battlefield face up or face down";
+ }
+
+ public DeathmistRaptorEffect(final DeathmistRaptorEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public DeathmistRaptorEffect copy() {
+ return new DeathmistRaptorEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ Player controller = game.getPlayer(source.getControllerId());
+ Card card = game.getCard(source.getSourceId());
+ if (controller != null && card != null) {
+ controller.putOntoBattlefieldWithInfo(card, game, Zone.GRAVEYARD, source.getSourceId(), false,
+ controller.chooseUse(Outcome.Detriment, "Return " + card.getName() + " face down to battlefield?", game));
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/DisplayOfDominance.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/DisplayOfDominance.java
new file mode 100644
index 0000000000..04b2d05bc3
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/DisplayOfDominance.java
@@ -0,0 +1,133 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageObject;
+import mage.ObjectColor;
+import mage.abilities.Ability;
+import mage.abilities.Mode;
+import mage.abilities.effects.ContinuousRuleModifyingEffectImpl;
+import mage.abilities.effects.common.DestroyTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.filter.FilterPermanent;
+import mage.filter.predicate.Predicates;
+import mage.filter.predicate.mageobject.CardTypePredicate;
+import mage.filter.predicate.mageobject.ColorPredicate;
+import mage.game.Game;
+import mage.game.events.GameEvent;
+import mage.game.events.GameEvent.EventType;
+import mage.game.permanent.Permanent;
+import mage.game.stack.Spell;
+import mage.target.TargetPermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class DisplayOfDominance extends CardImpl {
+
+ private static final FilterPermanent filter = new FilterPermanent("blue or black noncreature permanent");
+
+ static {
+ filter.add(Predicates.or(
+ new ColorPredicate(ObjectColor.BLUE),
+ new ColorPredicate(ObjectColor.BLACK)));
+ filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE)));
+ }
+
+ public DisplayOfDominance(UUID ownerId) {
+ super(ownerId, 182, "Display of Dominance", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{G}");
+ this.expansionSetCode = "DTK";
+
+ // Choose one -
+ this.getSpellAbility().getModes().setMinModes(1);
+ this.getSpellAbility().getModes().setMaxModes(1);
+
+ // Destroy target blue or black noncreature permanent
+ this.getSpellAbility().addEffect(new DestroyTargetEffect());
+ this.getSpellAbility().addTarget(new TargetPermanent(filter));
+
+ // or Permanents you control can't be the targets of blue or black spells your opponents control this turn
+ Mode mode = new Mode();
+ mode.getEffects().add(new DisplayOfDominanceEffect());
+ this.getSpellAbility().getModes().addMode(mode);
+ }
+
+ public DisplayOfDominance(final DisplayOfDominance card) {
+ super(card);
+ }
+
+ @Override
+ public DisplayOfDominance copy() {
+ return new DisplayOfDominance(this);
+ }
+}
+
+class DisplayOfDominanceEffect extends ContinuousRuleModifyingEffectImpl {
+
+ public DisplayOfDominanceEffect() {
+ super(Duration.EndOfTurn, Outcome.Benefit);
+ staticText = "permanents you control can't be the targets of blue or black spells your opponents control this turn";
+ }
+
+ public DisplayOfDominanceEffect(final DisplayOfDominanceEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public DisplayOfDominanceEffect copy() {
+ return new DisplayOfDominanceEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ return true;
+ }
+
+ @Override
+ public boolean checksEventType(GameEvent event, Game game) {
+ return event.getType() == EventType.TARGET;
+ }
+
+ @Override
+ public boolean applies(GameEvent event, Ability ability, Game game) {
+ MageObject mageObject = game.getObject(event.getSourceId());
+ if (game.getPlayer(ability.getControllerId()).hasOpponent(event.getPlayerId(), game) &&
+ mageObject instanceof Spell &&
+ (mageObject.getColor().isBlack() || mageObject.getColor().isBlue())) {
+ Permanent permanent = game.getPermanent(event.getTargetId());
+ return permanent != null && permanent.getControllerId().equals(ability.getControllerId());
+ }
+ return false;
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/DragonScarredBear.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/DragonScarredBear.java
new file mode 100644
index 0000000000..283c45181b
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/DragonScarredBear.java
@@ -0,0 +1,77 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.ActivateIfConditionActivatedAbility;
+import mage.abilities.condition.common.FormidableCondition;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.RegenerateSourceEffect;
+import mage.abilities.effects.common.continuous.BoostSourceEffect;
+import mage.cards.CardImpl;
+import mage.constants.AbilityWord;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class DragonScarredBear extends CardImpl {
+
+ public DragonScarredBear(UUID ownerId) {
+ super(ownerId, 183, "Dragon-Scarred Bear", Rarity.COMMON, new CardType[]{}, "{2}{G}");
+ this.expansionSetCode = "DTK";
+ this.supertype.add("Creaure");
+ this.supertype.add("Bear");
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(2);
+
+ // Formidable - {1}{G}: Regenerate Dragon-Scarred Bear. Activate this only if creatures you control have total power 8 or greater.
+ Ability ability = new ActivateIfConditionActivatedAbility(
+ Zone.BATTLEFIELD,
+ new RegenerateSourceEffect(),
+ new ManaCostsImpl("{1}{G}"),
+ FormidableCondition.getInstance());
+ ability.setAbilityWord(AbilityWord.FORMIDABLE);
+ this.addAbility(ability);
+ }
+
+ public DragonScarredBear(final DragonScarredBear card) {
+ super(card);
+ }
+
+ @Override
+ public DragonScarredBear copy() {
+ return new DragonScarredBear(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/DromokasGift.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/DromokasGift.java
new file mode 100644
index 0000000000..100ee420e4
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/DromokasGift.java
@@ -0,0 +1,58 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.abilities.effects.keyword.BolsterEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class DromokasGift extends CardImpl {
+
+ public DromokasGift(UUID ownerId) {
+ super(ownerId, 184, "Dromoka's Gift", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{4}{G}");
+ this.expansionSetCode = "DTK";
+
+ // Bolster 4.
+ this.getSpellAbility().addEffect(new BolsterEffect(4));
+ }
+
+ public DromokasGift(final DromokasGift card) {
+ super(card);
+ }
+
+ @Override
+ public DromokasGift copy() {
+ return new DromokasGift(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/FoeRazerRegent.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/FoeRazerRegent.java
new file mode 100644
index 0000000000..93568ecf4f
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/FoeRazerRegent.java
@@ -0,0 +1,165 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.DelayedTriggeredAbility;
+import mage.abilities.TriggeredAbilityImpl;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.OneShotEffect;
+import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
+import mage.abilities.effects.common.FightTargetSourceEffect;
+import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.abilities.keyword.FlyingAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.constants.TargetController;
+import mage.constants.Zone;
+import mage.counters.CounterType;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.permanent.ControllerPredicate;
+import mage.game.Game;
+import mage.game.events.GameEvent;
+import mage.game.events.GameEvent.EventType;
+import mage.game.permanent.Permanent;
+import mage.target.common.TargetCreaturePermanent;
+import mage.target.targetpointer.FixedTarget;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class FoeRazerRegent extends CardImpl {
+
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you don't control");
+
+ static {
+ filter.add(new ControllerPredicate(TargetController.NOT_YOU));
+ }
+
+ public FoeRazerRegent(UUID ownerId) {
+ super(ownerId, 187, "Foe-Razer Regent", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{5}{G}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Dragon");
+ this.power = new MageInt(4);
+ this.toughness = new MageInt(5);
+
+ // Flying
+ this.addAbility(FlyingAbility.getInstance());
+
+ // When Foe-Razer Regent enters the battlefield, you may have it fight target creature you don't control.
+ Ability ability = new EntersBattlefieldTriggeredAbility(new FightTargetSourceEffect(), true);
+ ability.addTarget(new TargetCreaturePermanent(filter));
+ this.addAbility(ability);
+
+ // Whenever a creature you control fights, put two +1/+1 counters on it at the beginning of the next end step.
+ this.addAbility(new FoeRazerRegentTriggeredAbility());
+ }
+
+ public FoeRazerRegent(final FoeRazerRegent card) {
+ super(card);
+ }
+
+ @Override
+ public FoeRazerRegent copy() {
+ return new FoeRazerRegent(this);
+ }
+}
+
+class FoeRazerRegentTriggeredAbility extends TriggeredAbilityImpl {
+
+ public FoeRazerRegentTriggeredAbility() {
+ super(Zone.BATTLEFIELD, new CreateDelayedTriggeredAbilityEffect(new FoeRazerRegentDelayedTriggeredAbility(), true), false);
+ }
+
+ public FoeRazerRegentTriggeredAbility(final FoeRazerRegentTriggeredAbility ability) {
+ super(ability);
+ }
+
+ @Override
+ public FoeRazerRegentTriggeredAbility copy() {
+ return new FoeRazerRegentTriggeredAbility(this);
+ }
+
+ @Override
+ public boolean checkEventType(GameEvent event, Game game) {
+ return event.getType().equals(EventType.FIGHTED_PERMANENT);
+ }
+
+ @Override
+ public boolean checkTrigger(GameEvent event, Game game) {
+ Permanent permanent = game.getPermanentOrLKIBattlefield(event.getSourceId());
+ if (permanent != null && permanent.getControllerId().equals(getControllerId())) {
+ for (Effect effect: this.getEffects()) {
+ effect.setTargetPointer(new FixedTarget(event.getSourceId()));
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public String getRule() {
+ return "Whenever a creature you control fights, put two +1/+1 counters on it at the beginning of the next end step.";
+ }
+}
+
+class FoeRazerRegentDelayedTriggeredAbility extends DelayedTriggeredAbility {
+
+ public FoeRazerRegentDelayedTriggeredAbility() {
+ super(new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)));
+ }
+
+ public FoeRazerRegentDelayedTriggeredAbility(final FoeRazerRegentDelayedTriggeredAbility ability) {
+ super(ability);
+ }
+
+ @Override
+ public FoeRazerRegentDelayedTriggeredAbility copy() {
+ return new FoeRazerRegentDelayedTriggeredAbility(this);
+ }
+
+ @Override
+ public boolean checkTrigger(GameEvent event, Game game) {
+ if (event.getType() == EventType.END_TURN_STEP_PRE) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public String getRule() {
+ return "put two +1/+1 counters on it at the beginning of the next end step";
+ }
+
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/GladeWatcher.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/GladeWatcher.java
new file mode 100644
index 0000000000..964d318d10
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/GladeWatcher.java
@@ -0,0 +1,79 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.ActivateIfConditionActivatedAbility;
+import mage.abilities.condition.common.FormidableCondition;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderSourceEffect;
+import mage.abilities.effects.common.continuous.BoostSourceEffect;
+import mage.abilities.keyword.DefenderAbility;
+import mage.cards.CardImpl;
+import mage.constants.AbilityWord;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class GladeWatcher extends CardImpl {
+
+ public GladeWatcher(UUID ownerId) {
+ super(ownerId, 188, "Glade Watcher", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Elemental");
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(3);
+
+ // Defender
+ this.addAbility(DefenderAbility.getInstance());
+ // Formidable - {G}: Glade Watcher can attack this turn as though it didn't have defender. Activate this ability only if creatures you control have total power 8 or greater.
+ Ability ability = new ActivateIfConditionActivatedAbility(
+ Zone.BATTLEFIELD,
+ new CanAttackAsThoughtItDidntHaveDefenderSourceEffect(Duration.EndOfTurn),
+ new ManaCostsImpl("{G}"),
+ FormidableCondition.getInstance());
+ ability.setAbilityWord(AbilityWord.FORMIDABLE);
+ this.addAbility(ability);
+ }
+
+ public GladeWatcher(final GladeWatcher card) {
+ super(card);
+ }
+
+ @Override
+ public GladeWatcher copy() {
+ return new GladeWatcher(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/GuardianShieldBearer.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/GuardianShieldBearer.java
new file mode 100644
index 0000000000..41856949b0
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/GuardianShieldBearer.java
@@ -0,0 +1,83 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.abilities.keyword.MorphAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.counters.CounterType;
+import mage.filter.common.FilterControlledCreaturePermanent;
+import mage.filter.predicate.permanent.AnotherPredicate;
+import mage.target.common.TargetControlledCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class GuardianShieldBearer extends CardImpl {
+
+ private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another target creature you control");
+
+ static {
+ filter.add(new AnotherPredicate());
+ }
+
+ public GuardianShieldBearer(UUID ownerId) {
+ super(ownerId, 189, "Guardian Shield-Bearer", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Human");
+ this.subtype.add("Soldier");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(1);
+
+ // Megamorph {3}{G}
+ this.addAbility(new MorphAbility(this, new ManaCostsImpl("{3}{G}"), true));
+
+ // When Guardian Shield-Bearer is turned face up, put a +1/+1 counter on another target creature you control.
+ Ability ability = new TurnedFaceUpSourceTriggeredAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), false);
+ ability.addTarget(new TargetControlledCreaturePermanent(filter));
+ this.addAbility(ability);
+
+ }
+
+ public GuardianShieldBearer(final GuardianShieldBearer card) {
+ super(card);
+ }
+
+ @Override
+ public GuardianShieldBearer copy() {
+ return new GuardianShieldBearer(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/InspiringCall.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/InspiringCall.java
new file mode 100644
index 0000000000..57b4dfc73f
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/InspiringCall.java
@@ -0,0 +1,75 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.DrawCardSourceControllerEffect;
+import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
+import mage.abilities.keyword.IndestructibleAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.counters.CounterType;
+import mage.filter.common.FilterControlledCreaturePermanent;
+import mage.filter.predicate.permanent.CounterPredicate;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class InspiringCall extends CardImpl {
+
+ private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature you control with a +1/+1 counter on it");
+
+ static {
+ filter.add(new CounterPredicate(CounterType.P1P1));
+ }
+
+ public InspiringCall(UUID ownerId) {
+ super(ownerId, 191, "Inspiring Call", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{2}{G}");
+ this.expansionSetCode = "DTK";
+
+ // Draw a card for each creature you control with a +1/+1 counter on it. Those creatures gain indestructible until end of turn. (Damage and effects that say "destroy" don't destroy them.)
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filter)));
+ Effect effect = new GainAbilityControlledEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, filter);
+ effect.setText("Those creatures gain indestructible until end of turn. (Damage and effects that say \"destroy\" don't destroy them.)");
+ this.getSpellAbility().addEffect(effect);
+ }
+
+ public InspiringCall(final InspiringCall card) {
+ super(card);
+ }
+
+ @Override
+ public InspiringCall copy() {
+ return new InspiringCall(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/LurkingArynx.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/LurkingArynx.java
new file mode 100644
index 0000000000..02ec94552f
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/LurkingArynx.java
@@ -0,0 +1,76 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.ActivateIfConditionActivatedAbility;
+import mage.abilities.condition.common.FormidableCondition;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.combat.MustBeBlockedByTargetSourceEffect;
+import mage.cards.CardImpl;
+import mage.constants.AbilityWord;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class LurkingArynx extends CardImpl {
+
+ public LurkingArynx(UUID ownerId) {
+ super(ownerId, 192, "Lurking Arynx", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Cat");
+ this.subtype.add("Beast");
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(5);
+
+ // Formidable - {2}{G}: Target creature blocks Lurking Arynx this turn if able. Activate this ability only if creatures you control have total power 8 or greater.
+ Ability ability = new ActivateIfConditionActivatedAbility(
+ Zone.BATTLEFIELD,
+ new MustBeBlockedByTargetSourceEffect(Duration.EndOfTurn),
+ new ManaCostsImpl("{2}{G}"),
+ FormidableCondition.getInstance());
+ ability.setAbilityWord(AbilityWord.FORMIDABLE);
+ this.addAbility(ability);
+ }
+
+ public LurkingArynx(final LurkingArynx card) {
+ super(card);
+ }
+
+ @Override
+ public LurkingArynx copy() {
+ return new LurkingArynx(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/ObscuringAEther.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/ObscuringAEther.java
new file mode 100644
index 0000000000..d4f858d69a
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/ObscuringAEther.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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.common.SimpleStaticAbility;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.continuous.BecomesFaceDownCreatureEffect;
+import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+import mage.filter.common.FilterCreatureCard;
+import mage.filter.predicate.other.FaceDownPredicate;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class ObscuringAEther extends CardImpl {
+
+ private static final FilterCreatureCard filter = new FilterCreatureCard("Face-down creature spells");
+
+ static {
+ filter.add(new FaceDownPredicate());
+ }
+
+ public ObscuringAEther(UUID ownerId) {
+ super(ownerId, 194, "Obscuring AEther", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{G}");
+ this.expansionSetCode = "DTK";
+
+ // Face-down creature spells you cast cost {1} less to cast.
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1)));
+
+ // {1}{G}: Turn Obscuring AEther face down.
+ Effect effect = new BecomesFaceDownCreatureEffect(null, BecomesFaceDownCreatureEffect.FaceDownType.MANIFESTED);
+ effect.setText("Turn Obscuring AEther face down. (It becomes a 2/2 creature.)");
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{G}")));
+
+ }
+
+ public ObscuringAEther(final ObscuringAEther card) {
+ super(card);
+ }
+
+ @Override
+ public ObscuringAEther copy() {
+ return new ObscuringAEther(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/PinionFeast.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/PinionFeast.java
new file mode 100644
index 0000000000..04f841d011
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/PinionFeast.java
@@ -0,0 +1,72 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.abilities.effects.common.DestroyTargetEffect;
+import mage.abilities.effects.keyword.BolsterEffect;
+import mage.abilities.keyword.FlyingAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.mageobject.AbilityPredicate;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class PinionFeast extends CardImpl {
+
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with flying");
+
+ static {
+ filter.add(new AbilityPredicate(FlyingAbility.class));
+ }
+
+ public PinionFeast(UUID ownerId) {
+ super(ownerId, 195, "Pinion Feast", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{4}{G}");
+ this.expansionSetCode = "DTK";
+
+ // Destroy target creature with flying. Bolster 2.
+ this.getSpellAbility().addEffect(new DestroyTargetEffect());
+ this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
+ this.getSpellAbility().addEffect(new BolsterEffect(2));
+
+ }
+
+ public PinionFeast(final PinionFeast card) {
+ super(card);
+ }
+
+ @Override
+ public PinionFeast copy() {
+ return new PinionFeast(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/PressTheAdvantage.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/PressTheAdvantage.java
new file mode 100644
index 0000000000..91f557286e
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/PressTheAdvantage.java
@@ -0,0 +1,68 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.continuous.BoostTargetEffect;
+import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
+import mage.abilities.keyword.TrampleAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class PressTheAdvantage extends CardImpl {
+
+ public PressTheAdvantage(UUID ownerId) {
+ super(ownerId, 196, "Press the Advantage", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{2}{G}{G}");
+ this.expansionSetCode = "DTK";
+
+ // Up to two target creatures each get +2/+2 and gain trample until end of turn.
+ Effect effect = new BoostTargetEffect(2,2, Duration.EndOfTurn);
+ effect.setText("Up to two target creatures each get +2/+2");
+ this.getSpellAbility().addEffect(effect);
+ effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, "and gain trample until end of turn");
+ this.getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addTarget(new TargetCreaturePermanent(0,2));
+ }
+
+ public PressTheAdvantage(final PressTheAdvantage card) {
+ super(card);
+ }
+
+ @Override
+ public PressTheAdvantage copy() {
+ return new PressTheAdvantage(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/RevealingWind.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/RevealingWind.java
new file mode 100644
index 0000000000..ee1ac205cb
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/RevealingWind.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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageObject;
+import mage.abilities.Ability;
+import mage.abilities.effects.OneShotEffect;
+import mage.abilities.effects.common.PreventAllDamageByAllEffect;
+import mage.cards.Card;
+import mage.cards.CardImpl;
+import mage.cards.Cards;
+import mage.cards.CardsImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.filter.common.FilterAttackingOrBlockingCreature;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.other.FaceDownPredicate;
+import mage.game.Game;
+import mage.players.Player;
+import mage.target.Target;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class RevealingWind extends CardImpl {
+
+ public RevealingWind(UUID ownerId) {
+ super(ownerId, 197, "Revealing Wind", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{G}");
+ this.expansionSetCode = "DTK";
+
+ // Prevent all combat damage that would be dealt this turn. You may look at each face-down creature that's attacking or blocking.
+ this.getSpellAbility().addEffect(new PreventAllDamageByAllEffect(Duration.EndOfTurn, true));
+ this.getSpellAbility().addEffect(new RevealingWindEffect());
+ }
+
+ public RevealingWind(final RevealingWind card) {
+ super(card);
+ }
+
+ @Override
+ public RevealingWind copy() {
+ return new RevealingWind(this);
+ }
+}
+
+class RevealingWindEffect extends OneShotEffect {
+
+ private static final FilterCreaturePermanent filter = new FilterAttackingOrBlockingCreature("face-down creature that's attacking or blocking");
+
+ static {
+ filter.add(new FaceDownPredicate());
+ }
+
+ public RevealingWindEffect() {
+ super(Outcome.Benefit);
+ this.staticText = "You may look at each face-down creature that's attacking or blocking";
+ }
+
+ public RevealingWindEffect(final RevealingWindEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public RevealingWindEffect copy() {
+ return new RevealingWindEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ Player controller = game.getPlayer(source.getControllerId());
+ MageObject sourceObject = source.getSourceObject(game);
+ if (controller != null && sourceObject != null) {
+ while (game.getBattlefield().count(filter, source.getOriginalId(), source.getControllerId(), game) > 0 &&
+ controller.chooseUse(outcome, "Look at a face-down attacking creature?", game)) {
+ if (!controller.isInGame()) {
+ return false;
+ }
+ Target target = new TargetCreaturePermanent(filter);
+ if (controller.chooseTarget(outcome, target, source, game)) {
+ Card card = game.getCard(target.getFirstTarget());
+ if (card != null) {
+ Cards cards = new CardsImpl();
+ controller.lookAtCards(sourceObject.getName(), cards, game);
+ game.informPlayers(controller.getName() + " look at a face-down attacking creature");
+ }
+ }
+ }
+ }
+ return true;
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/SaltRoadQuartermasters.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/SaltRoadQuartermasters.java
new file mode 100644
index 0000000000..744d14889b
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/SaltRoadQuartermasters.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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.EntersBattlefieldAbility;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.common.RemoveCountersSourceCost;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+import mage.counters.CounterType;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SaltRoadQuartermasters extends CardImpl {
+
+ public SaltRoadQuartermasters(UUID ownerId) {
+ super(ownerId, 199, "Salt Road Quartermasters", Rarity.UNCOMMON, new CardType[]{}, "{2}{G}");
+ this.expansionSetCode = "DTK";
+ this.supertype.add("Creautre");
+ this.supertype.add("Human");
+ this.supertype.add("Soldier");
+ this.power = new MageInt(1);
+ this.toughness = new MageInt(1);
+
+ // Salt Road QUartermasters enters the battlefield with two +1/+1 counters on it.
+ this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
+ "with two +1/+1 counters on it"));
+
+ // {2}{G}, Remove a +1/+1 counter from Salt Road Quartermasters: Put a +1/+1 counter on target creature.
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance(1)), new ManaCostsImpl("{2}{G}"));
+ ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
+ ability.addTarget(new TargetCreaturePermanent());
+ this.addAbility(ability);
+
+
+ }
+
+ public SaltRoadQuartermasters(final SaltRoadQuartermasters card) {
+ super(card);
+ }
+
+ @Override
+ public SaltRoadQuartermasters copy() {
+ return new SaltRoadQuartermasters(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/SandsteppeScavenger.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/SandsteppeScavenger.java
new file mode 100644
index 0000000000..820a7af85f
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/SandsteppeScavenger.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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.keyword.BolsterEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SandsteppeScavenger extends CardImpl {
+
+ public SandsteppeScavenger(UUID ownerId) {
+ super(ownerId, 200, "Sandsteppe Scavenger", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{4}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Hound");
+ this.subtype.add("Scount");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(2);
+
+ // When Sandsteppe Scavenger enters the battlefield, bolster 2.
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new BolsterEffect(2), false));
+ }
+
+ public SandsteppeScavenger(final SandsteppeScavenger card) {
+ super(card);
+ }
+
+ @Override
+ public SandsteppeScavenger copy() {
+ return new SandsteppeScavenger(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/ScaleguardSentinels.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/ScaleguardSentinels.java
new file mode 100644
index 0000000000..dfd10080cb
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/ScaleguardSentinels.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.dragonsoftarkir;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class ScaleguardSentinels extends mage.sets.gameday.ScaleguardSentinels {
+
+ public ScaleguardSentinels(UUID ownerId) {
+ super(ownerId);
+ this.cardNumber = 201;
+ this.expansionSetCode = "DTK";
+ }
+
+ public ScaleguardSentinels(final ScaleguardSentinels card) {
+ super(card);
+ }
+
+ @Override
+ public ScaleguardSentinels copy() {
+ return new ScaleguardSentinels(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/SegmentedKrotiq.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/SegmentedKrotiq.java
new file mode 100644
index 0000000000..c2b6ec94bb
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/SegmentedKrotiq.java
@@ -0,0 +1,63 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.keyword.MorphAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SegmentedKrotiq extends CardImpl {
+
+ public SegmentedKrotiq(UUID ownerId) {
+ super(ownerId, 202, "Segmented Krotiq", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{5}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Insect");
+ this.power = new MageInt(6);
+ this.toughness = new MageInt(5);
+
+ // Megamorph {6}{G}
+ this.addAbility(new MorphAbility(this, new ManaCostsImpl("{6}{G}"), true));
+ }
+
+ public SegmentedKrotiq(final SegmentedKrotiq card) {
+ super(card);
+ }
+
+ @Override
+ public SegmentedKrotiq copy() {
+ return new SegmentedKrotiq(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/ServantOfTheScale.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/ServantOfTheScale.java
new file mode 100644
index 0000000000..426e84d95c
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/ServantOfTheScale.java
@@ -0,0 +1,115 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.MageObject;
+import mage.abilities.Ability;
+import mage.abilities.common.DiesTriggeredAbility;
+import mage.abilities.common.EntersBattlefieldAbility;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.OneShotEffect;
+import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.counters.CounterType;
+import mage.game.Game;
+import mage.game.permanent.Permanent;
+import mage.players.Player;
+import mage.target.common.TargetControlledCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class ServantOfTheScale extends CardImpl {
+
+ public ServantOfTheScale(UUID ownerId) {
+ super(ownerId, 203, "Servant of the Scale", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Human");
+ this.subtype.add("Soldier");
+ this.power = new MageInt(0);
+ this.toughness = new MageInt(0);
+
+ // Servant of the Scale enters the battlefield with a +1/+1 counter on it.
+ this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
+ "with a +1/+1 counters on it"));
+
+ // When Servant of the Scale dies, put X +1/+1 counters on target creature you control, where X is the number of +1/+1 counter on Servant of the Scale.
+ Ability ability = new DiesTriggeredAbility(new ServantOfTheScaleEffect(), false);
+ ability.addTarget(new TargetControlledCreaturePermanent());
+ this.addAbility(ability);
+ }
+
+ public ServantOfTheScale(final ServantOfTheScale card) {
+ super(card);
+ }
+
+ @Override
+ public ServantOfTheScale copy() {
+ return new ServantOfTheScale(this);
+ }
+}
+
+class ServantOfTheScaleEffect extends OneShotEffect {
+
+ public ServantOfTheScaleEffect() {
+ super(Outcome.BoostCreature);
+ this.staticText = "put X +1/+1 counters on target creature you control, where X is the number of +1/+1 counter on {this}";
+ }
+
+ public ServantOfTheScaleEffect(final ServantOfTheScaleEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public ServantOfTheScaleEffect copy() {
+ return new ServantOfTheScaleEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ Player controller = game.getPlayer(source.getControllerId());
+ MageObject sourceObject = source.getSourceObject(game);
+ if (sourceObject != null && controller != null && sourceObject instanceof Permanent) {
+ int amount = ((Permanent)sourceObject).getCounters().getCount(CounterType.P1P1);
+ if (amount > 0) {
+ Effect effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance(amount));
+ effect.setTargetPointer(targetPointer);
+ effect.apply(game, source);
+ }
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/ShapeTheSands.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/ShapeTheSands.java
new file mode 100644
index 0000000000..9dc24f5643
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/ShapeTheSands.java
@@ -0,0 +1,70 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.continuous.BoostTargetEffect;
+import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
+import mage.abilities.keyword.ReachAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class ShapeTheSands extends CardImpl {
+
+ public ShapeTheSands(UUID ownerId) {
+ super(ownerId, 205, "Shape the Sands", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{G}");
+ this.expansionSetCode = "DTK";
+
+ // Target creature gets +0/+5 and gains reach until end of turn.
+ Effect effect = new BoostTargetEffect(0, 5, Duration.EndOfTurn);
+ effect.setText("Target creature gets +0/+5");
+ this.getSpellAbility().addEffect(effect);
+ effect = new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn);
+ effect.setText("and gains reach until end of turn");
+ this.getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addTarget(new TargetCreaturePermanent());
+
+ }
+
+ public ShapeTheSands(final ShapeTheSands card) {
+ super(card);
+ }
+
+ @Override
+ public ShapeTheSands copy() {
+ return new ShapeTheSands(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/ShelteredAerie.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/ShelteredAerie.java
new file mode 100644
index 0000000000..a87b81eca4
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/ShelteredAerie.java
@@ -0,0 +1,81 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.common.SimpleStaticAbility;
+import mage.abilities.costs.common.TapSourceCost;
+import mage.abilities.effects.common.AddManaOfAnyColorEffect;
+import mage.abilities.effects.common.AttachEffect;
+import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
+import mage.abilities.keyword.EnchantAbility;
+import mage.abilities.mana.AnyColorManaAbility;
+import mage.abilities.mana.SimpleManaAbility;
+import mage.cards.CardImpl;
+import mage.constants.AttachmentType;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+import mage.target.TargetPermanent;
+import mage.target.common.TargetLandPermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class ShelteredAerie extends CardImpl {
+
+ public ShelteredAerie(UUID ownerId) {
+ super(ownerId, 206, "Sheltered Aerie", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}");
+ this.expansionSetCode = "DTK";
+ this.subtype.add("Aura");
+
+ // Enchant land
+ TargetPermanent auraTarget = new TargetLandPermanent();
+ this.getSpellAbility().addTarget(auraTarget);
+ this.getSpellAbility().addEffect(new AttachEffect(Outcome.Benefit));
+ Ability ability = new EnchantAbility(auraTarget.getTargetName());
+ this.addAbility(ability);
+
+ // Enchanted land has "{T}: Add two mana of any one color to your mana pool."
+ Ability gainedAbility = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(2), new TapSourceCost());
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA)));
+
+ }
+
+ public ShelteredAerie(final ShelteredAerie card) {
+ super(card);
+ }
+
+ @Override
+ public ShelteredAerie copy() {
+ return new ShelteredAerie(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/SightOfTheScalelords.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/SightOfTheScalelords.java
new file mode 100644
index 0000000000..92a8c17d9c
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/SightOfTheScalelords.java
@@ -0,0 +1,83 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.common.BeginningOfCombatTriggeredAbility;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.continuous.BoostControlledEffect;
+import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
+import mage.abilities.keyword.VigilanceAbility;
+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;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.mageobject.ToughnessPredicate;
+import mage.filter.predicate.permanent.ControllerPredicate;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SightOfTheScalelords extends CardImpl {
+
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures you control with toughness 4 or greater");
+
+ static {
+ filter.add(new ControllerPredicate(TargetController.YOU));
+ filter.add(new ToughnessPredicate(Filter.ComparisonType.GreaterThan, 3));
+ }
+
+ public SightOfTheScalelords(UUID ownerId) {
+ super(ownerId, 207, "Sight of the Scalelords", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{4}{G}");
+ this.expansionSetCode = "DTK";
+
+ // At the beginning of combat on your turn, creature you control with toughness 4 or greater get +2/+2 and gain vigilance until end of turn.
+ Effect effect = new BoostControlledEffect(2,2,Duration.EndOfTurn, filter, false);
+ effect.setText("creature you control with toughness 4 or greater get +2/+2");
+ Ability ability = new BeginningOfCombatTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false, false);
+ effect = new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn, filter);
+ effect.setText("and gain vigilance until end of turn");
+ ability.addEffect(effect);
+ this.addAbility(ability);
+ }
+
+ public SightOfTheScalelords(final SightOfTheScalelords card) {
+ super(card);
+ }
+
+ @Override
+ public SightOfTheScalelords copy() {
+ return new SightOfTheScalelords(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/TreadUpon.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/TreadUpon.java
new file mode 100644
index 0000000000..7fbee0befa
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/TreadUpon.java
@@ -0,0 +1,69 @@
+/*
+ * 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.dragonsoftarkir;
+
+import java.util.UUID;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.continuous.BoostTargetEffect;
+import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
+import mage.abilities.keyword.TrampleAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class TreadUpon extends CardImpl {
+
+ public TreadUpon(UUID ownerId) {
+ super(ownerId, 211, "Tread Upon", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{G}");
+ this.expansionSetCode = "DTK";
+
+ // Target creature gets +2/+2 and gains trample until end of turn.
+ Effect effect = new BoostTargetEffect(2, 2, Duration.EndOfTurn);
+ effect.setText("Target creature gets +2/+2");
+ this.getSpellAbility().addEffect(effect);
+ effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn);
+ effect.setText("and gains trample until end of turn");
+ this.getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addTarget(new TargetCreaturePermanent());
+ }
+
+ public TreadUpon(final TreadUpon card) {
+ super(card);
+ }
+
+ @Override
+ public TreadUpon copy() {
+ return new TreadUpon(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java b/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java
index 67dcf95d30..dfae1c21ce 100644
--- a/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java
+++ b/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java
@@ -29,17 +29,14 @@
package mage.sets.eventide;
import java.util.UUID;
-import mage.constants.CardType;
-import mage.constants.Rarity;
import mage.Mana;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.effects.common.BasicManaEffect;
-import mage.abilities.mana.BasicManaAbility;
import mage.abilities.mana.ColorlessManaAbility;
-import mage.abilities.mana.ManaAbility;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
import mage.constants.Zone;
/**
diff --git a/Mage.Sets/src/mage/sets/fatereforged/TemurWarShaman.java b/Mage.Sets/src/mage/sets/fatereforged/TemurWarShaman.java
index 581b8ad41b..445b291f85 100644
--- a/Mage.Sets/src/mage/sets/fatereforged/TemurWarShaman.java
+++ b/Mage.Sets/src/mage/sets/fatereforged/TemurWarShaman.java
@@ -124,8 +124,7 @@ class TemurWarShamanFightEffect extends OneShotEffect {
&& target != null
&& triggeredCreature.getCardType().contains(CardType.CREATURE)
&& target.getCardType().contains(CardType.CREATURE)) {
- triggeredCreature.damage(target.getPower().getValue(), target.getId(), game, false, true);
- target.damage(triggeredCreature.getPower().getValue(), triggeredCreature.getId(), game, false, true);
+ triggeredCreature.fight(target, source, game);
return true;
}
return false;
diff --git a/Mage.Sets/src/mage/sets/futuresight/VeilstoneAmulet.java b/Mage.Sets/src/mage/sets/futuresight/VeilstoneAmulet.java
index 95280cf3fc..40ad79cecc 100644
--- a/Mage.Sets/src/mage/sets/futuresight/VeilstoneAmulet.java
+++ b/Mage.Sets/src/mage/sets/futuresight/VeilstoneAmulet.java
@@ -89,16 +89,19 @@ class VeilstoneAmuletEffect extends ContinuousRuleModifyingEffectImpl {
return true;
}
+ @Override
+ public boolean checksEventType(GameEvent event, Game game) {
+ return event.getType() == EventType.TARGET;
+ }
+
@Override
public boolean applies(GameEvent event, Ability ability, Game game) {
- if (event.getType() == EventType.TARGET) {
- Permanent permanent = game.getPermanent(event.getTargetId());
- if (permanent != null) {
- if (permanent.getCardType().contains(CardType.CREATURE) &&
- permanent.getControllerId().equals(ability.getControllerId()) &&
- game.getPlayer(ability.getControllerId()).hasOpponent(event.getPlayerId(), game)) {
- return true;
- }
+ Permanent permanent = game.getPermanent(event.getTargetId());
+ if (permanent != null) {
+ if (permanent.getCardType().contains(CardType.CREATURE) &&
+ permanent.getControllerId().equals(ability.getControllerId()) &&
+ game.getPlayer(ability.getControllerId()).hasOpponent(event.getPlayerId(), game)) {
+ return true;
}
}
return false;
diff --git a/Mage.Sets/src/mage/sets/gatecrash/GruulRagebeast.java b/Mage.Sets/src/mage/sets/gatecrash/GruulRagebeast.java
index d836ce1415..e228654ddd 100644
--- a/Mage.Sets/src/mage/sets/gatecrash/GruulRagebeast.java
+++ b/Mage.Sets/src/mage/sets/gatecrash/GruulRagebeast.java
@@ -144,9 +144,7 @@ class GruulRagebeastEffect extends OneShotEffect {
&& target != null
&& triggeredCreature.getCardType().contains(CardType.CREATURE)
&& target.getCardType().contains(CardType.CREATURE)) {
- triggeredCreature.damage(target.getPower().getValue(), target.getId(), game, false, true);
- target.damage(triggeredCreature.getPower().getValue(), triggeredCreature.getId(), game, false, true);
- return true;
+ return triggeredCreature.fight(target, source, game);
}
return false;
}
diff --git a/Mage.Sets/src/mage/sets/guildpact/Wildsize.java b/Mage.Sets/src/mage/sets/guildpact/Wildsize.java
index 30e5756fe6..57b7dc140f 100644
--- a/Mage.Sets/src/mage/sets/guildpact/Wildsize.java
+++ b/Mage.Sets/src/mage/sets/guildpact/Wildsize.java
@@ -28,6 +28,7 @@
package mage.sets.guildpact;
import java.util.UUID;
+import mage.abilities.effects.Effect;
import mage.constants.CardType;
import mage.constants.Rarity;
@@ -48,9 +49,14 @@ public class Wildsize extends CardImpl {
public Wildsize(UUID ownerId) {
super(ownerId, 98, "Wildsize", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{G}");
this.expansionSetCode = "GPT";
- this.color.setGreen(true);
- this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn));
- this.getSpellAbility().addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn));
+
+ // Target creature gets +2/+2 and gains trample until end of turn.
+ Effect effect = new BoostTargetEffect(2, 2, Duration.EndOfTurn);
+ effect.setText("Target creature gets +2/+2");
+ this.getSpellAbility().addEffect(effect);
+ effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn);
+ effect.setText("and gains trample until end of turn");
+ this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
}
diff --git a/Mage.Sets/src/mage/sets/innistrad/NightfallPredator.java b/Mage.Sets/src/mage/sets/innistrad/NightfallPredator.java
index d44c9856cf..0ae6d76c6b 100644
--- a/Mage.Sets/src/mage/sets/innistrad/NightfallPredator.java
+++ b/Mage.Sets/src/mage/sets/innistrad/NightfallPredator.java
@@ -112,9 +112,7 @@ class NightfallPredatorEffect extends OneShotEffect {
// 20110930 - 701.10
if (creature1 != null && creature2 != null) {
if (creature1.getCardType().contains(CardType.CREATURE) && creature2.getCardType().contains(CardType.CREATURE)) {
- creature1.damage(creature2.getPower().getValue(), creature2.getId(), game, false, true);
- creature2.damage(creature1.getPower().getValue(), creature1.getId(), game, false, true);
- return true;
+ return creature1.fight(creature2, source, game);
}
}
return false;
diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/SecretPlans.java b/Mage.Sets/src/mage/sets/khansoftarkir/SecretPlans.java
index 57e7e20693..7e04365d26 100644
--- a/Mage.Sets/src/mage/sets/khansoftarkir/SecretPlans.java
+++ b/Mage.Sets/src/mage/sets/khansoftarkir/SecretPlans.java
@@ -28,9 +28,8 @@
package mage.sets.khansoftarkir;
import java.util.UUID;
-import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.SimpleStaticAbility;
-import mage.abilities.effects.Effect;
+import mage.abilities.common.TurnedFaceUpAllTriggeredAbility;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.cards.CardImpl;
@@ -38,11 +37,9 @@ import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Rarity;
import mage.constants.Zone;
+import mage.filter.common.FilterControlledPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.other.FaceDownPredicate;
-import mage.game.Game;
-import mage.game.events.GameEvent;
-import mage.game.permanent.Permanent;
/**
*
@@ -67,7 +64,7 @@ public class SecretPlans extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0,1, Duration.WhileOnBattlefield, filter)));
// Whenever a permanent you control is turned face up, draw a card.
- this.addAbility(new SecretPlanTriggeredAbility(new DrawCardSourceControllerEffect(1), false));
+ this.addAbility(new TurnedFaceUpAllTriggeredAbility(new DrawCardSourceControllerEffect(1), new FilterControlledPermanent()));
}
@@ -80,38 +77,3 @@ public class SecretPlans extends CardImpl {
return new SecretPlans(this);
}
}
-
-class SecretPlanTriggeredAbility extends TriggeredAbilityImpl{
-
- public SecretPlanTriggeredAbility(Effect effect, boolean optional) {
- super(Zone.BATTLEFIELD, effect, optional);
- }
-
- public SecretPlanTriggeredAbility(final SecretPlanTriggeredAbility ability) {
- super(ability);
- }
-
- @Override
- public SecretPlanTriggeredAbility copy() {
- return new SecretPlanTriggeredAbility(this);
- }
-
- @Override
- public boolean checkEventType(GameEvent event, Game game) {
- return event.getType() == GameEvent.EventType.TURNEDFACEUP;
- }
-
- @Override
- public boolean checkTrigger(GameEvent event, Game game) {
- Permanent permanent = game.getPermanent(event.getTargetId());
- if (permanent.getControllerId().equals(this.controllerId)) {
- return true;
- }
- return false;
- }
-
- @Override
- public String getRule() {
- return "When a permanent you control is turned face up, " + super.getRule();
- }
-}
diff --git a/Mage.Sets/src/mage/sets/limitedalpha/AnimateWall.java b/Mage.Sets/src/mage/sets/limitedalpha/AnimateWall.java
index 3ea63ab008..992995d721 100644
--- a/Mage.Sets/src/mage/sets/limitedalpha/AnimateWall.java
+++ b/Mage.Sets/src/mage/sets/limitedalpha/AnimateWall.java
@@ -32,7 +32,7 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.AttachEffect;
-import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderEffect;
+import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl;
@@ -74,7 +74,7 @@ public class AnimateWall extends CardImpl {
this.addAbility(ability);
// Enchanted Wall can attack as though it didn't have defender.
- Ability canAttackAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new CanAttackAsThoughtItDidntHaveDefenderEffect(Duration.WhileOnBattlefield));
+ Ability canAttackAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new CanAttackAsThoughtItDidntHaveDefenderSourceEffect(Duration.WhileOnBattlefield));
Effect enchantEffect = new GainAbilityAttachedEffect(canAttackAbility, AttachmentType.AURA, Duration.WhileOnBattlefield);
enchantEffect.setText("Enchanted Wall can attack as though it didn't have defender");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, enchantEffect));
diff --git a/Mage.Sets/src/mage/sets/lorwyn/DoranTheSiegeTower.java b/Mage.Sets/src/mage/sets/lorwyn/DoranTheSiegeTower.java
index ca1c813019..9be51ddef1 100644
--- a/Mage.Sets/src/mage/sets/lorwyn/DoranTheSiegeTower.java
+++ b/Mage.Sets/src/mage/sets/lorwyn/DoranTheSiegeTower.java
@@ -41,6 +41,7 @@ import mage.cards.CardImpl;
import mage.constants.Duration;
import mage.constants.Layer;
import mage.constants.SubLayer;
+import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
/**
@@ -87,6 +88,8 @@ public class DoranTheSiegeTower extends CardImpl {
class DoranTheSiegeTowerCombatDamageRuleEffect extends ContinuousEffectImpl {
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
+
public DoranTheSiegeTowerCombatDamageRuleEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment);
staticText = "Each creature assigns combat damage equal to its toughness rather than its power";
@@ -103,13 +106,10 @@ class DoranTheSiegeTowerCombatDamageRuleEffect extends ContinuousEffectImpl {
@Override
public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) {
- switch (layer) {
- case RulesEffects:
- // Change the rule
- game.getCombat().setUseToughnessForDamage(true);
- break;
- }
- return false;
+ // Change the rule
+ game.getCombat().setUseToughnessForDamage(true);
+ game.getCombat().addUseToughnessForDamageFilter(filter);
+ return true;
}
@Override
diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/SpireSerpent.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/SpireSerpent.java
index 7e1b27204b..f753cc56de 100644
--- a/Mage.Sets/src/mage/sets/mirrodinbesieged/SpireSerpent.java
+++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/SpireSerpent.java
@@ -41,7 +41,7 @@ import mage.abilities.decorator.ConditionalAsThoughEffect;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
-import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderEffect;
+import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderSourceEffect;
import mage.abilities.keyword.DefenderAbility;
import mage.cards.CardImpl;
@@ -64,7 +64,7 @@ public class SpireSerpent extends CardImpl {
this.addAbility(DefenderAbility.getInstance());
ConditionalContinuousEffect effect1 = new ConditionalContinuousEffect(new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), MetalcraftCondition.getInstance(), abilityText1);
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect1);
- Effect effect = new ConditionalAsThoughEffect(new CanAttackAsThoughtItDidntHaveDefenderEffect(Duration.WhileOnBattlefield),
+ Effect effect = new ConditionalAsThoughEffect(new CanAttackAsThoughtItDidntHaveDefenderSourceEffect(Duration.WhileOnBattlefield),
MetalcraftCondition.getInstance());
effect.setText("and can attack as though it didn't have defender");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/sets/returntoravnica/ChaosImps.java b/Mage.Sets/src/mage/sets/returntoravnica/ChaosImps.java
index 6bbae1f41e..674ed9da05 100644
--- a/Mage.Sets/src/mage/sets/returntoravnica/ChaosImps.java
+++ b/Mage.Sets/src/mage/sets/returntoravnica/ChaosImps.java
@@ -28,9 +28,6 @@
package mage.sets.returntoravnica;
import java.util.UUID;
-import mage.constants.CardType;
-import mage.constants.Rarity;
-import mage.constants.Zone;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.SourceHasCounterCondition;
@@ -40,8 +37,11 @@ import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.TrampleAbility;
import mage.abilities.keyword.UnleashAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
import mage.counters.CounterType;
-
+
/**
*
* @author LevelX2
@@ -52,8 +52,7 @@ public class ChaosImps extends CardImpl {
super(ownerId, 90, "Chaos Imps", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{R}{R}");
this.expansionSetCode = "RTR";
this.subtype.add("Imp");
-
- this.color.setRed(true);
+
this.power = new MageInt(6);
this.toughness = new MageInt(5);
@@ -66,7 +65,7 @@ public class ChaosImps extends CardImpl {
// Chaos Imps has trample as long as it has a +1/+1 counter on it.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinuousEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance()),
- new SourceHasCounterCondition(CounterType.P1P1),"Chaos Imps has trample as long as it has a +1/+1 counter on it")));
+ new SourceHasCounterCondition(CounterType.P1P1),"{this} has trample as long as it has a +1/+1 counter on it")));
}
diff --git a/Mage.Sets/src/mage/sets/tempest/SpikeDrone.java b/Mage.Sets/src/mage/sets/tempest/SpikeDrone.java
index ae719c78cc..fd6448cb0f 100644
--- a/Mage.Sets/src/mage/sets/tempest/SpikeDrone.java
+++ b/Mage.Sets/src/mage/sets/tempest/SpikeDrone.java
@@ -33,6 +33,7 @@ import mage.constants.CardType;
import mage.constants.Rarity;
import mage.MageInt;
import mage.abilities.Ability;
+import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
@@ -58,7 +59,10 @@ public class SpikeDrone extends CardImpl {
this.color.setGreen(true);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
- this.addAbility(new EntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1))));
+
+ this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
+ "{this} enters the battlefield with a +1/+1 counters on it"));
+
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance(1)), new GenericManaCost(2));
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/sets/tenth/AngelicBlessing.java b/Mage.Sets/src/mage/sets/tenth/AngelicBlessing.java
index d459ef8ba4..3f64015adb 100644
--- a/Mage.Sets/src/mage/sets/tenth/AngelicBlessing.java
+++ b/Mage.Sets/src/mage/sets/tenth/AngelicBlessing.java
@@ -28,14 +28,14 @@
package mage.sets.tenth;
import java.util.UUID;
-
-import mage.constants.CardType;
-import mage.constants.Rarity;
+import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
+import mage.constants.CardType;
import mage.constants.Duration;
+import mage.constants.Rarity;
import mage.target.common.TargetCreaturePermanent;
/**
@@ -47,9 +47,13 @@ public class AngelicBlessing extends CardImpl {
public AngelicBlessing(UUID ownerId) {
super(ownerId, 3, "Angelic Blessing", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{2}{W}");
this.expansionSetCode = "10E";
- this.color.setWhite(true);
- this.getSpellAbility().addEffect(new BoostTargetEffect(3, 3, Duration.EndOfTurn));
- this.getSpellAbility().addEffect(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn));
+
+ Effect effect = new BoostTargetEffect(3, 3, Duration.EndOfTurn);
+ effect.setText("Target creature gets +3/+3");
+ this.getSpellAbility().addEffect(effect);
+ effect = new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn);
+ effect.setText("and gains flying until end of turn");
+ this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
}
diff --git a/Mage.Sets/src/mage/sets/theros/ColossusOfAkros.java b/Mage.Sets/src/mage/sets/theros/ColossusOfAkros.java
index f52116132a..9515c4f37d 100644
--- a/Mage.Sets/src/mage/sets/theros/ColossusOfAkros.java
+++ b/Mage.Sets/src/mage/sets/theros/ColossusOfAkros.java
@@ -35,7 +35,7 @@ import mage.abilities.condition.common.MonstrousCondition;
import mage.abilities.decorator.ConditionalAsThoughEffect;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.Effect;
-import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderEffect;
+import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.keyword.DefenderAbility;
import mage.abilities.keyword.IndestructibleAbility;
@@ -73,7 +73,7 @@ public class ColossusOfAkros extends CardImpl {
new ConditionalContinuousEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield),
MonstrousCondition.getInstance(),
"As long as {this} is monstrous, it has trample"));
- Effect effect = new ConditionalAsThoughEffect(new CanAttackAsThoughtItDidntHaveDefenderEffect(Duration.WhileOnBattlefield),
+ Effect effect = new ConditionalAsThoughEffect(new CanAttackAsThoughtItDidntHaveDefenderSourceEffect(Duration.WhileOnBattlefield),
MonstrousCondition.getInstance());
effect.setText("and can attack as though it didn't have defender");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/sets/theros/ReturnedPhalanx.java b/Mage.Sets/src/mage/sets/theros/ReturnedPhalanx.java
index b07e565c53..26d9fa0d72 100644
--- a/Mage.Sets/src/mage/sets/theros/ReturnedPhalanx.java
+++ b/Mage.Sets/src/mage/sets/theros/ReturnedPhalanx.java
@@ -31,7 +31,7 @@ import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderEffect;
+import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderSourceEffect;
import mage.abilities.keyword.DefenderAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
@@ -58,7 +58,7 @@ public class ReturnedPhalanx extends CardImpl {
// Defender
this.addAbility(DefenderAbility.getInstance());
// {1}{U}: Returned Phalanx can attack this turn as though it didn't have defender.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CanAttackAsThoughtItDidntHaveDefenderEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CanAttackAsThoughtItDidntHaveDefenderSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}{U}")));
}
public ReturnedPhalanx(final ReturnedPhalanx card) {
diff --git a/Mage/src/mage/abilities/common/TurnedFaceUpAllTriggeredAbility.java b/Mage/src/mage/abilities/common/TurnedFaceUpAllTriggeredAbility.java
index 3b17240518..367388fc06 100644
--- a/Mage/src/mage/abilities/common/TurnedFaceUpAllTriggeredAbility.java
+++ b/Mage/src/mage/abilities/common/TurnedFaceUpAllTriggeredAbility.java
@@ -34,7 +34,6 @@ import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.game.Game;
import mage.game.events.GameEvent;
-import mage.game.events.GameEvent.EventType;
import mage.game.permanent.Permanent;
import mage.target.targetpointer.FixedTarget;
@@ -53,12 +52,15 @@ public class TurnedFaceUpAllTriggeredAbility extends TriggeredAbilityImpl {
}
public TurnedFaceUpAllTriggeredAbility(Effect effect, FilterPermanent filter, boolean setTargetPointer) {
- super(Zone.BATTLEFIELD, effect);
+ this(Zone.BATTLEFIELD, effect, filter, setTargetPointer, false);
+ }
+
+ public TurnedFaceUpAllTriggeredAbility(Zone zone, Effect effect, FilterPermanent filter, boolean setTargetPointer, boolean optional) {
+ super(zone, effect, optional);
// has to be set so the ability triggers if card itself is turn faced up
this.setWorksFaceDown(true);
this.filter = filter;
this.setTargetPointer = setTargetPointer;
-
}
public TurnedFaceUpAllTriggeredAbility(final TurnedFaceUpAllTriggeredAbility ability) {
@@ -105,7 +107,7 @@ public class TurnedFaceUpAllTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
- return "When " + filter.getMessage() + " is turned face up, " + super.getRule();
+ return "Whenever " + filter.getMessage() + " is turned face up, " + super.getRule();
}
}
diff --git a/Mage/src/mage/abilities/effects/common/AddManaOfAnyColorEffect.java b/Mage/src/mage/abilities/effects/common/AddManaOfAnyColorEffect.java
index 5a080336e7..b79149a846 100644
--- a/Mage/src/mage/abilities/effects/common/AddManaOfAnyColorEffect.java
+++ b/Mage/src/mage/abilities/effects/common/AddManaOfAnyColorEffect.java
@@ -46,7 +46,7 @@ public class AddManaOfAnyColorEffect extends BasicManaEffect {
}
public AddManaOfAnyColorEffect(final int amount) {
- super(new Mana(0,0,0,0,0,0,1));
+ super(new Mana(0,0,0,0,0,0, amount));
this.amount = amount;
this.staticText = new StringBuilder("add ")
.append(CardUtil.numberToText(amount))
diff --git a/Mage/src/mage/abilities/effects/common/FightTargetSourceEffect.java b/Mage/src/mage/abilities/effects/common/FightTargetSourceEffect.java
index dda84ffa5f..91b0bd9f34 100644
--- a/Mage/src/mage/abilities/effects/common/FightTargetSourceEffect.java
+++ b/Mage/src/mage/abilities/effects/common/FightTargetSourceEffect.java
@@ -57,13 +57,10 @@ public class FightTargetSourceEffect extends OneShotEffect {
// only if target is legal the effect will be applied
if (source.getTargets().get(0).isLegal(source, game)) {
Permanent creature1 = game.getPermanent(source.getTargets().get(0).getFirstTarget());
-
// 20110930 - 701.10
if (creature1 != null && sourcePermanent != null) {
if (creature1.getCardType().contains(CardType.CREATURE) && sourcePermanent.getCardType().contains(CardType.CREATURE)) {
- creature1.damage(sourcePermanent.getPower().getValue(), sourcePermanent.getId(), game, false, true);
- sourcePermanent.damage(creature1.getPower().getValue(), creature1.getId(), game, false, true);
- return true;
+ return sourcePermanent.fight(creature1, source, game);
}
}
}
diff --git a/Mage/src/mage/abilities/effects/common/FightTargetsEffect.java b/Mage/src/mage/abilities/effects/common/FightTargetsEffect.java
index 42386c8f28..82b02c18d9 100644
--- a/Mage/src/mage/abilities/effects/common/FightTargetsEffect.java
+++ b/Mage/src/mage/abilities/effects/common/FightTargetsEffect.java
@@ -61,9 +61,7 @@ public class FightTargetsEffect extends OneShotEffect {
// 20110930 - 701.10
if (creature1 != null && creature2 != null) {
if (creature1.getCardType().contains(CardType.CREATURE) && creature2.getCardType().contains(CardType.CREATURE)) {
- creature1.damage(creature2.getPower().getValue(), creature2.getId(), game, false, true);
- creature2.damage(creature1.getPower().getValue(), creature1.getId(), game, false, true);
- return true;
+ return creature1.fight(creature2, source, game);
}
}
}
diff --git a/Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderEffect.java b/Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderSourceEffect.java
similarity index 78%
rename from Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderEffect.java
rename to Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderSourceEffect.java
index f63d0a2624..eb7dcc3c53 100644
--- a/Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderEffect.java
+++ b/Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderSourceEffect.java
@@ -40,14 +40,14 @@ import mage.game.Game;
* @author LevelX2
*/
-public class CanAttackAsThoughtItDidntHaveDefenderEffect extends AsThoughEffectImpl {
+public class CanAttackAsThoughtItDidntHaveDefenderSourceEffect extends AsThoughEffectImpl {
- public CanAttackAsThoughtItDidntHaveDefenderEffect(Duration duration) {
+ public CanAttackAsThoughtItDidntHaveDefenderSourceEffect(Duration duration) {
super(AsThoughEffectType.ATTACK, duration, Outcome.Benefit);
staticText = "{this} can attack as though it didn't have defender";
}
- public CanAttackAsThoughtItDidntHaveDefenderEffect(final CanAttackAsThoughtItDidntHaveDefenderEffect effect) {
+ public CanAttackAsThoughtItDidntHaveDefenderSourceEffect(final CanAttackAsThoughtItDidntHaveDefenderSourceEffect effect) {
super(effect);
}
@@ -57,13 +57,13 @@ public class CanAttackAsThoughtItDidntHaveDefenderEffect extends AsThoughEffectI
}
@Override
- public CanAttackAsThoughtItDidntHaveDefenderEffect copy() {
- return new CanAttackAsThoughtItDidntHaveDefenderEffect(this);
+ public CanAttackAsThoughtItDidntHaveDefenderSourceEffect copy() {
+ return new CanAttackAsThoughtItDidntHaveDefenderSourceEffect(this);
}
@Override
- public boolean applies(UUID sourceId, Ability source, UUID affectedControllerId, Game game) {
- return sourceId.equals(source.getSourceId());
+ public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
+ return objectId.equals(source.getSourceId());
}
}
diff --git a/Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderTargetEffect.java b/Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderTargetEffect.java
new file mode 100644
index 0000000000..604fa931fa
--- /dev/null
+++ b/Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderTargetEffect.java
@@ -0,0 +1,84 @@
+/*
+ * 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.abilities.effects.common.combat;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.Mode;
+import mage.abilities.effects.AsThoughEffectImpl;
+import mage.constants.AsThoughEffectType;
+import mage.constants.Duration;
+import mage.constants.Outcome;
+import mage.game.Game;
+
+/**
+ *
+ * @author LevelX2
+ */
+
+public class CanAttackAsThoughtItDidntHaveDefenderTargetEffect extends AsThoughEffectImpl {
+
+ public CanAttackAsThoughtItDidntHaveDefenderTargetEffect(Duration duration) {
+ super(AsThoughEffectType.ATTACK, duration, Outcome.Benefit);
+ }
+
+ public CanAttackAsThoughtItDidntHaveDefenderTargetEffect(final CanAttackAsThoughtItDidntHaveDefenderTargetEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ return true;
+ }
+
+ @Override
+ public CanAttackAsThoughtItDidntHaveDefenderTargetEffect copy() {
+ return new CanAttackAsThoughtItDidntHaveDefenderTargetEffect(this);
+ }
+
+ @Override
+ public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
+ return this.getTargetPointer().getTargets(game, source).contains(objectId);
+ }
+
+ @Override
+ public String getText(Mode mode) {
+ if (staticText != null && !staticText.isEmpty()) {
+ return staticText;
+ }
+ if (!mode.getTargets().isEmpty()) {
+ if (this.duration == Duration.EndOfTurn) {
+ return "Target " + mode.getTargets().get(0).getTargetName() + " can attack this turn as though it didn't have defender";
+ } else {
+ return "Target " + mode.getTargets().get(0).getTargetName() + " can attack as though it didn't have defender";
+ }
+ } else {
+ throw new UnsupportedOperationException("No target defined");
+ }
+ }
+}
diff --git a/Mage/src/mage/game/combat/Combat.java b/Mage/src/mage/game/combat/Combat.java
index 8223e5116a..143a1dd9de 100644
--- a/Mage/src/mage/game/combat/Combat.java
+++ b/Mage/src/mage/game/combat/Combat.java
@@ -61,6 +61,7 @@ public class Combat implements Serializable, Copyable {
private static FilterCreatureForCombatBlock filterBlockers = new FilterCreatureForCombatBlock();
// There are effects that let creatures assigns combat damage equal to its toughness rather than its power
private boolean useToughnessForDamage;
+ private List useToughnessForDamageFilters = new ArrayList<>();
protected List groups = new ArrayList<>();
protected Map blockingGroups = new HashMap<>();
@@ -130,16 +131,28 @@ public class Combat implements Serializable, Copyable {
return blockers;
}
- public boolean useToughnessForDamage() {
- return useToughnessForDamage;
+ public boolean useToughnessForDamage(Permanent permanent, Game game) {
+ if (useToughnessForDamage) {
+ for(FilterCreaturePermanent filter: useToughnessForDamageFilters) {
+ if (filter.match(permanent, game)) {
+ return true;
+ }
+ }
+ }
+ return false;
}
public void setUseToughnessForDamage(boolean useToughnessForDamage) {
this.useToughnessForDamage = useToughnessForDamage;
}
+ public void addUseToughnessForDamageFilter(FilterCreaturePermanent filter) {
+ this.useToughnessForDamageFilters.add(filter);
+ }
+
public void reset() {
this.useToughnessForDamage = false;
+ this.useToughnessForDamageFilters.clear();
}
public void clear() {
diff --git a/Mage/src/mage/game/combat/CombatGroup.java b/Mage/src/mage/game/combat/CombatGroup.java
index 806a0fb8b9..d02267478c 100644
--- a/Mage/src/mage/game/combat/CombatGroup.java
+++ b/Mage/src/mage/game/combat/CombatGroup.java
@@ -599,7 +599,7 @@ public class CombatGroup implements Serializable, Copyable {
* @return
*/
private int getDamageValueFromPermanent(Permanent permanent, Game game) {
- if (game.getCombat().useToughnessForDamage()) {
+ if (game.getCombat().useToughnessForDamage(permanent, game)) {
return permanent.getToughness().getValue();
} else {
return permanent.getPower().getValue();
diff --git a/Mage/src/mage/game/events/GameEvent.java b/Mage/src/mage/game/events/GameEvent.java
index c4db2d3c9a..e5a1e11f8f 100644
--- a/Mage/src/mage/game/events/GameEvent.java
+++ b/Mage/src/mage/game/events/GameEvent.java
@@ -125,6 +125,7 @@ public class GameEvent {
DAMAGE_PLANESWALKER, DAMAGED_PLANESWALKER,
DESTROY_PERMANENT, DESTROYED_PERMANENT,
SACRIFICE_PERMANENT, SACRIFICED_PERMANENT,
+ FIGHTED_PERMANENT,
EXPLOIDED_CREATURE,
ATTACH, ATTACHED,
UNATTACH, UNATTACHED,
diff --git a/Mage/src/mage/game/permanent/Permanent.java b/Mage/src/mage/game/permanent/Permanent.java
index 99745dad18..aab2f10f6a 100644
--- a/Mage/src/mage/game/permanent/Permanent.java
+++ b/Mage/src/mage/game/permanent/Permanent.java
@@ -119,6 +119,8 @@ public interface Permanent extends Card, Controllable {
boolean destroy(UUID sourceId, Game game, boolean noRegen);
boolean sacrifice(UUID sourceId, Game game);
boolean regenerate(UUID sourceId, Game game);
+ boolean fight(Permanent fightTarget, Ability source, Game game);
+
void entersBattlefield(UUID sourceId, Game game, Zone fromZone, boolean fireEvent);
String getValue();
diff --git a/Mage/src/mage/game/permanent/PermanentImpl.java b/Mage/src/mage/game/permanent/PermanentImpl.java
index bc407e2fb1..90a26a0dc6 100644
--- a/Mage/src/mage/game/permanent/PermanentImpl.java
+++ b/Mage/src/mage/game/permanent/PermanentImpl.java
@@ -1297,5 +1297,12 @@ public abstract class PermanentImpl extends CardImpl implements Permanent {
this.secondSideCard = card;
}
-
+ @Override
+ public boolean fight(Permanent fightTarget, Ability source, Game game) {
+ game.fireEvent(GameEvent.getEvent(GameEvent.EventType.FIGHTED_PERMANENT, fightTarget.getId(), getId(), source.getControllerId()));
+ game.fireEvent(GameEvent.getEvent(GameEvent.EventType.FIGHTED_PERMANENT, getId(), fightTarget.getId(), source.getControllerId()));
+ damage(fightTarget.getPower().getValue(), fightTarget.getId(), game, false, true);
+ fightTarget.damage(getPower().getValue(), getId(), game, false, true);
+ return true;
+ }
}