Merge branch 'master' into Zzooouhh-rix-1

This commit is contained in:
LevelX2 2018-01-05 10:44:06 +01:00 committed by GitHub
commit 67aa13bcd5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
56 changed files with 553 additions and 66 deletions

View 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);
}
}

View 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);
}
}

View 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);
}
}

View file

@ -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);

View file

@ -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);

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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> &mdash; 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.

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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));
}

View file

@ -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) {

View 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);
}
}

View file

@ -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);

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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) {

View file

@ -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);

View file

@ -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);

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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(

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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) {

View file

@ -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);
}

View file

@ -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) {

View file

@ -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);

View file

@ -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);
}

View file

@ -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);

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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) {

View file

@ -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}

View 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 cant be blocked.
this.addAbility(new CantBeBlockedSourceAbility());
}
public StormFleetSprinter(final StormFleetSprinter card) {
super(card);
}
@Override
public StormFleetSprinter copy() {
return new StormFleetSprinter(this);
}
}

View file

@ -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));
}

View file

@ -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);

View file

@ -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,

View file

@ -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."));

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);

View file

@ -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\"");

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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));

View file

@ -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));