mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
[FIC] Implement Chocobo Camp
This commit is contained in:
parent
147ac2fef2
commit
ce972d294d
11 changed files with 119 additions and 102 deletions
|
|
@ -4,7 +4,7 @@ import mage.abilities.Ability;
|
||||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
||||||
import mage.abilities.condition.common.MorbidCondition;
|
import mage.abilities.condition.common.MorbidCondition;
|
||||||
import mage.abilities.condition.common.YouControlPermanentCondition;
|
import mage.abilities.condition.common.YouControlALegendaryCreatureCondition;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.dynamicvalue.common.GetXValue;
|
import mage.abilities.dynamicvalue.common.GetXValue;
|
||||||
|
|
@ -16,8 +16,6 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.SuperType;
|
import mage.constants.SuperType;
|
||||||
import mage.filter.FilterPermanent;
|
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -26,21 +24,14 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class BaradDur extends CardImpl {
|
public final class BaradDur extends CardImpl {
|
||||||
|
|
||||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("a legendary creature");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(SuperType.LEGENDARY.getPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final YouControlPermanentCondition condition = new YouControlPermanentCondition(filter);
|
|
||||||
|
|
||||||
public BaradDur(UUID ownerId, CardSetInfo setInfo) {
|
public BaradDur(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||||
|
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
|
||||||
// Barad-dur enters the battlefield tapped unless you control a legendary creature.
|
// Barad-dur enters the battlefield tapped unless you control a legendary creature.
|
||||||
this.addAbility(new EntersBattlefieldTappedUnlessAbility(condition).addHint(condition.getHint()));
|
this.addAbility(new EntersBattlefieldTappedUnlessAbility(YouControlALegendaryCreatureCondition.instance)
|
||||||
|
.addHint(YouControlALegendaryCreatureCondition.getHint()));
|
||||||
|
|
||||||
// {T}: Add {B}.
|
// {T}: Add {B}.
|
||||||
this.addAbility(new BlackManaAbility());
|
this.addAbility(new BlackManaAbility());
|
||||||
|
|
|
||||||
62
Mage.Sets/src/mage/cards/c/ChocoboCamp.java
Normal file
62
Mage.Sets/src/mage/cards/c/ChocoboCamp.java
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
package mage.cards.c;
|
||||||
|
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
||||||
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
import mage.abilities.common.delayed.AddCounterNextSpellDelayedTriggeredAbility;
|
||||||
|
import mage.abilities.condition.common.YouControlALegendaryCreatureCondition;
|
||||||
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
||||||
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
|
import mage.abilities.mana.BasicManaAbility;
|
||||||
|
import mage.abilities.mana.GreenManaAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.filter.FilterSpell;
|
||||||
|
import mage.filter.common.FilterCreatureSpell;
|
||||||
|
import mage.game.permanent.token.ChocoboToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class ChocoboCamp extends CardImpl {
|
||||||
|
|
||||||
|
private static final FilterSpell filter = new FilterCreatureSpell("a Bird creature spell");
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(SubType.BIRD.getPredicate());
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChocoboCamp(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||||
|
|
||||||
|
// This land enters tapped unless you control a legendary creature.
|
||||||
|
this.addAbility(new EntersBattlefieldTappedUnlessAbility(YouControlALegendaryCreatureCondition.instance)
|
||||||
|
.addHint(YouControlALegendaryCreatureCondition.getHint()));
|
||||||
|
|
||||||
|
// {T}: Add {G}. When you next cast a Bird creature spell this turn, it enters with an additional +1/+1 counter on it.
|
||||||
|
BasicManaAbility manaAbility = new GreenManaAbility();
|
||||||
|
manaAbility.addEffect(new CreateDelayedTriggeredAbilityEffect(new AddCounterNextSpellDelayedTriggeredAbility(filter)));
|
||||||
|
manaAbility.setUndoPossible(false);
|
||||||
|
this.addAbility(manaAbility);
|
||||||
|
|
||||||
|
// {2}{G}{G}, {T}: Create a 2/2 green Bird creature token with "Whenever a land you control enters, this token gets +1/+0 until end of turn."
|
||||||
|
Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(new ChocoboToken()), new ManaCostsImpl<>("{2}{G}{G}"));
|
||||||
|
ability.addCost(new TapSourceCost());
|
||||||
|
this.addAbility(ability);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ChocoboCamp(final ChocoboCamp card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ChocoboCamp copy() {
|
||||||
|
return new ChocoboCamp(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,14 +3,12 @@ package mage.cards.e;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.YouControlALegendaryCreatureCondition;
|
||||||
import mage.abilities.costs.CostAdjuster;
|
import mage.abilities.costs.CostAdjuster;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.InfoEffect;
|
import mage.abilities.effects.common.InfoEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||||
import mage.abilities.hint.ConditionHint;
|
|
||||||
import mage.abilities.hint.Hint;
|
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
|
@ -27,11 +25,6 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class EsquireOfTheKing extends CardImpl {
|
public final class EsquireOfTheKing extends CardImpl {
|
||||||
|
|
||||||
private static final Hint hint = new ConditionHint(
|
|
||||||
new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_CONTROLLED_CREATURE_LEGENDARY),
|
|
||||||
"You control a legendary creature"
|
|
||||||
);
|
|
||||||
|
|
||||||
public EsquireOfTheKing(UUID ownerId, CardSetInfo setInfo) {
|
public EsquireOfTheKing(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}");
|
||||||
|
|
||||||
|
|
@ -47,7 +40,7 @@ public final class EsquireOfTheKing extends CardImpl {
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.setCostAdjuster(EsquireOfTheKingAdjuster.instance);
|
ability.setCostAdjuster(EsquireOfTheKingAdjuster.instance);
|
||||||
ability.addEffect(new InfoEffect("This ability costs {2} less to activate if you control a legendary creature."));
|
ability.addEffect(new InfoEffect("This ability costs {2} less to activate if you control a legendary creature."));
|
||||||
this.addAbility(ability.addHint(hint));
|
this.addAbility(ability.addHint(YouControlALegendaryCreatureCondition.getHint()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private EsquireOfTheKing(final EsquireOfTheKing card) {
|
private EsquireOfTheKing(final EsquireOfTheKing card) {
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,17 @@
|
||||||
package mage.cards.h;
|
package mage.cards.h;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
|
||||||
import mage.abilities.condition.Condition;
|
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
|
||||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||||
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
|
import mage.abilities.condition.common.YouControlALegendaryCreatureCondition;
|
||||||
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect;
|
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect;
|
||||||
import mage.abilities.effects.keyword.ScryEffect;
|
import mage.abilities.effects.keyword.ScryEffect;
|
||||||
import mage.abilities.hint.ConditionHint;
|
|
||||||
import mage.abilities.hint.Hint;
|
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.SuperType;
|
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.FilterPermanent;
|
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -26,16 +20,6 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class HauntOfTheDeadMarshes extends CardImpl {
|
public final class HauntOfTheDeadMarshes extends CardImpl {
|
||||||
|
|
||||||
private static final FilterPermanent filter
|
|
||||||
= new FilterControlledCreaturePermanent("you control a legendary creature");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(SuperType.LEGENDARY.getPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
|
|
||||||
private static final Hint hint = new ConditionHint(condition, "You control a legendary creature");
|
|
||||||
|
|
||||||
public HauntOfTheDeadMarshes(UUID ownerId, CardSetInfo setInfo) {
|
public HauntOfTheDeadMarshes(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}");
|
||||||
|
|
||||||
|
|
@ -50,8 +34,8 @@ public final class HauntOfTheDeadMarshes extends CardImpl {
|
||||||
// {2}{B}: Return Haunt of the Dead Marshes from your graveyard to the battlefield tapped. Activate only if you control a legendary creature.
|
// {2}{B}: Return Haunt of the Dead Marshes from your graveyard to the battlefield tapped. Activate only if you control a legendary creature.
|
||||||
this.addAbility(new ActivateIfConditionActivatedAbility(
|
this.addAbility(new ActivateIfConditionActivatedAbility(
|
||||||
Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true, false),
|
Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true, false),
|
||||||
new ManaCostsImpl<>("{2}{B}"), condition
|
new ManaCostsImpl<>("{2}{B}"), YouControlALegendaryCreatureCondition.instance
|
||||||
).addHint(hint));
|
).addHint(YouControlALegendaryCreatureCondition.getHint()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private HauntOfTheDeadMarshes(final HauntOfTheDeadMarshes card) {
|
private HauntOfTheDeadMarshes(final HauntOfTheDeadMarshes card) {
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import mage.abilities.Ability;
|
||||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
||||||
import mage.abilities.condition.Condition;
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.YouControlPermanentCondition;
|
import mage.abilities.condition.common.YouControlALegendaryCreatureCondition;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
|
|
@ -16,8 +16,6 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SuperType;
|
import mage.constants.SuperType;
|
||||||
import mage.constants.WatcherScope;
|
import mage.constants.WatcherScope;
|
||||||
import mage.filter.FilterPermanent;
|
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.events.GameEvent;
|
import mage.game.events.GameEvent;
|
||||||
import mage.util.CardUtil;
|
import mage.util.CardUtil;
|
||||||
|
|
@ -32,21 +30,14 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class MinasTirith extends CardImpl {
|
public final class MinasTirith extends CardImpl {
|
||||||
|
|
||||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("a legendary creature");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(SuperType.LEGENDARY.getPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final YouControlPermanentCondition condition = new YouControlPermanentCondition(filter);
|
|
||||||
|
|
||||||
public MinasTirith(UUID ownerId, CardSetInfo setInfo) {
|
public MinasTirith(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||||
|
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
|
||||||
// Minas Tirith enters the battlefield tapped unless you control a legendary creature.
|
// Minas Tirith enters the battlefield tapped unless you control a legendary creature.
|
||||||
this.addAbility(new EntersBattlefieldTappedUnlessAbility(condition).addHint(condition.getHint()));
|
this.addAbility(new EntersBattlefieldTappedUnlessAbility(YouControlALegendaryCreatureCondition.instance)
|
||||||
|
.addHint(YouControlALegendaryCreatureCondition.getHint()));
|
||||||
|
|
||||||
// {T}: Add {W}.
|
// {T}: Add {W}.
|
||||||
this.addAbility(new WhiteManaAbility());
|
this.addAbility(new WhiteManaAbility());
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package mage.cards.m;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.condition.common.YouControlPermanentCondition;
|
import mage.abilities.condition.common.YouControlALegendaryCreatureCondition;
|
||||||
import mage.abilities.costs.common.ExileFromGraveCost;
|
import mage.abilities.costs.common.ExileFromGraveCost;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
|
@ -13,8 +13,6 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SuperType;
|
import mage.constants.SuperType;
|
||||||
import mage.filter.FilterPermanent;
|
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
|
||||||
import mage.game.permanent.token.TreasureToken;
|
import mage.game.permanent.token.TreasureToken;
|
||||||
import mage.target.common.TargetCardInYourGraveyard;
|
import mage.target.common.TargetCardInYourGraveyard;
|
||||||
|
|
||||||
|
|
@ -25,21 +23,14 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class MinesOfMoria extends CardImpl {
|
public final class MinesOfMoria extends CardImpl {
|
||||||
|
|
||||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("a legendary creature");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(SuperType.LEGENDARY.getPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final YouControlPermanentCondition condition = new YouControlPermanentCondition(filter);
|
|
||||||
|
|
||||||
public MinesOfMoria(UUID ownerId, CardSetInfo setInfo) {
|
public MinesOfMoria(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||||
|
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
|
||||||
// Mines of Moria enters the battlefield tapped unless you control a legendary creature.
|
// Mines of Moria enters the battlefield tapped unless you control a legendary creature.
|
||||||
this.addAbility(new EntersBattlefieldTappedUnlessAbility(condition).addHint(condition.getHint()));
|
this.addAbility(new EntersBattlefieldTappedUnlessAbility(YouControlALegendaryCreatureCondition.instance)
|
||||||
|
.addHint(YouControlALegendaryCreatureCondition.getHint()));
|
||||||
|
|
||||||
// {T}: Add {R}.
|
// {T}: Add {R}.
|
||||||
this.addAbility(new RedManaAbility());
|
this.addAbility(new RedManaAbility());
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,8 @@ import mage.abilities.effects.keyword.SurveilEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SuperType;
|
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -22,14 +20,7 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class PriceOfFame extends CardImpl {
|
public final class PriceOfFame extends CardImpl {
|
||||||
|
|
||||||
private static final FilterPermanent filter
|
private static final Condition condition = new SourceTargetsPermanentCondition(StaticFilters.FILTER_CONTROLLED_CREATURE_LEGENDARY);
|
||||||
= new FilterCreaturePermanent("a legendary creature");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(SuperType.LEGENDARY.getPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final Condition condition = new SourceTargetsPermanentCondition(filter);
|
|
||||||
|
|
||||||
public PriceOfFame(UUID ownerId, CardSetInfo setInfo) {
|
public PriceOfFame(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{B}");
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package mage.cards.r;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
||||||
import mage.abilities.condition.common.YouControlPermanentCondition;
|
import mage.abilities.condition.common.YouControlALegendaryCreatureCondition;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.keyword.ScryEffect;
|
import mage.abilities.effects.keyword.ScryEffect;
|
||||||
|
|
@ -12,8 +12,6 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SuperType;
|
import mage.constants.SuperType;
|
||||||
import mage.filter.FilterPermanent;
|
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -22,28 +20,22 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class Rivendell extends CardImpl {
|
public final class Rivendell extends CardImpl {
|
||||||
|
|
||||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("a legendary creature");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(SuperType.LEGENDARY.getPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final YouControlPermanentCondition condition = new YouControlPermanentCondition(filter);
|
|
||||||
|
|
||||||
public Rivendell(UUID ownerId, CardSetInfo setInfo) {
|
public Rivendell(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||||
|
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
|
||||||
// Rivendell enters the battlefield tapped unless you control a legendary creature.
|
// Rivendell enters the battlefield tapped unless you control a legendary creature.
|
||||||
this.addAbility(new EntersBattlefieldTappedUnlessAbility(condition).addHint(condition.getHint()));
|
this.addAbility(new EntersBattlefieldTappedUnlessAbility(YouControlALegendaryCreatureCondition.instance)
|
||||||
|
.addHint(YouControlALegendaryCreatureCondition.getHint()));
|
||||||
|
|
||||||
// {T}: Add {U}.
|
// {T}: Add {U}.
|
||||||
this.addAbility(new BlueManaAbility());
|
this.addAbility(new BlueManaAbility());
|
||||||
|
|
||||||
// {1}{U}, {T}: Scry 2. Activate only if you control a legendary creature.
|
// {1}{U}, {T}: Scry 2. Activate only if you control a legendary creature.
|
||||||
Ability ability = new ActivateIfConditionActivatedAbility(
|
Ability ability = new ActivateIfConditionActivatedAbility(
|
||||||
new ScryEffect(2, false), new ManaCostsImpl<>("{1}{U}"), condition
|
new ScryEffect(2, false), new ManaCostsImpl<>("{1}{U}"),
|
||||||
|
YouControlALegendaryCreatureCondition.instance
|
||||||
);
|
);
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package mage.cards.t;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
import mage.abilities.common.EntersBattlefieldTappedUnlessAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.condition.common.YouControlPermanentCondition;
|
import mage.abilities.condition.common.YouControlALegendaryCreatureCondition;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.common.TapTargetCost;
|
import mage.abilities.costs.common.TapTargetCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
|
@ -13,9 +13,7 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SuperType;
|
import mage.constants.SuperType;
|
||||||
import mage.filter.FilterPermanent;
|
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
|
||||||
import mage.game.permanent.token.FoodToken;
|
import mage.game.permanent.token.FoodToken;
|
||||||
import mage.target.common.TargetControlledPermanent;
|
import mage.target.common.TargetControlledPermanent;
|
||||||
|
|
||||||
|
|
@ -26,21 +24,14 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class TheShire extends CardImpl {
|
public final class TheShire extends CardImpl {
|
||||||
|
|
||||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("a legendary creature");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(SuperType.LEGENDARY.getPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final YouControlPermanentCondition condition = new YouControlPermanentCondition(filter);
|
|
||||||
|
|
||||||
public TheShire(UUID ownerId, CardSetInfo setInfo) {
|
public TheShire(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||||
|
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
|
||||||
// The Shire enters the battlefield tapped unless you control a legendary creature.
|
// The Shire enters the battlefield tapped unless you control a legendary creature.
|
||||||
this.addAbility(new EntersBattlefieldTappedUnlessAbility(condition).addHint(condition.getHint()));
|
this.addAbility(new EntersBattlefieldTappedUnlessAbility(YouControlALegendaryCreatureCondition.instance)
|
||||||
|
.addHint(YouControlALegendaryCreatureCondition.getHint()));
|
||||||
|
|
||||||
// {T}: Add {G}.
|
// {T}: Add {G}.
|
||||||
this.addAbility(new GreenManaAbility());
|
this.addAbility(new GreenManaAbility());
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,7 @@ public final class FinalFantasyCommander extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Champions from Beyond", 11, Rarity.RARE, mage.cards.c.ChampionsFromBeyond.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Champions from Beyond", 11, Rarity.RARE, mage.cards.c.ChampionsFromBeyond.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Chaos Warp", 291, Rarity.RARE, mage.cards.c.ChaosWarp.class));
|
cards.add(new SetCardInfo("Chaos Warp", 291, Rarity.RARE, mage.cards.c.ChaosWarp.class));
|
||||||
cards.add(new SetCardInfo("Chasm Skulker", 262, Rarity.RARE, mage.cards.c.ChasmSkulker.class));
|
cards.add(new SetCardInfo("Chasm Skulker", 262, Rarity.RARE, mage.cards.c.ChasmSkulker.class));
|
||||||
|
cards.add(new SetCardInfo("Chocobo Camp", 462, Rarity.RARE, mage.cards.c.ChocoboCamp.class));
|
||||||
cards.add(new SetCardInfo("Chocobo Knights", 102, Rarity.RARE, mage.cards.c.ChocoboKnights.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Chocobo Knights", 102, Rarity.RARE, mage.cards.c.ChocoboKnights.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Chocobo Knights", 12, Rarity.RARE, mage.cards.c.ChocoboKnights.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Chocobo Knights", 12, Rarity.RARE, mage.cards.c.ChocoboKnights.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Choked Estuary", 379, Rarity.RARE, mage.cards.c.ChokedEstuary.class));
|
cards.add(new SetCardInfo("Choked Estuary", 379, Rarity.RARE, mage.cards.c.ChokedEstuary.class));
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
package mage.abilities.condition.common;
|
||||||
|
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
|
import mage.abilities.hint.ConditionHint;
|
||||||
|
import mage.abilities.hint.Hint;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
|
import mage.game.Game;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public enum YouControlALegendaryCreatureCondition implements Condition {
|
||||||
|
instance;
|
||||||
|
private static final Hint hint = new ConditionHint(instance);
|
||||||
|
|
||||||
|
public static Hint getHint() {
|
||||||
|
return hint;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Game game, Ability source) {
|
||||||
|
return game.getBattlefield().contains(StaticFilters.FILTER_CONTROLLED_CREATURE_LEGENDARY, source.getControllerId(), source, game, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "you control a legendary creature";
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue