mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 13:19:18 -08:00
Merge branch 'magefree/master'
This commit is contained in:
commit
ac6a289275
95 changed files with 2166 additions and 145 deletions
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Forest10 extends mage.cards.basiclands.Forest {
|
|||
public Forest10(UUID ownerId) {
|
||||
super(ownerId, "274b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest10(final Forest10 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Forest6 extends mage.cards.basiclands.Forest {
|
|||
public Forest6(UUID ownerId) {
|
||||
super(ownerId, "270b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest6(final Forest6 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Forest7 extends mage.cards.basiclands.Forest {
|
|||
public Forest7(UUID ownerId) {
|
||||
super(ownerId, "271b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest7(final Forest7 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Forest8 extends mage.cards.basiclands.Forest {
|
|||
public Forest8(UUID ownerId) {
|
||||
super(ownerId, "272b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest8(final Forest8 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Forest9 extends mage.cards.basiclands.Forest {
|
|||
public Forest9(UUID ownerId) {
|
||||
super(ownerId, "273b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest9(final Forest9 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Island10 extends mage.cards.basiclands.Island {
|
|||
public Island10(UUID ownerId) {
|
||||
super(ownerId, "259b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island10(final Island10 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Island6 extends mage.cards.basiclands.Island {
|
|||
public Island6(UUID ownerId) {
|
||||
super(ownerId, "255b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island6(final Island6 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Island7 extends mage.cards.basiclands.Island {
|
|||
public Island7(UUID ownerId) {
|
||||
super(ownerId, "256b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island7(final Island7 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Island8 extends mage.cards.basiclands.Island {
|
|||
public Island8(UUID ownerId) {
|
||||
super(ownerId, "257b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island8(final Island8 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Island9 extends mage.cards.basiclands.Island {
|
|||
public Island9(UUID ownerId) {
|
||||
super(ownerId, "258b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island9(final Island9 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Mountain10 extends mage.cards.basiclands.Mountain {
|
|||
public Mountain10(UUID ownerId) {
|
||||
super(ownerId, "269b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain10(final Mountain10 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Mountain6 extends mage.cards.basiclands.Mountain {
|
|||
public Mountain6(UUID ownerId) {
|
||||
super(ownerId, "265b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain6(final Mountain6 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Mountain7 extends mage.cards.basiclands.Mountain {
|
|||
public Mountain7(UUID ownerId) {
|
||||
super(ownerId, "266b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain7(final Mountain7 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Mountain8 extends mage.cards.basiclands.Mountain {
|
|||
public Mountain8(UUID ownerId) {
|
||||
super(ownerId, "267b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain8(final Mountain8 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Mountain9 extends mage.cards.basiclands.Mountain {
|
|||
public Mountain9(UUID ownerId) {
|
||||
super(ownerId, "268b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain9(final Mountain9 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Plains10 extends mage.cards.basiclands.Plains {
|
|||
public Plains10(UUID ownerId) {
|
||||
super(ownerId, "254b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains10(final Plains10 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Plains6 extends mage.cards.basiclands.Plains {
|
|||
public Plains6(UUID ownerId) {
|
||||
super(ownerId, "250b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains6(final Plains6 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Plains7 extends mage.cards.basiclands.Plains {
|
|||
public Plains7(UUID ownerId) {
|
||||
super(ownerId, "251b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains7(final Plains7 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Plains8 extends mage.cards.basiclands.Plains {
|
|||
public Plains8(UUID ownerId) {
|
||||
super(ownerId, "252b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains8(final Plains8 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Plains9 extends mage.cards.basiclands.Plains {
|
|||
public Plains9(UUID ownerId) {
|
||||
super(ownerId, "253b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains9(final Plains9 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Swamp10 extends mage.cards.basiclands.Swamp {
|
|||
public Swamp10(UUID ownerId) {
|
||||
super(ownerId, "264b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp10(final Swamp10 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Swamp6 extends mage.cards.basiclands.Swamp {
|
|||
public Swamp6(UUID ownerId) {
|
||||
super(ownerId, "260b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp6(final Swamp6 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Swamp7 extends mage.cards.basiclands.Swamp {
|
|||
public Swamp7(UUID ownerId) {
|
||||
super(ownerId, "261b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp7(final Swamp7 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Swamp8 extends mage.cards.basiclands.Swamp {
|
|||
public Swamp8(UUID ownerId) {
|
||||
super(ownerId, "262b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp8(final Swamp8 card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
*/
|
||||
package mage.sets.battleforzendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Swamp9 extends mage.cards.basiclands.Swamp {
|
|||
public Swamp9(UUID ownerId) {
|
||||
super(ownerId, "263b");
|
||||
this.expansionSetCode = "BFZ";
|
||||
this.frameStyle = FrameStyle.BFZ_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp9(final Swamp9 card) {
|
||||
|
|
|
|||
|
|
@ -57,8 +57,8 @@ public class SoulSeparator extends CardImpl {
|
|||
super(ownerId, 199, "Soul Separator", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
this.expansionSetCode = "EMN";
|
||||
|
||||
// {5}, {T}, Sacrifice Soul Separator: Exile target creature card from your graveyard.
|
||||
// Put a token onto the battlefield that's a copy of that card except it's 1/1, it's a Spirit in addition to its other types, and it has flying.
|
||||
// {5}, {T}, Sacrifice Soul Separator: Exile target creature card from your graveyard.
|
||||
// Put a token onto the battlefield that's a copy of that card except it's 1/1, it's a Spirit in addition to its other types, and it has flying.
|
||||
// Put a black Zombie creature token onto the battlefield with power equal to that card's power and toughness equal that card's toughness.
|
||||
PutTokenOntoBattlefieldCopyTargetEffect copyEffect = new PutTokenOntoBattlefieldCopyTargetEffect(null, null, false, 1, false, false, null, 1, 1, true);
|
||||
copyEffect.setAdditionalSubType("Spirit");
|
||||
|
|
@ -85,7 +85,7 @@ class SoulSeparatorEffect extends OneShotEffect {
|
|||
|
||||
public SoulSeparatorEffect() {
|
||||
super(Outcome.PutCreatureInPlay);
|
||||
this.staticText = "Put a black Zombie creature token onto the battlefield with power equal to that card's power and toughness equal that card's toughness.";
|
||||
this.staticText = "Put a black Zombie creature token onto the battlefield with power equal to that card's power and toughness equal that card's toughness";
|
||||
}
|
||||
|
||||
public SoulSeparatorEffect(final SoulSeparatorEffect effect) {
|
||||
|
|
|
|||
99
Mage.Sets/src/mage/sets/kaladesh/AetherfluxReservoir.java
Normal file
99
Mage.Sets/src/mage/sets/kaladesh/AetherfluxReservoir.java
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.costs.common.PayLifeCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.watchers.common.CastSpellLastTurnWatcher;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class AetherfluxReservoir extends CardImpl {
|
||||
|
||||
public AetherfluxReservoir(UUID ownerId) {
|
||||
super(ownerId, 192, "Aetherflux Reservoir", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
this.expansionSetCode = "KLD";
|
||||
|
||||
// Whenever you cast a spell, you gain 1 life for each spell you've cast this turn.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new GainLifeEffect(new AetherfluxReservoirDynamicValue()), false));
|
||||
|
||||
// Pay 50 life: Aetherflux Reservoir deals 50 damage to target creature or player.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(50), new PayLifeCost(50));
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public AetherfluxReservoir(final AetherfluxReservoir card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AetherfluxReservoir copy() {
|
||||
return new AetherfluxReservoir(this);
|
||||
}
|
||||
}
|
||||
|
||||
class AetherfluxReservoirDynamicValue implements DynamicValue {
|
||||
|
||||
@Override
|
||||
public int calculate(Game game, Ability sourceAbility, Effect effect) {
|
||||
CastSpellLastTurnWatcher watcher = (CastSpellLastTurnWatcher) game.getState().getWatchers().get(CastSpellLastTurnWatcher.class.getName());
|
||||
return watcher.getAmountOfSpellsPlayerCastOnCurrentTurn(sourceAbility.getControllerId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public AetherfluxReservoirDynamicValue copy() {
|
||||
return new AetherfluxReservoirDynamicValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "1";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "spell you've cast this turn";
|
||||
}
|
||||
|
||||
}
|
||||
121
Mage.Sets/src/mage/sets/kaladesh/AetherworksMarvel.java
Normal file
121
Mage.Sets/src/mage/sets/kaladesh/AetherworksMarvel.java
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.PayEnergyCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.Cards;
|
||||
import mage.cards.CardsImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterNonlandCard;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetCard;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class AetherworksMarvel extends CardImpl {
|
||||
|
||||
public AetherworksMarvel(UUID ownerId) {
|
||||
super(ownerId, 193, "Aetherworks Marvel", Rarity.MYTHIC, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
this.expansionSetCode = "KLD";
|
||||
this.supertype.add("Legendary");
|
||||
|
||||
// Whenever a permanent you control is put into a graveyard, you get {E}.
|
||||
this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(new GetEnergyCountersControllerEffect(1), false, new FilterPermanent("a permanent"), false));
|
||||
|
||||
// {T}, Pay {E}{E}{E}{E}{E}{E}: Look at the top six cards of your library. You may cast a card from among them without paying its mana cost. Put the rest on the bottom of your library in a random order.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AetherworksMarvelEffect(), new TapSourceCost());
|
||||
ability.addCost(new PayEnergyCost(6));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public AetherworksMarvel(final AetherworksMarvel card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AetherworksMarvel copy() {
|
||||
return new AetherworksMarvel(this);
|
||||
}
|
||||
}
|
||||
|
||||
class AetherworksMarvelEffect extends OneShotEffect {
|
||||
|
||||
AetherworksMarvelEffect() {
|
||||
super(Outcome.PlayForFree);
|
||||
this.staticText = "Look at the top six cards of your library. You may cast a card from among them without paying its mana cost. Put the rest on the bottom of your library in a random order";
|
||||
}
|
||||
|
||||
AetherworksMarvelEffect(final AetherworksMarvelEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AetherworksMarvelEffect copy() {
|
||||
return new AetherworksMarvelEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
if (controller != null) {
|
||||
Set<Card> cardsSet = controller.getLibrary().getTopCards(game, 6);
|
||||
Cards cards = new CardsImpl();
|
||||
for (Card card : cardsSet) {
|
||||
cards.add(card);
|
||||
}
|
||||
TargetCard target = new TargetCardInLibrary(0, 1, new FilterNonlandCard("card to cast without paying its mana cost"));
|
||||
if (controller.choose(Outcome.PlayForFree, cards, target, game)) {
|
||||
Card card = controller.getLibrary().getCard(target.getFirstTarget(), game);
|
||||
if (card != null && controller.cast(card.getSpellAbility(), game, true)) {
|
||||
cards.remove(card);
|
||||
}
|
||||
}
|
||||
controller.putCardsOnBottomOfLibrary(cards, game, source, false);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
206
Mage.Sets/src/mage/sets/kaladesh/AnimationModule.java
Normal file
206
Mage.Sets/src/mage/sets/kaladesh/AnimationModule.java
Normal file
|
|
@ -0,0 +1,206 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.choices.Choice;
|
||||
import mage.choices.ChoiceImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.ServoToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetPermanentOrPlayer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class AnimationModule extends CardImpl {
|
||||
|
||||
public AnimationModule(UUID ownerId) {
|
||||
super(ownerId, 194, "Animation Module", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{1}");
|
||||
this.expansionSetCode = "KLD";
|
||||
|
||||
// Whenever one or more +1/+1 counters are placed on a permanent you control, you may pay {1}. If you do, create a 1/1 colorless Servo artifact creature token.
|
||||
this.addAbility(new AnimationModuleTriggeredAbility());
|
||||
|
||||
// {3}, {T}: Choose a counter on target permanent or player. Give that permanent or player another counter of that kind.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AnimationModuleEffect(), new GenericManaCost(3));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetPermanentOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public AnimationModule(final AnimationModule card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimationModule copy() {
|
||||
return new AnimationModule(this);
|
||||
}
|
||||
}
|
||||
|
||||
class AnimationModuleTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
AnimationModuleTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DoIfCostPaid(new CreateTokenEffect(new ServoToken()), new GenericManaCost(1)), false);
|
||||
}
|
||||
|
||||
AnimationModuleTriggeredAbility(final AnimationModuleTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimationModuleTriggeredAbility copy() {
|
||||
return new AnimationModuleTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == GameEvent.EventType.COUNTERS_ADDED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getData().equals(CounterType.P1P1.getName())) {
|
||||
Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId());
|
||||
if (permanent == null) {
|
||||
permanent = game.getPermanentEntering(event.getTargetId());
|
||||
}
|
||||
return permanent != null && permanent.getControllerId().equals(this.getControllerId());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever one or more +1/+1 counters are placed on a permanent you control, you may pay {1}. If you do, create a 1/1 colorless Servo artifact creature token.";
|
||||
}
|
||||
}
|
||||
|
||||
class AnimationModuleEffect extends OneShotEffect {
|
||||
|
||||
AnimationModuleEffect() {
|
||||
super(Outcome.Neutral);
|
||||
this.staticText = "Choose a counter on target permanent or player. Give that permanent or player another counter of that kind";
|
||||
}
|
||||
|
||||
AnimationModuleEffect(final AnimationModuleEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimationModuleEffect copy() {
|
||||
return new AnimationModuleEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
if (controller != null) {
|
||||
Permanent permanent = game.getPermanent(this.getTargetPointer().getFirst(game, source));
|
||||
if (permanent != null) {
|
||||
if (permanent.getCounters(game).size() > 0) {
|
||||
if (permanent.getCounters(game).size() == 1) {
|
||||
for (Counter counter : permanent.getCounters(game).values()) {
|
||||
Counter newCounter = new Counter(counter.getName());
|
||||
permanent.addCounters(newCounter, game);
|
||||
}
|
||||
}
|
||||
else {
|
||||
Choice choice = new ChoiceImpl(true);
|
||||
Set<String> choices = new HashSet<>(permanent.getCounters(game).size());
|
||||
for (Counter counter : permanent.getCounters(game).values()) {
|
||||
choices.add(counter.getName());
|
||||
}
|
||||
choice.setChoices(choices);
|
||||
choice.setMessage("Choose a counter");
|
||||
controller.choose(Outcome.Benefit, choice, game);
|
||||
for (Counter counter : permanent.getCounters(game).values()) {
|
||||
if (counter.getName().equals(choice.getChoice())) {
|
||||
Counter newCounter = new Counter(counter.getName());
|
||||
permanent.addCounters(newCounter, game);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Player player = game.getPlayer(this.getTargetPointer().getFirst(game, source));
|
||||
if (player != null) {
|
||||
if (player.getCounters().size() > 0) {
|
||||
if (player.getCounters().size() == 1) {
|
||||
for (Counter counter : player.getCounters().values()) {
|
||||
Counter newCounter = new Counter(counter.getName());
|
||||
player.addCounters(newCounter, game);
|
||||
}
|
||||
}
|
||||
else {
|
||||
Choice choice = new ChoiceImpl(true);
|
||||
Set<String> choices = new HashSet<>(player.getCounters().size());
|
||||
for (Counter counter : player.getCounters().values()) {
|
||||
choices.add(counter.getName());
|
||||
}
|
||||
choice.setChoices(choices);
|
||||
choice.setMessage("Choose a counter");
|
||||
controller.choose(Outcome.Benefit, choice, game);
|
||||
for (Counter counter : player.getCounters().values()) {
|
||||
if (counter.getName().equals(choice.getChoice())) {
|
||||
Counter newCounter = new Counter(counter.getName());
|
||||
player.addCounters(newCounter, game);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
70
Mage.Sets/src/mage/sets/kaladesh/CogworkersPuzzleknot.java
Normal file
70
Mage.Sets/src/mage/sets/kaladesh/CogworkersPuzzleknot.java
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.ServoToken;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class CogworkersPuzzleknot extends CardImpl {
|
||||
|
||||
public CogworkersPuzzleknot(UUID ownerId) {
|
||||
super(ownerId, 201, "Cogworker's Puzzleknot", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
|
||||
this.expansionSetCode = "KLD";
|
||||
|
||||
// When Cogworker's Puzzleknot enters the battlefield, create a 1/1 colorless Servo artifact creature token.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ServoToken())));
|
||||
|
||||
// {1}{W}, Sacrifice Cogworker's Puzzleknot: Create a 1/1 colorless Servo artifact creature token.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ServoToken()), new ManaCostsImpl<>("{1}{W}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public CogworkersPuzzleknot(final CogworkersPuzzleknot card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CogworkersPuzzleknot copy() {
|
||||
return new CogworkersPuzzleknot(this);
|
||||
}
|
||||
}
|
||||
72
Mage.Sets/src/mage/sets/kaladesh/DecoctionModule.java
Normal file
72
Mage.Sets/src/mage/sets/kaladesh/DecoctionModule.java
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.CreatureEntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class DecoctionModule extends CardImpl {
|
||||
|
||||
public DecoctionModule(UUID ownerId) {
|
||||
super(ownerId, 205, "Decoction Module", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
|
||||
this.expansionSetCode = "KLD";
|
||||
|
||||
// Whenever a creature enters the battlefield under your control, you get {E}.
|
||||
this.addAbility(new CreatureEntersBattlefieldTriggeredAbility(new GetEnergyCountersControllerEffect(1)));
|
||||
|
||||
// {4}, {T}: Return target creature you control to its owner's hand.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new GenericManaCost(4));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public DecoctionModule(final DecoctionModule card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DecoctionModule copy() {
|
||||
return new DecoctionModule(this);
|
||||
}
|
||||
}
|
||||
76
Mage.Sets/src/mage/sets/kaladesh/DemolitionStomper.java
Normal file
76
Mage.Sets/src/mage/sets/kaladesh/DemolitionStomper.java
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleEvasionAbility;
|
||||
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect;
|
||||
import mage.abilities.keyword.CrewAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Rarity;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class DemolitionStomper extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less");
|
||||
static {
|
||||
filter.add(new PowerPredicate(Filter.ComparisonType.LessThan, 3));
|
||||
}
|
||||
|
||||
public DemolitionStomper(UUID ownerId) {
|
||||
super(ownerId, 206, "Demolition Stomper", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{6}");
|
||||
this.expansionSetCode = "KLD";
|
||||
this.subtype.add("Vehicle");
|
||||
this.power = new MageInt(10);
|
||||
this.toughness = new MageInt(7);
|
||||
|
||||
// Demolition Stomper can't be blocked by creatures with power 2 or less.
|
||||
this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));
|
||||
|
||||
// Crew 5
|
||||
this.addAbility(new CrewAbility(5));
|
||||
}
|
||||
|
||||
public DemolitionStomper(final DemolitionStomper card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DemolitionStomper copy() {
|
||||
return new DemolitionStomper(this);
|
||||
}
|
||||
}
|
||||
110
Mage.Sets/src/mage/sets/kaladesh/FabricationModule.java
Normal file
110
Mage.Sets/src/mage/sets/kaladesh/FabricationModule.java
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class FabricationModule extends CardImpl {
|
||||
|
||||
public FabricationModule(UUID ownerId) {
|
||||
super(ownerId, 211, "Fabrication Module", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
this.expansionSetCode = "KLD";
|
||||
|
||||
// Whenever you get one or more {E}, put a +1/+1 counter on target creature you control.
|
||||
Ability ability = new FabricationModuleTriggeredAbility();
|
||||
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
||||
// {4}, {T}: You get {E}.
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GetEnergyCountersControllerEffect(1), new GenericManaCost(4));
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public FabricationModule(final FabricationModule card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FabricationModule copy() {
|
||||
return new FabricationModule(this);
|
||||
}
|
||||
}
|
||||
|
||||
class FabricationModuleTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
FabricationModuleTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance()), false);
|
||||
}
|
||||
|
||||
FabricationModuleTriggeredAbility(final FabricationModuleTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FabricationModuleTriggeredAbility copy() {
|
||||
return new FabricationModuleTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == GameEvent.EventType.COUNTERS_ADDED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getData().equals(CounterType.ENERGY.getName())) {
|
||||
return event.getTargetId() == this.getControllerId();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you get one or more {E}, put a +1/+1 counter on target creature you control.";
|
||||
}
|
||||
}
|
||||
77
Mage.Sets/src/mage/sets/kaladesh/FireforgersPuzzleknot.java
Normal file
77
Mage.Sets/src/mage/sets/kaladesh/FireforgersPuzzleknot.java
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class FireforgersPuzzleknot extends CardImpl {
|
||||
|
||||
public FireforgersPuzzleknot(UUID ownerId) {
|
||||
super(ownerId, 213, "Fireforger's Puzzleknot", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
|
||||
this.expansionSetCode = "KLD";
|
||||
|
||||
// When Fireforger's Puzzleknot enters the battlefield, 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 EntersBattlefieldTriggeredAbility(effect);
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
|
||||
// {2}{R}, Sacrifice Fireforger's Puzzleknot: It deals 1 damage to target creature or player.
|
||||
effect.setText("It deals 1 damage to target creature or player");
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{R}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreatureOrPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public FireforgersPuzzleknot(final FireforgersPuzzleknot card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FireforgersPuzzleknot copy() {
|
||||
return new FireforgersPuzzleknot(this);
|
||||
}
|
||||
}
|
||||
84
Mage.Sets/src/mage/sets/kaladesh/FleetwheelCruiser.java
Normal file
84
Mage.Sets/src/mage/sets/kaladesh/FleetwheelCruiser.java
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
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.continuous.AddCardTypeSourceEffect;
|
||||
import mage.abilities.keyword.CrewAbility;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Rarity;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class FleetwheelCruiser extends CardImpl {
|
||||
|
||||
public FleetwheelCruiser(UUID ownerId) {
|
||||
super(ownerId, 214, "Fleetwheel Cruiser", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
this.expansionSetCode = "KLD";
|
||||
this.subtype.add("Vehicle");
|
||||
this.power = new MageInt(5);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// When Fleetwheel Cruiser enters the battlefield, it becomes an artifact creature until the end of turn.
|
||||
Effect effect = new AddCardTypeSourceEffect(CardType.ARTIFACT, Duration.EndOfTurn);
|
||||
effect.setText("it becomes an artifact");
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(effect);
|
||||
effect = new AddCardTypeSourceEffect(CardType.CREATURE, Duration.EndOfTurn);
|
||||
effect.setText(" creature until end of turn");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
|
||||
// Crew 2
|
||||
this.addAbility(new CrewAbility(2));
|
||||
}
|
||||
|
||||
public FleetwheelCruiser(final FleetwheelCruiser card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FleetwheelCruiser copy() {
|
||||
return new FleetwheelCruiser(this);
|
||||
}
|
||||
}
|
||||
90
Mage.Sets/src/mage/sets/kaladesh/GhirapurOrrery.java
Normal file
90
Mage.Sets/src/mage/sets/kaladesh/GhirapurOrrery.java
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.IntCompareCondition;
|
||||
import mage.abilities.decorator.ConditionalTriggeredAbility;
|
||||
import mage.abilities.effects.common.DrawCardTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.PlayAdditionalLandsAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class GhirapurOrrery extends CardImpl {
|
||||
|
||||
public GhirapurOrrery(UUID ownerId) {
|
||||
super(ownerId, 216, "Ghirapur Orrery", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
this.expansionSetCode = "KLD";
|
||||
|
||||
// Each player may play an additional land on each of his or her turns.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PlayAdditionalLandsAllEffect()));
|
||||
|
||||
// At the beginning of each player's upkeep, if that player has no cards in hand, that player draws three cards.
|
||||
this.addAbility(new ConditionalTriggeredAbility(
|
||||
new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DrawCardTargetEffect(3), TargetController.ANY, false, true),
|
||||
new GhirapurOrreryCondition(),
|
||||
"At the beginning of each player's upkeep, if that player has no cards in hand, that player draws three cards."));
|
||||
}
|
||||
|
||||
public GhirapurOrrery(final GhirapurOrrery card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GhirapurOrrery copy() {
|
||||
return new GhirapurOrrery(this);
|
||||
}
|
||||
}
|
||||
|
||||
class GhirapurOrreryCondition extends IntCompareCondition {
|
||||
|
||||
GhirapurOrreryCondition() {
|
||||
super(ComparisonType.Equal, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getInputValue(Game game, Ability source) {
|
||||
Player activePlayer = game.getPlayer(game.getActivePlayerId());
|
||||
if (activePlayer != null) {
|
||||
return activePlayer.getHand().size();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
78
Mage.Sets/src/mage/sets/kaladesh/GlassblowersPuzzleknot.java
Normal file
78
Mage.Sets/src/mage/sets/kaladesh/GlassblowersPuzzleknot.java
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
|
||||
import mage.abilities.effects.keyword.ScryEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class GlassblowersPuzzleknot extends CardImpl {
|
||||
|
||||
public GlassblowersPuzzleknot(UUID ownerId) {
|
||||
super(ownerId, 217, "Glassblower's Puzzleknot", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
|
||||
this.expansionSetCode = "KLD";
|
||||
|
||||
// When Glassblower's Puzzleknot enters the battlefield, scry 2, then you get {E}{E}.
|
||||
Effect scryEffect = new ScryEffect(2);
|
||||
scryEffect.setText("scry 2");
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(scryEffect);
|
||||
Effect energyEffect = new GetEnergyCountersControllerEffect(2);
|
||||
energyEffect.setText(", then you get {E}{E}");
|
||||
ability.addEffect(energyEffect);
|
||||
this.addAbility(ability);
|
||||
|
||||
// {2}{U}, Sacrifice Glassblower's Puzzleknot: Scry 2, then you get {E}{E}.
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, scryEffect, new ManaCostsImpl<>("{2}{U}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addEffect(energyEffect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public GlassblowersPuzzleknot(final GlassblowersPuzzleknot card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GlassblowersPuzzleknot copy() {
|
||||
return new GlassblowersPuzzleknot(this);
|
||||
}
|
||||
}
|
||||
82
Mage.Sets/src/mage/sets/kaladesh/InventorsGoggles.java
Normal file
82
Mage.Sets/src/mage/sets/kaladesh/InventorsGoggles.java
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
||||
import mage.abilities.keyword.EquipAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.SetTargetPointer;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class InventorsGoggles extends CardImpl {
|
||||
|
||||
public InventorsGoggles(UUID ownerId) {
|
||||
super(ownerId, 218, "Inventor's Goggles", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{1}");
|
||||
this.expansionSetCode = "KLD";
|
||||
this.subtype.add("Equipment");
|
||||
|
||||
// Equipped creature gets +1/+2.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 2, Duration.WhileOnBattlefield)));
|
||||
|
||||
// Whenever an Artificer enters the battlefield under your control, you may attach Inventor's Goggles to it.
|
||||
this.addAbility(new EntersBattlefieldAllTriggeredAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new AttachEffect(Outcome.BoostCreature, "attach {this} to it"),
|
||||
new FilterPermanent("Artificer", "Artificer"),
|
||||
true,
|
||||
SetTargetPointer.PERMANENT,
|
||||
null,
|
||||
true));
|
||||
|
||||
// Equip {2}
|
||||
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2)));
|
||||
}
|
||||
|
||||
public InventorsGoggles(final InventorsGoggles card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InventorsGoggles copy() {
|
||||
return new InventorsGoggles(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class MetalspinnersPuzzleknot extends CardImpl {
|
||||
|
||||
public MetalspinnersPuzzleknot(UUID ownerId) {
|
||||
super(ownerId, 221, "Metalspinner's Puzzleknot", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
|
||||
this.expansionSetCode = "KLD";
|
||||
|
||||
// When Metalspinner's Puzzleknot 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);
|
||||
|
||||
// {2}{B}, Sacrifice Metalspinner's Puzzleknot: You draw a card and you lose 1 life.
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, drawEffect, new ManaCostsImpl<>("{2}{B}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addEffect(lifeEffect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public MetalspinnersPuzzleknot(final MetalspinnersPuzzleknot card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MetalspinnersPuzzleknot copy() {
|
||||
return new MetalspinnersPuzzleknot(this);
|
||||
}
|
||||
}
|
||||
70
Mage.Sets/src/mage/sets/kaladesh/OvalchaseDragster.java
Normal file
70
Mage.Sets/src/mage/sets/kaladesh/OvalchaseDragster.java
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.keyword.CrewAbility;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class OvalchaseDragster extends CardImpl {
|
||||
|
||||
public OvalchaseDragster(UUID ownerId) {
|
||||
super(ownerId, 225, "Ovalchase Dragster", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
this.expansionSetCode = "KLD";
|
||||
this.subtype.add("Vehicle");
|
||||
this.power = new MageInt(6);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// Crew 1
|
||||
this.addAbility(new CrewAbility(1));
|
||||
}
|
||||
|
||||
public OvalchaseDragster(final OvalchaseDragster card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OvalchaseDragster copy() {
|
||||
return new OvalchaseDragster(this);
|
||||
}
|
||||
}
|
||||
72
Mage.Sets/src/mage/sets/kaladesh/ParadoxicalOutcome.java
Normal file
72
Mage.Sets/src/mage/sets/kaladesh/ParadoxicalOutcome.java
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.SweepNumber;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.keyword.SweepEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.filter.predicate.permanent.TokenPredicate;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public class ParadoxicalOutcome extends CardImpl {
|
||||
|
||||
public ParadoxicalOutcome(UUID ownerId) {
|
||||
super(ownerId, 60, "Paradoxical Outcome", Rarity.RARE, new CardType[]{CardType.INSTANT}, "{3}{U}");
|
||||
this.expansionSetCode = "KLD";
|
||||
|
||||
// Return any number of target nonland, nontoken permanents you control to their owners' hands. Draw a card for each card returned to your hand this way.
|
||||
FilterPermanent filter = new FilterControlledPermanent(new StringBuilder("any number of of target nonland, nontoken permanents you control").toString());
|
||||
filter.add(Predicates.not(new CardTypePredicate(CardType.LAND)));
|
||||
filter.add(Predicates.not(new TokenPredicate()));
|
||||
|
||||
this.getSpellAbility().addEffect(new SweepEffect(filter, "nonland, nontoken permanents ", false));
|
||||
DynamicValue paradoxicalOutcomeValue = new SweepNumber("nonland, nontoken permanents ", false);
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(paradoxicalOutcomeValue));
|
||||
}
|
||||
|
||||
public ParadoxicalOutcome(final ParadoxicalOutcome card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ParadoxicalOutcome copy() {
|
||||
return new ParadoxicalOutcome(this);
|
||||
}
|
||||
}
|
||||
122
Mage.Sets/src/mage/sets/kaladesh/SkysovereignConsulFlagship.java
Normal file
122
Mage.Sets/src/mage/sets/kaladesh/SkysovereignConsulFlagship.java
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
/*
|
||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
package mage.sets.kaladesh;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.keyword.CrewAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreatureOrPlaneswalkerPermanent;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.target.common.TargetCreatureOrPlaneswalker;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public class SkysovereignConsulFlagship extends CardImpl {
|
||||
|
||||
private static final FilterCreatureOrPlaneswalkerPermanent filter = new FilterCreatureOrPlaneswalkerPermanent("creature or planeswalker an opponent controls");
|
||||
static {
|
||||
filter.add(new ControllerPredicate(TargetController.OPPONENT));
|
||||
}
|
||||
|
||||
public SkysovereignConsulFlagship(UUID ownerId) {
|
||||
super(ownerId, 234, "Skysovereign, Consul Flagship", Rarity.MYTHIC, new CardType[]{CardType.ARTIFACT}, "{5}");
|
||||
this.expansionSetCode = "KLD";
|
||||
this.supertype.add("Legendary");
|
||||
this.subtype.add("Vehicle");
|
||||
this.power = new MageInt(6);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// Flying
|
||||
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 SkysovereignConsulFlagshipTriggeredAbility();
|
||||
ability.addTarget(new TargetCreatureOrPlaneswalker(1, 1, filter, false));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Crew 3
|
||||
this.addAbility(new CrewAbility(3));
|
||||
}
|
||||
|
||||
public SkysovereignConsulFlagship(final SkysovereignConsulFlagship card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SkysovereignConsulFlagship copy() {
|
||||
return new SkysovereignConsulFlagship(this);
|
||||
}
|
||||
}
|
||||
|
||||
class SkysovereignConsulFlagshipTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
SkysovereignConsulFlagshipTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DamageTargetEffect(3), false);
|
||||
}
|
||||
|
||||
SkysovereignConsulFlagshipTriggeredAbility(final SkysovereignConsulFlagshipTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SkysovereignConsulFlagshipTriggeredAbility copy() {
|
||||
return new SkysovereignConsulFlagshipTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == EventType.ATTACKER_DECLARED || event.getType() == EventType.ENTERS_THE_BATTLEFIELD;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getType() == EventType.ATTACKER_DECLARED && event.getSourceId().equals(this.getSourceId())) {
|
||||
return true;
|
||||
}
|
||||
return event.getType() == EventType.ENTERS_THE_BATTLEFIELD && event.getTargetId().equals(this.getSourceId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} enters the battlefield or attacks, it deals 3 damage to target creature or planeswalker an opponent controls.";
|
||||
}
|
||||
}
|
||||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.unglued;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Forest extends mage.cards.basiclands.Forest {
|
|||
public Forest(UUID ownerId) {
|
||||
super(ownerId, 88);
|
||||
this.expansionSetCode = "UGL";
|
||||
this.frameStyle = FrameStyle.UGL_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest(final Forest card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.unglued;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Island extends mage.cards.basiclands.Island {
|
|||
public Island(UUID ownerId) {
|
||||
super(ownerId, 85);
|
||||
this.expansionSetCode = "UGL";
|
||||
this.frameStyle = FrameStyle.UGL_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island(final Island card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.unglued;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Mountain extends mage.cards.basiclands.Mountain {
|
|||
public Mountain(UUID ownerId) {
|
||||
super(ownerId, 87);
|
||||
this.expansionSetCode = "UGL";
|
||||
this.frameStyle = FrameStyle.UGL_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain(final Mountain card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.unglued;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Plains extends mage.cards.basiclands.Plains {
|
|||
public Plains(UUID ownerId) {
|
||||
super(ownerId, 84);
|
||||
this.expansionSetCode = "UGL";
|
||||
this.frameStyle = FrameStyle.UGL_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains(final Plains card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.unglued;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Swamp extends mage.cards.basiclands.Swamp {
|
|||
public Swamp(UUID ownerId) {
|
||||
super(ownerId, 86);
|
||||
this.expansionSetCode = "UGL";
|
||||
this.frameStyle = FrameStyle.UGL_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp(final Swamp card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.unhinged;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -38,6 +40,7 @@ public class Forest extends mage.cards.basiclands.Forest {
|
|||
public Forest(UUID ownerId) {
|
||||
super(ownerId, 140);
|
||||
this.expansionSetCode = "UNH";
|
||||
this.frameStyle = FrameStyle.UNH_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest(final Forest card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.unhinged;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Island extends mage.cards.basiclands.Island {
|
|||
public Island(UUID ownerId) {
|
||||
super(ownerId, 137);
|
||||
this.expansionSetCode = "UNH";
|
||||
this.frameStyle = FrameStyle.UNH_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island(final Island card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.unhinged;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Mountain extends mage.cards.basiclands.Mountain {
|
|||
public Mountain(UUID ownerId) {
|
||||
super(ownerId, 139);
|
||||
this.expansionSetCode = "UNH";
|
||||
this.frameStyle = FrameStyle.UNH_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain(final Mountain card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.unhinged;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Plains extends mage.cards.basiclands.Plains {
|
|||
public Plains(UUID ownerId) {
|
||||
super(ownerId, 136);
|
||||
this.expansionSetCode = "UNH";
|
||||
this.frameStyle = FrameStyle.UNH_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains(final Plains card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.unhinged;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Swamp extends mage.cards.basiclands.Swamp {
|
|||
public Swamp(UUID ownerId) {
|
||||
super(ownerId, 138);
|
||||
this.expansionSetCode = "UNH";
|
||||
this.frameStyle = FrameStyle.UNH_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp(final Swamp card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Forest1 extends mage.cards.basiclands.Forest {
|
|||
public Forest1(UUID ownerId) {
|
||||
super(ownerId, 246);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest1(final Forest1 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Forest2 extends mage.cards.basiclands.Forest {
|
|||
public Forest2(UUID ownerId) {
|
||||
super(ownerId, 247);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest2(final Forest2 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Forest3 extends mage.cards.basiclands.Forest {
|
|||
public Forest3(UUID ownerId) {
|
||||
super(ownerId, 248);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest3(final Forest3 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Forest4 extends mage.cards.basiclands.Forest {
|
|||
public Forest4(UUID ownerId) {
|
||||
super(ownerId, 249);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Forest4(final Forest4 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Island1 extends mage.cards.basiclands.Island {
|
|||
public Island1(UUID ownerId) {
|
||||
super(ownerId, 234);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island1(final Island1 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Island2 extends mage.cards.basiclands.Island {
|
|||
public Island2(UUID ownerId) {
|
||||
super(ownerId, 235);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island2(final Island2 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Island3 extends mage.cards.basiclands.Island {
|
|||
public Island3(UUID ownerId) {
|
||||
super(ownerId, 236);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island3(final Island3 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Island4 extends mage.cards.basiclands.Island {
|
|||
public Island4(UUID ownerId) {
|
||||
super(ownerId, 237);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Island4(final Island4 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Mountain1 extends mage.cards.basiclands.Mountain {
|
|||
public Mountain1(UUID ownerId) {
|
||||
super(ownerId, 242);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain1(final Mountain1 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Mountain2 extends mage.cards.basiclands.Mountain {
|
|||
public Mountain2(UUID ownerId) {
|
||||
super(ownerId, 243);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain2(final Mountain2 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Mountain3 extends mage.cards.basiclands.Mountain {
|
|||
public Mountain3(UUID ownerId) {
|
||||
super(ownerId, 244);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain3(final Mountain3 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Mountain4 extends mage.cards.basiclands.Mountain {
|
|||
public Mountain4(UUID ownerId) {
|
||||
super(ownerId, 245);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Mountain4(final Mountain4 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Plains1 extends mage.cards.basiclands.Plains {
|
|||
public Plains1(UUID ownerId) {
|
||||
super(ownerId, 230);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains1(final Plains1 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Plains2 extends mage.cards.basiclands.Plains {
|
|||
public Plains2(UUID ownerId) {
|
||||
super(ownerId, 231);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains2(final Plains2 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Plains3 extends mage.cards.basiclands.Plains {
|
|||
public Plains3(UUID ownerId) {
|
||||
super(ownerId, 232);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains3(final Plains3 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Plains4 extends mage.cards.basiclands.Plains {
|
|||
public Plains4(UUID ownerId) {
|
||||
super(ownerId, 233);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Plains4(final Plains4 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Swamp1 extends mage.cards.basiclands.Swamp {
|
|||
public Swamp1(UUID ownerId) {
|
||||
super(ownerId, 238);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp1(final Swamp1 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Swamp2 extends mage.cards.basiclands.Swamp {
|
|||
public Swamp2(UUID ownerId) {
|
||||
super(ownerId, 239);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp2(final Swamp2 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Swamp3 extends mage.cards.basiclands.Swamp {
|
|||
public Swamp3(UUID ownerId) {
|
||||
super(ownerId, 240);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp3(final Swamp3 card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.cards.FrameStyle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +41,7 @@ public class Swamp4 extends mage.cards.basiclands.Swamp {
|
|||
public Swamp4(UUID ownerId) {
|
||||
super(ownerId, 241);
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.frameStyle = FrameStyle.ZEN_FULL_ART_BASIC;
|
||||
}
|
||||
|
||||
public Swamp4(final Swamp4 card) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue