mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
[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/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/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/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");
|
put("DSK/Treasure", "https://api.scryfall.com/cards/tdsk/15?format=image");
|
||||||
|
|
||||||
// DSC
|
// 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("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("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("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("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", 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));
|
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);
|
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) {
|
public SetBasePowerToughnessAllEffect(DynamicValue power, DynamicValue toughness, Duration duration, FilterPermanent filter) {
|
||||||
super(duration, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature);
|
super(duration, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature);
|
||||||
this.power = power;
|
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|Spider|||Spider22Token|
|
||||||
|Generate|TOK:DSK|Spirit|1||Spirit31Token|
|
|Generate|TOK:DSK|Spirit|1||Spirit31Token|
|
||||||
|Generate|TOK:DSK|Spirit|2||SpiritBlueToken|
|
|Generate|TOK:DSK|Spirit|2||SpiritBlueToken|
|
||||||
|
|Generate|TOK:DSK|Toy|||ToyToken|
|
||||||
|Generate|TOK:DSK|Treasure|||TreasureToken|
|
|Generate|TOK:DSK|Treasure|||TreasureToken|
|
||||||
|
|
||||||
# FIN
|
# FIN
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue