mirror of
https://github.com/magefree/mage.git
synced 2025-12-30 07:22:03 -08:00
Merge branch 'master' into Zzooouhh-rix-1
This commit is contained in:
commit
67aa13bcd5
56 changed files with 553 additions and 66 deletions
81
Mage.Sets/src/mage/cards/d/DireFleetNeckbreaker.java
Normal file
81
Mage.Sets/src/mage/cards/d/DireFleetNeckbreaker.java
Normal file
|
|
@ -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.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.constants.*;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.filter.common.FilterAttackingCreature;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JayDi85
|
||||
*/
|
||||
public class DireFleetNeckbreaker extends CardImpl {
|
||||
|
||||
private static final FilterAttackingCreature filterYourAttackingPirates = new FilterAttackingCreature("Attacking Pirates");
|
||||
static {
|
||||
filterYourAttackingPirates.add(new ControllerPredicate(TargetController.YOU));
|
||||
filterYourAttackingPirates.add(new SubtypePredicate(SubType.PIRATE));
|
||||
}
|
||||
|
||||
public DireFleetNeckbreaker(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{R}");
|
||||
|
||||
this.subtype.add(SubType.ORC);
|
||||
this.subtype.add(SubType.PIRATE);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Attacking Pirates you control get +2/+0.
|
||||
GainAbilityControlledEffect gainEffect = new GainAbilityControlledEffect(
|
||||
new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 0, Duration.Custom)),
|
||||
Duration.WhileOnBattlefield,
|
||||
filterYourAttackingPirates,
|
||||
false
|
||||
);
|
||||
gainEffect.setText("Attacking Pirates you control get +2/+0.");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, gainEffect));
|
||||
}
|
||||
|
||||
public DireFleetNeckbreaker(final DireFleetNeckbreaker card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DireFleetNeckbreaker copy() {
|
||||
return new DireFleetNeckbreaker(this);
|
||||
}
|
||||
}
|
||||
73
Mage.Sets/src/mage/cards/d/DuskLegionZealot.java
Normal file
73
Mage.Sets/src/mage/cards/d/DuskLegionZealot.java
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
|
||||
import mage.constants.*;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JayDi85
|
||||
*/
|
||||
public class DuskLegionZealot extends CardImpl {
|
||||
|
||||
public DuskLegionZealot (UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}");
|
||||
|
||||
this.subtype.add(SubType.VAMPIRE);
|
||||
this.subtype.add(SubType.SOLDIER);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// When Dusk Legion Zealot enters the battlefield, you draw a card and you lose 1 life.
|
||||
Effect drawEffect = new DrawCardSourceControllerEffect(1);
|
||||
drawEffect.setText("you draw a card");
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(drawEffect);
|
||||
Effect lifeEffect = new LoseLifeSourceControllerEffect(1);
|
||||
lifeEffect.setText("and you lose 1 life");
|
||||
ability.addEffect(lifeEffect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public DuskLegionZealot (final DuskLegionZealot card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DuskLegionZealot copy() {
|
||||
return new DuskLegionZealot (this);
|
||||
}
|
||||
}
|
||||
80
Mage.Sets/src/mage/cards/f/FanaticalFirebrand.java
Normal file
80
Mage.Sets/src/mage/cards/f/FanaticalFirebrand.java
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
package mage.cards.f;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JayDi85
|
||||
*/
|
||||
public class FanaticalFirebrand extends CardImpl {
|
||||
|
||||
public FanaticalFirebrand(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}");
|
||||
|
||||
this.subtype.add(SubType.GOBLIN);
|
||||
this.subtype.add(SubType.PIRATE);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// {T}, Sacrifice Fanatical Firebrand: It deals 1 damage to target creature or player.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1, "It"), new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public FanaticalFirebrand(final FanaticalFirebrand card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FanaticalFirebrand copy() {
|
||||
return new FanaticalFirebrand(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -56,7 +56,7 @@ public class FiremawKavu extends CardImpl {
|
|||
this.addAbility(new EchoAbility("{5}{R}"));
|
||||
|
||||
// When Firemaw Kavu enters the battlefield, it deals 2 damage to target creature.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2));
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2, "it"));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class FoundryChampion extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
//When Foundry Champion enters the battlefield, it deals damage to target creature or player equal to the number of creatures you control.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent())));
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()), "it"));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public class GangOfDevils extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// When Gang of Devils dies, it deals 3 damage divided as you choose among one, two, or three target creatures and/or players.
|
||||
Ability ability = new DiesTriggeredAbility(new DamageMultiEffect(3));
|
||||
Ability ability = new DiesTriggeredAbility(new DamageMultiEffect(3, "it"));
|
||||
ability.addTarget(new TargetCreatureOrPlayerAmount(3));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ public class GhituSlinger extends CardImpl {
|
|||
// Echo {2}{R}
|
||||
this.addAbility(new EchoAbility("{2}{R}"));
|
||||
// When Ghitu Slinger enters the battlefield, it deals 2 damage to target creature or player.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2), false);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2, "it"), false);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public class GibberingFiend extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// When Gibbering Fiend enters the battlefield, it deals 1 damage to each opponent.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new DamagePlayersEffect(1, TargetController.OPPONENT), false));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new DamagePlayersEffect(1, TargetController.OPPONENT, "it"), false));
|
||||
|
||||
// <i>Delirium</i> — At the beginning of each opponent's upkeep, if there are four or more card types among cards in your graveyard,
|
||||
// Gibbering Fiend deals 1 damage to that player.
|
||||
|
|
|
|||
|
|
@ -53,9 +53,7 @@ public class GoblinBoomKeg extends CardImpl {
|
|||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceEffect(), TargetController.YOU, false));
|
||||
|
||||
// When Goblin Boom Keg is put into a graveyard from the battlefield, it deals 3 damage to target creature or player.
|
||||
Effect effect = new DamageTargetEffect(3);
|
||||
effect.setText("it deals 3 damage to target creature or player");
|
||||
Ability ability = new PutIntoGraveFromBattlefieldSourceTriggeredAbility(effect, false);
|
||||
Ability ability = new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new DamageTargetEffect(3, "it"), false);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public class GoblinCommando extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// When Goblin Commando enters the battlefield, it deals 2 damage to target creature.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2));
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2, "it"));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public class GoblinMedics extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Whenever Goblin Medics becomes tapped, it deals 1 damage to target creature or player.
|
||||
Ability ability = new BecomesTappedSourceTriggeredAbility(new DamageTargetEffect(1));
|
||||
Ability ability = new BecomesTappedSourceTriggeredAbility(new DamageTargetEffect(1, "it"));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ public class GoblinShrine extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
|
||||
// When Goblin Shrine leaves the battlefield, it deals 1 damage to each Goblin creature.
|
||||
this.addAbility(new LeavesBattlefieldTriggeredAbility(new DamageAllEffect(1, filterGoblin), false));
|
||||
this.addAbility(new LeavesBattlefieldTriggeredAbility(new DamageAllEffect(1, "it", filterGoblin), false));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ public class GoblinSwineRider extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Whenever Goblin Swine-Rider becomes blocked, it deals 2 damage to each attacking creature and each blocking creature.
|
||||
this.addAbility(new BecomesBlockedTriggeredAbility(new DamageAllEffect(2, new FilterAttackingOrBlockingCreature("attacking creature and each blocking creature")), false));
|
||||
this.addAbility(new BecomesBlockedTriggeredAbility(new DamageAllEffect(2, "it", new FilterAttackingOrBlockingCreature("attacking creature and each blocking creature")), false));
|
||||
}
|
||||
|
||||
public GoblinSwineRider(final GoblinSwineRider card) {
|
||||
|
|
|
|||
141
Mage.Sets/src/mage/cards/h/HeartOfBogardan.java
Normal file
141
Mage.Sets/src/mage/cards/h/HeartOfBogardan.java
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
/*
|
||||
* 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.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.keyword.CumulativeUpkeepAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000 & L_J
|
||||
*/
|
||||
public class HeartOfBogardan extends CardImpl {
|
||||
|
||||
public HeartOfBogardan(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}{R}");
|
||||
|
||||
// Cumulative upkeep-Pay {2}.
|
||||
this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{2}")));
|
||||
|
||||
// When a player doesn't pay Heart of Bogardan's cumulative upkeep, Heart of Bogardan deals X damage to target player and each creature he or she controls, where X is twice the number of age counters on Heart of Bogardan minus 2.
|
||||
this.addAbility(new HeartOfBogardanTriggeredAbility());
|
||||
}
|
||||
|
||||
public HeartOfBogardan(final HeartOfBogardan card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HeartOfBogardan copy() {
|
||||
return new HeartOfBogardan(this);
|
||||
}
|
||||
}
|
||||
|
||||
class HeartOfBogardanTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
HeartOfBogardanTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new HeartOfBogardanEffect(), false);
|
||||
this.addTarget(new TargetPlayer());
|
||||
}
|
||||
|
||||
HeartOfBogardanTriggeredAbility(final HeartOfBogardanTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HeartOfBogardanTriggeredAbility copy() {
|
||||
return new HeartOfBogardanTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == EventType.DIDNT_PAY_CUMULATIVE_UPKEEP;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return event.getSourceId() != null && event.getSourceId().equals(this.getSourceId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When a player doesn't pay {this}'s cumulative upkeep, {this} deals X damage to target player and each creature he or she controls, where X is twice the number of age counters on {this} minus 2.";
|
||||
}
|
||||
}
|
||||
|
||||
class HeartOfBogardanEffect extends OneShotEffect {
|
||||
|
||||
public HeartOfBogardanEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "{this} deals X damage to target player and each creature he or she controls, where X is twice the number of age counters on {this} minus 2";
|
||||
}
|
||||
|
||||
public HeartOfBogardanEffect(final HeartOfBogardanEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getFirstTarget());
|
||||
Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
|
||||
if (player != null && sourcePermanent != null) {
|
||||
int damage = sourcePermanent.getCounters(game).getCount(CounterType.AGE) * 2 - 2;
|
||||
if (damage > 0) {
|
||||
player.damage(damage, source.getSourceId(), game, false, true);
|
||||
for (Permanent perm: game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), player.getId(), game)) {
|
||||
perm.damage(damage, source.getSourceId(), game, false, true);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HeartOfBogardanEffect copy() {
|
||||
return new HeartOfBogardanEffect(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -51,7 +51,7 @@ public class ImplementOfCombustion extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
|
||||
|
||||
// {R}, Sacrifice Implement of Combustion: It deals 1 damage to target player.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{R}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1, "It"), new ManaCostsImpl("{R}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ public class InfernoTitan extends CardImpl {
|
|||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}")));
|
||||
|
||||
// Whenever Inferno Titan enters the battlefield or attacks, it deals 3 damage divided as you choose among one, two, or three target creatures and/or players.
|
||||
Ability ability = new EntersBattlefieldOrAttacksSourceTriggeredAbility(new DamageMultiEffect(3));
|
||||
Ability ability = new EntersBattlefieldOrAttacksSourceTriggeredAbility(new DamageMultiEffect(3, "it"));
|
||||
ability.addTarget(new TargetCreatureOrPlayerAmount(3));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public class KeldonChampion extends CardImpl {
|
|||
// Echo {2}{R}{R}
|
||||
this.addAbility(new EchoAbility("{2}{R}{R}"));
|
||||
// When Keldon Champion enters the battlefield, it deals 3 damage to target player.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3), false);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3, "it"), false);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ public class KeldonMarauders extends CardImpl {
|
|||
this.addAbility(new VanishingSacrificeAbility());
|
||||
|
||||
// When Keldon Marauders enters the battlefield or leaves the battlefield, it deals 1 damage to target player.
|
||||
ability = new EntersBattlefieldOrLeavesSourceTriggeredAbility(new DamageTargetEffect(1), false);
|
||||
ability = new EntersBattlefieldOrLeavesSourceTriggeredAbility(new DamageTargetEffect(1, "it"), false);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public class KessigMalcontents extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// When Kessig Malcontents enters the battlefield, it deals damage to target player equal to the number of Humans you control.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)));
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter), "it"));
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public class LavaHounds extends CardImpl {
|
|||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
// When Lava Hounds enters the battlefield, it deals 4 damage to you.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new DamageControllerEffect(4)));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new DamageControllerEffect(4, "it")));
|
||||
}
|
||||
|
||||
public LavaHounds(final LavaHounds card) {
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ public class LightningDiadem extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// When Lightning Diadem enters the battlefield, it deals 2 damage to target creature or player.
|
||||
ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2));
|
||||
ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2, "it"));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public class Meteorite extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}");
|
||||
|
||||
// When Meteorite enters the battlefield, it deals 2 damage to target creature or player.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2), false);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2, "it"), false);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public class MudbuttonTorchrunner extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
// When Mudbutton Torchrunner dies, it deals 3 damage to target creature or player.
|
||||
Ability ability = new DiesTriggeredAbility(new DamageTargetEffect(3), false);
|
||||
Ability ability = new DiesTriggeredAbility(new DamageTargetEffect(3, "it"), false);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public class OrdealOfPurphoros extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
// When you sacrifice Ordeal of Purphoros, it deals 3 damage to target creature or player.
|
||||
ability = new SacrificeSourceTriggeredAbility(
|
||||
new DamageTargetEffect(3),false);
|
||||
new DamageTargetEffect(3, "it"),false);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public class PardicArsonist extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Threshold - As long as seven or more cards are in your graveyard, Pardic Arsonist has "When Pardic Arsonist enters the battlefield, it deals 3 damage to target creature or player."
|
||||
Ability gainedAbility = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3));
|
||||
Ability gainedAbility = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3, "it"));
|
||||
gainedAbility.addTarget(new TargetCreatureOrPlayer());
|
||||
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class PerilousMyr extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// When Perilous Myr dies, it deals 2 damage to target creature or player.
|
||||
Ability ability = new DiesTriggeredAbility(new DamageTargetEffect(2), false);
|
||||
Ability ability = new DiesTriggeredAbility(new DamageTargetEffect(2, "it"), false);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class PitchburnDevils extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// When Pitchburn Devils dies, it deals 3 damage to target creature or player.
|
||||
DiesTriggeredAbility ability = new DiesTriggeredAbility(new DamageTargetEffect(3));
|
||||
DiesTriggeredAbility ability = new DiesTriggeredAbility(new DamageTargetEffect(3, "it"));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class RagingSwordtooth extends CardImpl {
|
|||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// When Raging Swordtooth enters the battlefield, it deals 1 damage to each other creature.
|
||||
addAbility(new EntersBattlefieldTriggeredAbility(new DamageAllEffect(1, filter)));
|
||||
addAbility(new EntersBattlefieldTriggeredAbility(new DamageAllEffect(1, "it", filter)));
|
||||
}
|
||||
|
||||
public RagingSwordtooth(final RagingSwordtooth card) {
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ public class ScuttlingDoomEngine extends CardImpl {
|
|||
// Scuttling Doom Engine can't be blocked by creatures with power 2 or less.
|
||||
this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));
|
||||
// When Scuttling Doom Engine dies, it deals 6 damage to target opponnent
|
||||
Ability ability = new DiesTriggeredAbility(new DamageTargetEffect(6), false);
|
||||
Ability ability = new DiesTriggeredAbility(new DamageTargetEffect(6, "it"), false);
|
||||
ability.addTarget(new TargetOpponent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class SellSwordBrute extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// When Sell-Sword Brute dies, it deals 2 damage to you.
|
||||
this.addAbility(new DiesTriggeredAbility(new DamageControllerEffect(2), false));
|
||||
this.addAbility(new DiesTriggeredAbility(new DamageControllerEffect(2, "it"), false));
|
||||
}
|
||||
|
||||
public SellSwordBrute(final SellSwordBrute card) {
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public class Showstopper extends CardImpl {
|
|||
|
||||
|
||||
// Until end of turn, creatures you control gain "When this creature dies, it deals 2 damage to target creature an opponent controls."
|
||||
TriggeredAbility ability = new DiesTriggeredAbility(new DamageTargetEffect(2), false);
|
||||
TriggeredAbility ability = new DiesTriggeredAbility(new DamageTargetEffect(2, "it"), false);
|
||||
Target target = new TargetCreaturePermanent(filter2);
|
||||
ability.addTarget(target);
|
||||
Effect effect = new GainAbilityControlledEffect(ability, Duration.EndOfTurn, filter);
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ public class SkirkMarauder extends CardImpl {
|
|||
this.addAbility(new MorphAbility(this, new ManaCostsImpl("{2}{R}")));
|
||||
|
||||
// When Skirk Marauder is turned face up, it deals 2 damage to target creature or player.
|
||||
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new DamageTargetEffect(2));
|
||||
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new DamageTargetEffect(2, "it"));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ public class SkysovereignConsulFlagship extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever Skysovereign, Consul Flagship enters the battlefield or attacks, it deals 3 damage to target creature or planeswalker an opponent controls.
|
||||
Ability ability = new EntersBattlefieldOrAttacksSourceTriggeredAbility(new DamageTargetEffect(3));
|
||||
Ability ability = new EntersBattlefieldOrAttacksSourceTriggeredAbility(new DamageTargetEffect(3, "it"));
|
||||
ability.addTarget(new TargetCreatureOrPlaneswalker(1, 1, filter, false));
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ public class SorrowsPath extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Whenever Sorrow's Path becomes tapped, it deals 2 damage to you and each creature you control.
|
||||
Ability ability2 = new BecomesTappedSourceTriggeredAbility(new DamageControllerEffect(2 ));
|
||||
Ability ability2 = new BecomesTappedSourceTriggeredAbility(new DamageControllerEffect(2 , "it"));
|
||||
ability2.addEffect(new DamageAllEffect(2, new FilterControlledCreaturePermanent()).setText("and each creature you control"));
|
||||
this.addAbility(ability2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ public class Sparkcaster extends CardImpl {
|
|||
// When Sparkcaster enters the battlefield, return a red or green creature you control to its owner's hand.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
|
||||
// When Sparkcaster enters the battlefield, it deals 1 damage to target player.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1), false);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1, "it"), false);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class SpiresideInfiltrator extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Whenever Spireside Infiltrator becomes tapped, it deals one damage to each opponent.
|
||||
this.addAbility(new BecomesTappedSourceTriggeredAbility(new DamagePlayersEffect(1, TargetController.OPPONENT)));
|
||||
this.addAbility(new BecomesTappedSourceTriggeredAbility(new DamagePlayersEffect(1, TargetController.OPPONENT, "it")));
|
||||
}
|
||||
|
||||
public SpiresideInfiltrator(final SpiresideInfiltrator card) {
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public class Spitebellows extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// When Spitebellows leaves the battlefield, it deals 6 damage to target creature.
|
||||
Ability ability = new LeavesBattlefieldTriggeredAbility(new DamageTargetEffect(6), false);
|
||||
Ability ability = new LeavesBattlefieldTriggeredAbility(new DamageTargetEffect(6, "it"), false);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
// Evoke {1}{R}{R}
|
||||
|
|
|
|||
67
Mage.Sets/src/mage/cards/s/StormFleetSprinter.java
Normal file
67
Mage.Sets/src/mage/cards/s/StormFleetSprinter.java
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
* 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.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.keyword.CantBeBlockedSourceAbility;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JayDi85
|
||||
*/
|
||||
public class StormFleetSprinter extends CardImpl {
|
||||
|
||||
public StormFleetSprinter(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{R}");
|
||||
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.PIRATE);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// Storm Fleet Sprinter can’t be blocked.
|
||||
this.addAbility(new CantBeBlockedSourceAbility());
|
||||
}
|
||||
|
||||
public StormFleetSprinter(final StormFleetSprinter card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StormFleetSprinter copy() {
|
||||
return new StormFleetSprinter(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -64,7 +64,7 @@ public class SubterraneanShambler extends CardImpl {
|
|||
this.addAbility(new EchoAbility("{3}{R}"));
|
||||
|
||||
// When Subterranean Shambler enters the battlefield or leaves the battlefield, it deals 1 damage to each creature without flying.
|
||||
this.addAbility(new EntersBattlefieldOrLeavesSourceTriggeredAbility(new DamageAllEffect(1, filter), false));
|
||||
this.addAbility(new EntersBattlefieldOrLeavesSourceTriggeredAbility(new DamageAllEffect(1, "it", filter), false));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ public class SunscorchedDesert extends CardImpl {
|
|||
this.subtype.add(SubType.DESERT);
|
||||
|
||||
// When Sunscorced Desert enters the battlefield, it deals 1 damage to target player.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1));
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1, "it"));
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public class ThorncasterSliver extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Sliver creatures you control have "Whenever this creature attacks, it deals 1 damage to target creature or player."
|
||||
Ability ability = new AttacksTriggeredAbility(new DamageTargetEffect(1), false);
|
||||
Ability ability = new AttacksTriggeredAbility(new DamageTargetEffect(1, "it"), false);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new GainAbilityControlledEffect(ability,
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class ThornscapeBattlemage extends CardImpl {
|
|||
this.addAbility(kickerAbility);
|
||||
|
||||
// When {this} enters the battlefield, if it was kicked with its {R} kicker, it deals 2 damage to target creature or player.
|
||||
TriggeredAbility ability1 = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2));
|
||||
TriggeredAbility ability1 = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2, "it"));
|
||||
ability1.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability1, new KickedCostCondition("{R}"),
|
||||
"When {this} enters the battlefield, if it was kicked with its {R} kicker, it deals 2 damage to target creature or player."));
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public class ThunderDragon extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// When Thunder Dragon enters the battlefield, it deals 3 damage to each creature without flying.
|
||||
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DamageAllEffect(3, filter));
|
||||
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DamageAllEffect(3, "it", filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ public class ThundermawHellkite extends CardImpl {
|
|||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// When Thundermaw Hellkite enters the battlefield, it deals 1 damage to each creature with flying your opponents control. Tap those creatures.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageAllEffect(1, filter));
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageAllEffect(1, "it", filter));
|
||||
ability.addEffect(new TapAllEffect(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public class TrialOfZeal extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}");
|
||||
|
||||
// When Trial of Zeal enters the battlefield, it deals 3 damage to target creature or player.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3));
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3, "it"));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class TyrantsFamiliar extends CardImpl {
|
|||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// Lieutenant - As long as you control your commander, Tyrant's Familiar gets +2/+2 and has "Whenever Tyrant's Familiar attacks, it deals 7 damage to target creature defending player controls."
|
||||
Ability gainedAbility = new AttacksTriggeredAbility(new DamageTargetEffect(7), false);
|
||||
Ability gainedAbility = new AttacksTriggeredAbility(new DamageTargetEffect(7, "it"), false);
|
||||
gainedAbility.addTarget(new TargetCreaturePermanent());
|
||||
ContinuousEffect effect = new GainAbilitySourceEffect(gainedAbility);
|
||||
effect.setText("and has \"Whenever {this} attacks, it deals 7 damage to target creature defending player controls\"");
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class VoraciousDragon extends CardImpl {
|
|||
this.addAbility(new DevourAbility(DevourFactor.Devour1));
|
||||
|
||||
// When Voracious Dragon enters the battlefield, it deals damage to target creature or player equal to twice the number of Goblins it devoured.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(new TwiceDevouredGoblins()), false);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(new TwiceDevouredGoblins(), "it"), false);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,9 +66,7 @@ public class WalkingBallista extends CardImpl {
|
|||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), new GenericManaCost(4)));
|
||||
|
||||
// Remove a +1/+1 counter from Walking Ballista: It deals 1 damage to target creature or player.
|
||||
Effect effect = new DamageTargetEffect(1);
|
||||
effect.setText("It deals 1 damage to target creature or player");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1, "It"), new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class WhiptailMoloch extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// When Whiptail Moloch enters the battlefield, it deals 3 damage to target creature you control.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3), false);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3, "it"), false);
|
||||
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,10 +64,13 @@ public class RivalsOfIxalan extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Captain's Hook", 177, Rarity.RARE, mage.cards.c.CaptainsHook.class));
|
||||
cards.add(new SetCardInfo("Cinder Barrens", 205, Rarity.RARE, mage.cards.c.CinderBarrens.class));
|
||||
cards.add(new SetCardInfo("Deeproot Elite", 127, Rarity.RARE, mage.cards.d.DeeprootElite.class));
|
||||
cards.add(new SetCardInfo("Dire Fleet Neckbreaker", 156, Rarity.UNCOMMON, mage.cards.d.DireFleetNeckbreaker.class));
|
||||
cards.add(new SetCardInfo("Dusk Charger", 69, Rarity.COMMON, mage.cards.d.DuskCharger.class));
|
||||
cards.add(new SetCardInfo("Dusk Legion Zealot", 70, Rarity.COMMON, mage.cards.d.DuskLegionZealot.class));
|
||||
cards.add(new SetCardInfo("Elenda, the Dusk Rose", 157, Rarity.MYTHIC, mage.cards.e.ElendaTheDuskRose.class));
|
||||
cards.add(new SetCardInfo("Etali, Primal Storm", 100, Rarity.RARE, mage.cards.e.EtaliPrimalStorm.class));
|
||||
cards.add(new SetCardInfo("Evolving Wilds", 186, Rarity.COMMON, mage.cards.e.EvolvingWilds.class));
|
||||
cards.add(new SetCardInfo("Fanatical Firebrand", 101, Rarity.COMMON, mage.cards.f.FanaticalFirebrand.class));
|
||||
cards.add(new SetCardInfo("Forerunner of the Coalition", 72, Rarity.UNCOMMON, mage.cards.f.ForerunnerOfTheCoalition.class));
|
||||
cards.add(new SetCardInfo("Forerunner of the Empire", 102, Rarity.UNCOMMON, mage.cards.f.ForerunnerOfTheEmpire.class));
|
||||
cards.add(new SetCardInfo("Forerunner of the Heralds", 129, Rarity.UNCOMMON, mage.cards.f.ForerunnerOfTheHeralds.class));
|
||||
|
|
@ -92,6 +95,7 @@ public class RivalsOfIxalan extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Silvergill Adept", 53, Rarity.UNCOMMON, mage.cards.s.SilvergillAdept.class));
|
||||
cards.add(new SetCardInfo("Skymarcher Aspirant", 21, Rarity.UNCOMMON, mage.cards.s.SkymarcherAspirant.class));
|
||||
cards.add(new SetCardInfo("Sphinx's Decree", 24, Rarity.RARE, mage.cards.s.SphinxsDecree.class));
|
||||
cards.add(new SetCardInfo("Storm Fleet Sprinter", 172, Rarity.UNCOMMON, mage.cards.s.StormFleetSprinter.class));
|
||||
cards.add(new SetCardInfo("Storm the Vault", 173, Rarity.RARE, mage.cards.s.StormTheVault.class));
|
||||
cards.add(new SetCardInfo("Swab Goblin", 203, Rarity.COMMON, mage.cards.s.SwabGoblin.class));
|
||||
cards.add(new SetCardInfo("Tetzimoc, Primal Death", 86, Rarity.RARE, mage.cards.t.TetzimocPrimalDeath.class));
|
||||
|
|
|
|||
|
|
@ -121,6 +121,7 @@ public class Weatherlight extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Guided Strike", 132, Rarity.COMMON, mage.cards.g.GuidedStrike.class));
|
||||
cards.add(new SetCardInfo("Harvest Wurm", 72, Rarity.COMMON, mage.cards.h.HarvestWurm.class));
|
||||
cards.add(new SetCardInfo("Haunting Misery", 13, Rarity.COMMON, mage.cards.h.HauntingMisery.class));
|
||||
cards.add(new SetCardInfo("Heart of Bogardan", 106, Rarity.RARE, mage.cards.h.HeartOfBogardan.class));
|
||||
cards.add(new SetCardInfo("Heat Stroke", 107, Rarity.RARE, mage.cards.h.HeatStroke.class));
|
||||
cards.add(new SetCardInfo("Heavy Ballista", 133, Rarity.COMMON, mage.cards.h.HeavyBallista.class));
|
||||
cards.add(new SetCardInfo("Hidden Horror", 14, Rarity.UNCOMMON, mage.cards.h.HiddenHorror.class));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue