forked from External/mage
[FIN] Implement Balamb Garden, SeeD Academy / Balamb Garden, Airborne
This commit is contained in:
parent
057ffb6820
commit
a5e1fdd85e
3 changed files with 136 additions and 0 deletions
48
Mage.Sets/src/mage/cards/b/BalambGardenAirborne.java
Normal file
48
Mage.Sets/src/mage/cards/b/BalambGardenAirborne.java
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.keyword.CrewAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class BalambGardenAirborne extends CardImpl {
|
||||
|
||||
public BalambGardenAirborne(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "");
|
||||
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.VEHICLE);
|
||||
this.power = new MageInt(5);
|
||||
this.toughness = new MageInt(4);
|
||||
this.nightCard = true;
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever Balamb Garden attacks, draw a card.
|
||||
this.addAbility(new AttacksTriggeredAbility(new DrawCardSourceControllerEffect(1)));
|
||||
|
||||
// Crew 1
|
||||
this.addAbility(new CrewAbility(1));
|
||||
}
|
||||
|
||||
private BalambGardenAirborne(final BalambGardenAirborne card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BalambGardenAirborne copy() {
|
||||
return new BalambGardenAirborne(this);
|
||||
}
|
||||
}
|
||||
86
Mage.Sets/src/mage/cards/b/BalambGardenSeeDAcademy.java
Normal file
86
Mage.Sets/src/mage/cards/b/BalambGardenSeeDAcademy.java
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.CostAdjuster;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.effects.common.InfoEffect;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.abilities.keyword.TransformAbility;
|
||||
import mage.abilities.mana.BlueManaAbility;
|
||||
import mage.abilities.mana.GreenManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class BalambGardenSeeDAcademy extends CardImpl {
|
||||
|
||||
public BalambGardenSeeDAcademy(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
this.subtype.add(SubType.TOWN);
|
||||
this.secondSideCardClazz = mage.cards.b.BalambGardenAirborne.class;
|
||||
|
||||
// This land enters tapped.
|
||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||
|
||||
// Add {G} or {U}.
|
||||
this.addAbility(new GreenManaAbility());
|
||||
this.addAbility(new BlueManaAbility());
|
||||
|
||||
// {5}{G}{U}: Transform this land. This ability costs {1} less to activate for each other Town you control.
|
||||
this.addAbility(new TransformAbility());
|
||||
Ability ability = new SimpleActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{5}{G}{U}"));
|
||||
ability.addEffect(new InfoEffect("This ability costs {1} less to activate for each other Town you control"));
|
||||
this.addAbility(ability
|
||||
.setCostAdjuster(BalambGardenSeeDAcademyAdjuster.instance)
|
||||
.addHint(BalambGardenSeeDAcademyAdjuster.getHint()));
|
||||
}
|
||||
|
||||
private BalambGardenSeeDAcademy(final BalambGardenSeeDAcademy card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BalambGardenSeeDAcademy copy() {
|
||||
return new BalambGardenSeeDAcademy(this);
|
||||
}
|
||||
}
|
||||
|
||||
enum BalambGardenSeeDAcademyAdjuster implements CostAdjuster {
|
||||
instance;
|
||||
private static final FilterPermanent filter = new FilterControlledPermanent(SubType.TOWN);
|
||||
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
}
|
||||
|
||||
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(filter);
|
||||
private static final Hint hint = new ValueHint("Other Towns you control", xValue);
|
||||
|
||||
static Hint getHint() {
|
||||
return hint;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reduceCost(Ability ability, Game game) {
|
||||
int count = xValue.calculate(game, ability, null);
|
||||
CardUtil.reduceCost(ability, count);
|
||||
}
|
||||
}
|
||||
|
|
@ -45,6 +45,8 @@ public final class FinalFantasy extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Astrologian's Planisphere", 46, Rarity.RARE, mage.cards.a.AstrologiansPlanisphere.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Astrologian's Planisphere", 581, Rarity.RARE, mage.cards.a.AstrologiansPlanisphere.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Auron's Inspiration", 8, Rarity.UNCOMMON, mage.cards.a.AuronsInspiration.class));
|
||||
cards.add(new SetCardInfo("Balamb Garden, Airborne", 272, Rarity.RARE, mage.cards.b.BalambGardenAirborne.class));
|
||||
cards.add(new SetCardInfo("Balamb Garden, SeeD Academy", 272, Rarity.RARE, mage.cards.b.BalambGardenSeeDAcademy.class));
|
||||
cards.add(new SetCardInfo("Balamb T-Rexaur", 173, Rarity.COMMON, mage.cards.b.BalambTRexaur.class));
|
||||
cards.add(new SetCardInfo("Balthier and Fran", 213, Rarity.RARE, mage.cards.b.BalthierAndFran.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Balthier and Fran", 319, Rarity.RARE, mage.cards.b.BalthierAndFran.class, NON_FULL_USE_VARIOUS));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue