[BLB] Implement Oakhollow Village

This commit is contained in:
theelk801 2024-06-28 10:43:17 -04:00
parent 561a4083ea
commit 8afe45ecbc
2 changed files with 72 additions and 0 deletions

View file

@ -0,0 +1,71 @@
package mage.cards.o;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.counter.AddCountersAllEffect;
import mage.abilities.mana.ColorlessManaAbility;
import mage.abilities.mana.ConditionalColoredManaAbility;
import mage.abilities.mana.conditional.ConditionalSpellManaBuilder;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.permanent.EnteredThisTurnPredicate;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class OakhollowVillage extends CardImpl {
private static final FilterPermanent filter = new FilterControlledPermanent(
"Frog, Rabbit, Raccoon, or Squirrel you control that entered the battlefield this turn"
);
static {
filter.add(Predicates.or(
SubType.FROG.getPredicate(),
SubType.RABBIT.getPredicate(),
SubType.RACCOON.getPredicate(),
SubType.SQUIRREL.getPredicate()
));
filter.add(EnteredThisTurnPredicate.instance);
}
public OakhollowVillage(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// {T}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {T}: Add {G}. Spend this mana only to cast a creature spell.
this.addAbility(new ConditionalColoredManaAbility(
Mana.GreenMana(1), new ConditionalSpellManaBuilder(StaticFilters.FILTER_SPELL_A_CREATURE)
));
// {G}, {T}: Put a +1/+1 counter on each Frog, Rabbit, Raccoon, or Squirrel you control that entered the battlefield this turn.
Ability ability = new SimpleActivatedAbility(
new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), new ManaCostsImpl<>("{G}")
);
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
private OakhollowVillage(final OakhollowVillage card) {
super(card);
}
@Override
public OakhollowVillage copy() {
return new OakhollowVillage(this);
}
}

View file

@ -29,6 +29,7 @@ public final class Bloomburrow extends ExpansionSet {
cards.add(new SetCardInfo("Mabel, Heir to Cragflame", 224, Rarity.RARE, mage.cards.m.MabelHeirToCragflame.class));
cards.add(new SetCardInfo("Mountain", 274, Rarity.LAND, mage.cards.basiclands.Mountain.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Mudflat Village", 257, Rarity.UNCOMMON, mage.cards.m.MudflatVillage.class));
cards.add(new SetCardInfo("Oakhollow Village", 258, Rarity.UNCOMMON, mage.cards.o.OakhollowVillage.class));
cards.add(new SetCardInfo("Rockface Village", 259, Rarity.UNCOMMON, mage.cards.r.RockfaceVillage.class));
}
}