forked from External/mage
[DSK] Implement Dollmaker's Shop // Porcelain Gallery
This commit is contained in:
parent
7e0fdcbe64
commit
d63cfa56f8
6 changed files with 92 additions and 0 deletions
|
|
@ -2558,6 +2558,7 @@ public class ScryfallImageSupportTokens {
|
|||
put("DSK/Spider", "https://api.scryfall.com/cards/tdsk/12?format=image");
|
||||
put("DSK/Spirit/1", "https://api.scryfall.com/cards/tdsk/6?format=image");
|
||||
put("DSK/Spirit/2", "https://api.scryfall.com/cards/tdsk/8?format=image");
|
||||
put("DSK/Toy", "https://api.scryfall.com/cards/tdsk/7?format=image");
|
||||
put("DSK/Treasure", "https://api.scryfall.com/cards/tdsk/15?format=image");
|
||||
|
||||
// DSC
|
||||
|
|
|
|||
|
|
@ -0,0 +1,54 @@
|
|||
package mage.cards.d;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksPlayerWithCreaturesTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.SetBasePowerToughnessAllEffect;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.cards.RoomCard;
|
||||
import mage.constants.*;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.game.permanent.token.ToyToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author PurpleCrowbar
|
||||
*/
|
||||
public final class DollmakersShopPorcelainGallery extends RoomCard {
|
||||
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("non-Toy creatures you control");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(SubType.TOY.getPredicate()));
|
||||
}
|
||||
|
||||
public DollmakersShopPorcelainGallery(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}", "{4}{W}{W}", SpellAbilityType.SPLIT);
|
||||
this.subtype.add(SubType.ROOM);
|
||||
|
||||
// Dollmaker's Shop: Whenever one or more non-Toy creatures you control attack a player, create a 1/1 white Toy artifact creature token.
|
||||
Ability left = new AttacksPlayerWithCreaturesTriggeredAbility(new CreateTokenEffect(new ToyToken()), filter, SetTargetPointer.NONE);
|
||||
|
||||
// Porcelain Gallery: Creatures you control have base power and toughness each equal to the number of creatures you control.
|
||||
Ability right = new SimpleStaticAbility(new SetBasePowerToughnessAllEffect(
|
||||
CreaturesYouControlCount.PLURAL, Duration.WhileOnBattlefield, StaticFilters.FILTER_CONTROLLED_CREATURES
|
||||
).setText("Creatures you control have base power and toughness each equal to the number of creatures you control"));
|
||||
|
||||
this.addRoomAbilities(left, right.addHint(new ValueHint("Creatures you control", CreaturesYouControlCount.PLURAL)));
|
||||
}
|
||||
|
||||
private DollmakersShopPorcelainGallery (final DollmakersShopPorcelainGallery card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DollmakersShopPorcelainGallery copy() {
|
||||
return new DollmakersShopPorcelainGallery(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -79,6 +79,8 @@ public final class DuskmournHouseOfHorror extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Dissection Tools", 385, Rarity.RARE, mage.cards.d.DissectionTools.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Disturbing Mirth", 212, Rarity.UNCOMMON, mage.cards.d.DisturbingMirth.class));
|
||||
cards.add(new SetCardInfo("Diversion Specialist", 132, Rarity.UNCOMMON, mage.cards.d.DiversionSpecialist.class));
|
||||
cards.add(new SetCardInfo("Dollmaker's Shop // Porcelain Gallery", 4, Rarity.MYTHIC, mage.cards.d.DollmakersShopPorcelainGallery.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Dollmaker's Shop // Porcelain Gallery", 335, Rarity.MYTHIC, mage.cards.d.DollmakersShopPorcelainGallery.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Don't Make a Sound", 49, Rarity.COMMON, mage.cards.d.DontMakeASound.class));
|
||||
cards.add(new SetCardInfo("Doomsday Excruciator", 346, Rarity.RARE, mage.cards.d.DoomsdayExcruciator.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Doomsday Excruciator", 94, Rarity.RARE, mage.cards.d.DoomsdayExcruciator.class, NON_FULL_USE_VARIOUS));
|
||||
|
|
|
|||
|
|
@ -34,6 +34,10 @@ public class SetBasePowerToughnessAllEffect extends ContinuousEffectImpl {
|
|||
this(StaticValue.get(power), StaticValue.get(toughness), duration, filter);
|
||||
}
|
||||
|
||||
public SetBasePowerToughnessAllEffect(DynamicValue stats, Duration duration, FilterPermanent filter) {
|
||||
this(stats, stats, duration, filter);
|
||||
}
|
||||
|
||||
public SetBasePowerToughnessAllEffect(DynamicValue power, DynamicValue toughness, Duration duration, FilterPermanent filter) {
|
||||
super(duration, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature);
|
||||
this.power = power;
|
||||
|
|
|
|||
30
Mage/src/main/java/mage/game/permanent/token/ToyToken.java
Normal file
30
Mage/src/main/java/mage/game/permanent/token/ToyToken.java
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
/**
|
||||
* @author PurpleCrowbar
|
||||
*/
|
||||
public final class ToyToken extends TokenImpl {
|
||||
|
||||
public ToyToken() {
|
||||
super("Toy Token", "1/1 white Toy artifact creature token");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.TOY);
|
||||
color.setWhite(true);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
}
|
||||
|
||||
private ToyToken(final ToyToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ToyToken copy() {
|
||||
return new ToyToken(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -2793,6 +2793,7 @@
|
|||
|Generate|TOK:DSK|Spider|||Spider22Token|
|
||||
|Generate|TOK:DSK|Spirit|1||Spirit31Token|
|
||||
|Generate|TOK:DSK|Spirit|2||SpiritBlueToken|
|
||||
|Generate|TOK:DSK|Toy|||ToyToken|
|
||||
|Generate|TOK:DSK|Treasure|||TreasureToken|
|
||||
|
||||
# FIN
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue