diff --git a/Mage.Sets/src/mage/cards/g/GylwainCastingDirector.java b/Mage.Sets/src/mage/cards/g/GylwainCastingDirector.java new file mode 100644 index 00000000000..bd409f79b7e --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GylwainCastingDirector.java @@ -0,0 +1,53 @@ +package mage.cards.g; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.Mode; +import mage.abilities.common.EntersBattlefieldThisOrAnotherTriggeredAbility; +import mage.abilities.effects.common.CreateRoleAttachedTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class GylwainCastingDirector extends CardImpl { + + public GylwainCastingDirector(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{W}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.BARD); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Whenever Gylwain, Casting Director or another nontoken creature enters the battlefield under your control, choose one -- + // * Create a Royal Role token attached to that creature. + Ability ability = new EntersBattlefieldThisOrAnotherTriggeredAbility( + new CreateRoleAttachedTargetEffect(RoleType.ROYAL), + StaticFilters.FILTER_CREATURE_NON_TOKEN, + false, SetTargetPointer.PERMANENT, true + ); + + // * Create a Sorcerer Role token attached to that creature. + ability.addMode(new Mode(new CreateRoleAttachedTargetEffect(RoleType.SORCERER))); + + // * Create a Monster Role token attached to that creature. + ability.addMode(new Mode(new CreateRoleAttachedTargetEffect(RoleType.MONSTER))); + this.addAbility(ability); + } + + private GylwainCastingDirector(final GylwainCastingDirector card) { + super(card); + } + + @Override + public GylwainCastingDirector copy() { + return new GylwainCastingDirector(this); + } +} diff --git a/Mage.Sets/src/mage/sets/WildsOfEldraineCommander.java b/Mage.Sets/src/mage/sets/WildsOfEldraineCommander.java index 4ee9d102ce4..3211e22e1b1 100644 --- a/Mage.Sets/src/mage/sets/WildsOfEldraineCommander.java +++ b/Mage.Sets/src/mage/sets/WildsOfEldraineCommander.java @@ -20,6 +20,7 @@ public final class WildsOfEldraineCommander extends ExpansionSet { this.hasBasicLands = false; cards.add(new SetCardInfo("Ellivere of the Wild Court", 2, Rarity.MYTHIC, mage.cards.e.EllivereOfTheWildCourt.class)); + cards.add(new SetCardInfo("Gylwain, Casting Director", 4, Rarity.MYTHIC, mage.cards.g.GylwainCastingDirector.class)); cards.add(new SetCardInfo("Tegwyll, Duke of Splendor", 1, Rarity.MYTHIC, mage.cards.t.TegwyllDukeOfSplendor.class)); } } diff --git a/Mage/src/main/java/mage/abilities/common/EntersBattlefieldAllTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/EntersBattlefieldAllTriggeredAbility.java index c1998230708..570a5b042bf 100644 --- a/Mage/src/main/java/mage/abilities/common/EntersBattlefieldAllTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/EntersBattlefieldAllTriggeredAbility.java @@ -81,14 +81,14 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl { if (!filter.match(permanent, getControllerId(), this, game)) { return false; } - this.getEffects().setValue("permanentEnteringBattlefield", permanent); - this.getEffects().setValue("permanentEnteringControllerId", permanent.getControllerId()); + this.getAllEffects().setValue("permanentEnteringBattlefield", permanent); + this.getAllEffects().setValue("permanentEnteringControllerId", permanent.getControllerId()); switch (setTargetPointer) { case PLAYER: - this.getEffects().setTargetPointer(new FixedTarget(permanent.getControllerId())); + this.getAllEffects().setTargetPointer(new FixedTarget(permanent.getControllerId())); break; case PERMANENT: - this.getEffects().setTargetPointer(new FixedTarget(permanent, game)); + this.getAllEffects().setTargetPointer(new FixedTarget(permanent, game)); break; default: } diff --git a/Mage/src/main/java/mage/abilities/effects/common/CreateRoleAttachedTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CreateRoleAttachedTargetEffect.java index 8b74f3b3c7c..ff5652ea894 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/CreateRoleAttachedTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/CreateRoleAttachedTargetEffect.java @@ -46,6 +46,6 @@ public class CreateRoleAttachedTargetEffect extends OneShotEffect { return staticText; } return "create a " + roleType.getName() + " Role token attached to " + - getTargetPointer().describeTargets(mode.getTargets(), "it"); + getTargetPointer().describeTargets(mode.getTargets(), "that creature"); } }