[SLD] Implemented Blanka, Ferocious Friend

This commit is contained in:
Evan Kranzler 2022-02-17 19:56:03 -05:00
parent 4ede390e40
commit 16c5d0f1cf
2 changed files with 76 additions and 0 deletions

View file

@ -0,0 +1,75 @@
package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BecomesTargetTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.DamagePlayersEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.watchers.common.CastSpellLastTurnWatcher;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class BlankaFerociousFriend extends CardImpl {
public BlankaFerociousFriend(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{G}");
this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.BEAST);
this.subtype.add(SubType.WARRIOR);
this.power = new MageInt(5);
this.toughness = new MageInt(5);
// Haste
this.addAbility(HasteAbility.getInstance());
// Rolling AttackBlanka, Ferocious Friend has trample as long as you've cast three or more spells this turn.
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(TrampleAbility.getInstance()), BlankaFerociousFriendCondition.instance,
"{this} has trample as long as you've cast three or more spells this turn"
)).withFlavorWord("Rolling Attack"));
// Electric ThunderWhenever Blanka becomes the target of a spell, he gets +2/+2 until end of turn and deals 2 damage to each opponent.
Ability ability = new BecomesTargetTriggeredAbility(new BoostSourceEffect(
2, 2, Duration.EndOfTurn
).setText("he gets +2/+2 until end of turn"), StaticFilters.FILTER_SPELL_A);
ability.addEffect(new DamagePlayersEffect(2, TargetController.OPPONENT));
this.addAbility(ability.withFlavorWord("Electric Thunder"));
}
private BlankaFerociousFriend(final BlankaFerociousFriend card) {
super(card);
}
@Override
public BlankaFerociousFriend copy() {
return new BlankaFerociousFriend(this);
}
}
enum BlankaFerociousFriendCondition implements Condition {
instance;
@Override
public boolean apply(Game game, Ability source) {
return game
.getState()
.getWatcher(CastSpellLastTurnWatcher.class)
.getAmountOfSpellsPlayerCastOnCurrentTurn(source.getControllerId()) >= 3;
}
}

View file

@ -374,6 +374,7 @@ public class SecretLairDrop extends ExpansionSet {
cards.add(new SetCardInfo("Krark's Thumb", "383b", Rarity.RARE, mage.cards.k.KrarksThumb.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Swamp", 384, Rarity.LAND, mage.cards.basiclands.Swamp.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Island", 385, Rarity.LAND, mage.cards.basiclands.Island.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Blanka, Ferocious Friend", 431, Rarity.RARE, mage.cards.b.BlankaFerociousFriend.class));
cards.add(new SetCardInfo("Path to Exile", 477, Rarity.RARE, mage.cards.p.PathToExile.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Rhystic Study", 478, Rarity.RARE, mage.cards.r.RhysticStudy.class));
cards.add(new SetCardInfo("Duress", 479, Rarity.RARE, mage.cards.d.Duress.class));