mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 11:32:00 -08:00
[CLB] Implemented Bothersome Quasit
This commit is contained in:
parent
baf3ad18b5
commit
b48a023a94
4 changed files with 86 additions and 11 deletions
66
Mage.Sets/src/mage/cards/b/BothersomeQuasit.java
Normal file
66
Mage.Sets/src/mage/cards/b/BothersomeQuasit.java
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
package mage.cards.b;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||||
|
import mage.abilities.effects.common.combat.CantBlockAllEffect;
|
||||||
|
import mage.abilities.effects.common.combat.GoadTargetEffect;
|
||||||
|
import mage.abilities.keyword.MenaceAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
|
import mage.filter.common.FilterOpponentsCreaturePermanent;
|
||||||
|
import mage.filter.predicate.permanent.GoadedPredicate;
|
||||||
|
import mage.target.common.TargetOpponentsCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class BothersomeQuasit extends CardImpl {
|
||||||
|
|
||||||
|
private static final FilterCreaturePermanent filter
|
||||||
|
= new FilterOpponentsCreaturePermanent("goaded creatures your opponents control");
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(GoadedPredicate.instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BothersomeQuasit(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
|
||||||
|
|
||||||
|
this.subtype.add(SubType.DEMON);
|
||||||
|
this.power = new MageInt(3);
|
||||||
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
|
// Menace
|
||||||
|
this.addAbility(new MenaceAbility());
|
||||||
|
|
||||||
|
// Goaded creatures your opponents control can't block.
|
||||||
|
this.addAbility(new SimpleStaticAbility(
|
||||||
|
new CantBlockAllEffect(filter, Duration.WhileOnBattlefield)
|
||||||
|
));
|
||||||
|
|
||||||
|
// Whenever you cast a noncreature spell, goad target creature an opponent controls.
|
||||||
|
Ability ability = new SpellCastControllerTriggeredAbility(
|
||||||
|
new GoadTargetEffect(), StaticFilters.FILTER_SPELL_A_NON_CREATURE, false
|
||||||
|
);
|
||||||
|
ability.addTarget(new TargetOpponentsCreaturePermanent());
|
||||||
|
this.addAbility(ability);
|
||||||
|
}
|
||||||
|
|
||||||
|
private BothersomeQuasit(final BothersomeQuasit card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BothersomeQuasit copy() {
|
||||||
|
return new BothersomeQuasit(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -14,7 +14,7 @@ import mage.constants.Outcome;
|
||||||
import mage.constants.SetTargetPointer;
|
import mage.constants.SetTargetPointer;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.filter.predicate.Predicate;
|
import mage.filter.predicate.permanent.GoadedPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
|
|
@ -30,7 +30,7 @@ public final class VengefulAncestor extends CardImpl {
|
||||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a goaded creature");
|
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a goaded creature");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(VengefulAncestorPredicate.instance);
|
filter.add(GoadedPredicate.instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
public VengefulAncestor(UUID ownerId, CardSetInfo setInfo) {
|
public VengefulAncestor(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
|
@ -66,15 +66,6 @@ public final class VengefulAncestor extends CardImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enum VengefulAncestorPredicate implements Predicate<Permanent> {
|
|
||||||
instance;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Permanent input, Game game) {
|
|
||||||
return !input.getGoadingPlayers().isEmpty();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class VengefulAncestorEffect extends OneShotEffect {
|
class VengefulAncestorEffect extends OneShotEffect {
|
||||||
|
|
||||||
VengefulAncestorEffect() {
|
VengefulAncestorEffect() {
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Blessed Hippogriff", 11, Rarity.COMMON, mage.cards.b.BlessedHippogriff.class));
|
cards.add(new SetCardInfo("Blessed Hippogriff", 11, Rarity.COMMON, mage.cards.b.BlessedHippogriff.class));
|
||||||
cards.add(new SetCardInfo("Bloodboil Sorcerer", 164, Rarity.UNCOMMON, mage.cards.b.BloodboilSorcerer.class));
|
cards.add(new SetCardInfo("Bloodboil Sorcerer", 164, Rarity.UNCOMMON, mage.cards.b.BloodboilSorcerer.class));
|
||||||
cards.add(new SetCardInfo("Blur", 58, Rarity.COMMON, mage.cards.b.Blur.class));
|
cards.add(new SetCardInfo("Blur", 58, Rarity.COMMON, mage.cards.b.Blur.class));
|
||||||
|
cards.add(new SetCardInfo("Bothersome Quasit", 674, Rarity.RARE, mage.cards.b.BothersomeQuasit.class));
|
||||||
cards.add(new SetCardInfo("Bountiful Promenade", 348, Rarity.RARE, mage.cards.b.BountifulPromenade.class));
|
cards.add(new SetCardInfo("Bountiful Promenade", 348, Rarity.RARE, mage.cards.b.BountifulPromenade.class));
|
||||||
cards.add(new SetCardInfo("Bramble Sovereign", 218, Rarity.MYTHIC, mage.cards.b.BrambleSovereign.class));
|
cards.add(new SetCardInfo("Bramble Sovereign", 218, Rarity.MYTHIC, mage.cards.b.BrambleSovereign.class));
|
||||||
cards.add(new SetCardInfo("Breath Weapon", 165, Rarity.COMMON, mage.cards.b.BreathWeapon.class));
|
cards.add(new SetCardInfo("Breath Weapon", 165, Rarity.COMMON, mage.cards.b.BreathWeapon.class));
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
package mage.filter.predicate.permanent;
|
||||||
|
|
||||||
|
import mage.filter.predicate.Predicate;
|
||||||
|
import mage.game.Game;
|
||||||
|
import mage.game.permanent.Permanent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public enum GoadedPredicate implements Predicate<Permanent> {
|
||||||
|
instance;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Permanent input, Game game) {
|
||||||
|
return !input.getGoadingPlayers().isEmpty();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue