[BLB] Implement Gossip's Talent

This commit is contained in:
theelk801 2024-07-24 10:37:54 -04:00
parent b5b991774f
commit 199f8c28cd
2 changed files with 80 additions and 0 deletions

View file

@ -0,0 +1,79 @@
package mage.cards.g;
import mage.abilities.Ability;
import mage.abilities.common.AttacksWithCreaturesTriggeredAbility;
import mage.abilities.common.DealCombatDamageControlledTriggeredAbility;
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.ExileThenReturnTargetEffect;
import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect;
import mage.abilities.effects.common.continuous.GainClassAbilitySourceEffect;
import mage.abilities.effects.keyword.SurveilEffect;
import mage.abilities.keyword.ClassLevelAbility;
import mage.abilities.keyword.ClassReminderAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterAttackingCreature;
import mage.filter.predicate.mageobject.PowerPredicate;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class GossipsTalent extends CardImpl {
private static final FilterPermanent filter = new FilterAttackingCreature("attacking creature with power 3 or less can't be blocked this turn");
static {
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4));
}
public GossipsTalent(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
this.subtype.add(SubType.CLASS);
// (Gain the next level as a sorcery to add its ability.)
this.addAbility(new ClassReminderAbility());
// Whenever a creature you control enters, surveil 1.
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
new SurveilEffect(1), StaticFilters.FILTER_PERMANENT_A_CREATURE
));
// {1}{U}: Level 2
this.addAbility(new ClassLevelAbility(2, "{1}{U}"));
// Whenever you attack, target attacking creature with power 3 or less can't be blocked this turn.
Ability ability = new AttacksWithCreaturesTriggeredAbility(new CantBeBlockedTargetEffect(), 1);
ability.addTarget(new TargetPermanent(filter));
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(ability, 2)));
// {3}{U}: Level 3
this.addAbility(new ClassLevelAbility(3, "{3}{U}"));
// Whenever a creature you control deals combat damage to a player, you may exile it, then return it to the battlefield under its owner's control.
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(
new DealCombatDamageControlledTriggeredAbility(
Zone.BATTLEFIELD,
new ExileThenReturnTargetEffect(false, false)
.setText("exile it, then return it to the battlefield under its owner's control"),
StaticFilters.FILTER_PERMANENT_CREATURE, SetTargetPointer.PERMANENT, true
), 3
)));
}
private GossipsTalent(final GossipsTalent card) {
super(card);
}
@Override
public GossipsTalent copy() {
return new GossipsTalent(this);
}
}

View file

@ -98,6 +98,7 @@ public final class Bloomburrow extends ExpansionSet {
cards.add(new SetCardInfo("Giant Growth", 393, Rarity.COMMON, mage.cards.g.GiantGrowth.class));
cards.add(new SetCardInfo("Glarb, Calamity's Augur", 215, Rarity.MYTHIC, mage.cards.g.GlarbCalamitysAugur.class));
cards.add(new SetCardInfo("Glidedive Duo", 96, Rarity.COMMON, mage.cards.g.GlidediveDuo.class));
cards.add(new SetCardInfo("Gossip's Talent", 51, Rarity.UNCOMMON, mage.cards.g.GossipsTalent.class));
cards.add(new SetCardInfo("Harnesser of Storms", 137, Rarity.UNCOMMON, mage.cards.h.HarnesserOfStorms.class));
cards.add(new SetCardInfo("Harvestrite Host", 15, Rarity.UNCOMMON, mage.cards.h.HarvestriteHost.class));
cards.add(new SetCardInfo("Hazardroot Herbalist", 174, Rarity.UNCOMMON, mage.cards.h.HazardrootHerbalist.class));