mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
[J25] Implement Plagon, Lord of the Beach
This commit is contained in:
parent
e50baf0fa5
commit
c168cb06c0
3 changed files with 81 additions and 9 deletions
67
Mage.Sets/src/mage/cards/p/PlagonLordOfTheBeach.java
Normal file
67
Mage.Sets/src/mage/cards/p/PlagonLordOfTheBeach.java
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
package mage.cards.p;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
import mage.abilities.dynamicvalue.DynamicValue;
|
||||||
|
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||||
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
|
import mage.abilities.effects.common.ruleModifying.CombatDamageByToughnessTargetEffect;
|
||||||
|
import mage.abilities.hint.Hint;
|
||||||
|
import mage.abilities.hint.ValueHint;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.SuperType;
|
||||||
|
import mage.filter.FilterPermanent;
|
||||||
|
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||||
|
import mage.filter.predicate.mageobject.ToughnessGreaterThanPowerPredicate;
|
||||||
|
import mage.target.common.TargetControlledCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class PlagonLordOfTheBeach extends CardImpl {
|
||||||
|
|
||||||
|
private static final FilterPermanent filter
|
||||||
|
= new FilterControlledCreaturePermanent("creature you control with toughness greater than its power");
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(ToughnessGreaterThanPowerPredicate.instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(filter);
|
||||||
|
private static final Hint hint = new ValueHint("Creatures you control with toughness greater than power", xValue);
|
||||||
|
|
||||||
|
public PlagonLordOfTheBeach(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
|
||||||
|
|
||||||
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
this.subtype.add(SubType.STARFISH);
|
||||||
|
this.subtype.add(SubType.WIZARD);
|
||||||
|
this.power = new MageInt(0);
|
||||||
|
this.toughness = new MageInt(3);
|
||||||
|
|
||||||
|
// When Plagon, Lord of the Beach enters, draw a card for each creature you control with toughness greater than its power.
|
||||||
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(xValue)).addHint(hint));
|
||||||
|
|
||||||
|
// {W/U}: Target creature you control assigns combat damage equal to its toughness rather than its power this turn.
|
||||||
|
Ability ability = new SimpleActivatedAbility(new CombatDamageByToughnessTargetEffect(), new ManaCostsImpl<>("{W/U}"));
|
||||||
|
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||||
|
this.addAbility(ability);
|
||||||
|
}
|
||||||
|
|
||||||
|
private PlagonLordOfTheBeach(final PlagonLordOfTheBeach card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PlagonLordOfTheBeach copy() {
|
||||||
|
return new PlagonLordOfTheBeach(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -508,6 +508,7 @@ public final class FoundationsJumpstart extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Pigment Storm", 585, Rarity.COMMON, mage.cards.p.PigmentStorm.class));
|
cards.add(new SetCardInfo("Pigment Storm", 585, Rarity.COMMON, mage.cards.p.PigmentStorm.class));
|
||||||
cards.add(new SetCardInfo("Pilfering Imp", 475, Rarity.UNCOMMON, mage.cards.p.PilferingImp.class));
|
cards.add(new SetCardInfo("Pilfering Imp", 475, Rarity.UNCOMMON, mage.cards.p.PilferingImp.class));
|
||||||
cards.add(new SetCardInfo("Pitiless Plunderer", 476, Rarity.UNCOMMON, mage.cards.p.PitilessPlunderer.class));
|
cards.add(new SetCardInfo("Pitiless Plunderer", 476, Rarity.UNCOMMON, mage.cards.p.PitilessPlunderer.class));
|
||||||
|
cards.add(new SetCardInfo("Plagon, Lord of the Beach", 37, Rarity.RARE, mage.cards.p.PlagonLordOfTheBeach.class));
|
||||||
cards.add(new SetCardInfo("Plains", 81, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Plains", 81, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Plate Armor", 100, Rarity.UNCOMMON, mage.cards.p.PlateArmor.class));
|
cards.add(new SetCardInfo("Plate Armor", 100, Rarity.UNCOMMON, mage.cards.p.PlateArmor.class));
|
||||||
cards.add(new SetCardInfo("Play with Fire", 586, Rarity.UNCOMMON, mage.cards.p.PlayWithFire.class));
|
cards.add(new SetCardInfo("Play with Fire", 586, Rarity.UNCOMMON, mage.cards.p.PlayWithFire.class));
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
package mage.abilities.effects.common.ruleModifying;
|
package mage.abilities.effects.common.ruleModifying;
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.Mode;
|
import mage.abilities.Mode;
|
||||||
import mage.abilities.effects.ContinuousEffectImpl;
|
import mage.abilities.effects.ContinuousEffectImpl;
|
||||||
|
|
@ -16,8 +12,16 @@ import mage.filter.predicate.permanent.PermanentReferenceInCollectionPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class CombatDamageByToughnessTargetEffect extends ContinuousEffectImpl {
|
public class CombatDamageByToughnessTargetEffect extends ContinuousEffectImpl {
|
||||||
|
|
||||||
|
public CombatDamageByToughnessTargetEffect() {
|
||||||
|
this(Duration.EndOfTurn);
|
||||||
|
}
|
||||||
|
|
||||||
public CombatDamageByToughnessTargetEffect(Duration duration) {
|
public CombatDamageByToughnessTargetEffect(Duration duration) {
|
||||||
super(duration, Layer.RulesEffects, SubLayer.NA, Outcome.Neutral);
|
super(duration, Layer.RulesEffects, SubLayer.NA, Outcome.Neutral);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue