From 5fd20a5987539ab2a23503e20cb12be265b3f3d2 Mon Sep 17 00:00:00 2001 From: melvin Date: Sat, 19 Oct 2013 13:10:30 +0800 Subject: [PATCH] remove getEvent in MagicDiesTrigger, implement should override executeTrigger instead added combine static factory method to compose a trigger with MagicSourceEvent --- .../scripts/Abyssal_Gatekeeper.groovy | 2 +- release/Magarena/scripts/Black_Cat.groovy | 2 +- release/Magarena/scripts/Blistergrub.groovy | 2 +- release/Magarena/scripts/Brindle_Shoat.groovy | 2 +- .../scripts/Butcher_of_Malakir.groovy | 2 +- .../Magarena/scripts/Child_of_Alara.groovy | 2 +- release/Magarena/scripts/Chronozoa.groovy | 2 +- release/Magarena/scripts/Deadly_Grub.groovy | 2 +- .../Magarena/scripts/Doomed_Traveler.groovy | 2 +- .../scripts/Driver_of_the_Dead.groovy | 2 +- release/Magarena/scripts/Elder_Cathar.groovy | 2 +- .../Magarena/scripts/Elgaud_Inquisitor.groovy | 2 +- release/Magarena/scripts/False_Prophet.groovy | 2 +- .../Magarena/scripts/Goblin_Arsonist.groovy | 2 +- .../Magarena/scripts/Goblin_Marshal.groovy | 2 +- .../Gods__Eye__Gate_to_the_Reikai.groovy | 2 +- release/Magarena/scripts/Havoc_Demon.groovy | 2 +- release/Magarena/scripts/Hunting_Moa.groovy | 2 +- .../Magarena/scripts/Hurloon_Shaman.groovy | 2 +- .../scripts/Keiga__the_Tide_Star.groovy | 2 +- .../scripts/Kodama_of_the_Center_Tree.groovy | 4 +- .../scripts/Kokusho__the_Evening_Star.groovy | 2 +- .../Magarena/scripts/Maalfeld_Twins.groovy | 2 +- .../Magarena/scripts/Mausoleum_Guard.groovy | 2 +- release/Magarena/scripts/Mitotic_Slime.groovy | 2 +- .../Magarena/scripts/Mogg_War_Marshal.groovy | 2 +- .../scripts/Moldgraf_Monstrosity.groovy | 2 +- .../Magarena/scripts/Mycoid_Shepherd.groovy | 2 +- release/Magarena/scripts/Myr_Sire.groovy | 2 +- release/Magarena/scripts/Necropede.groovy | 2 +- release/Magarena/scripts/Ooze2.groovy | 2 +- .../Magarena/scripts/Penumbra_Bobcat.groovy | 2 +- release/Magarena/scripts/Penumbra_Kavu.groovy | 2 +- .../Magarena/scripts/Penumbra_Spider.groovy | 2 +- release/Magarena/scripts/Roc_Egg.groovy | 2 +- .../Magarena/scripts/Rotcrown_Ghoul.groovy | 2 +- release/Magarena/scripts/Rukh_Egg.groovy | 2 +- .../Magarena/scripts/Soulcage_Fiend.groovy | 2 +- .../Magarena/scripts/Sprouting_Thrinax.groovy | 2 +- release/Magarena/scripts/Tarpan.groovy | 2 +- .../scripts/Tukatongue_Thallid.groovy | 2 +- .../scripts/Undead_Executioner.groovy | 2 +- .../scripts/Voice_of_Resurgence.groovy | 36 +++++++------- .../scripts/Weatherseed_Treefolk.groovy | 2 +- .../Magarena/scripts/Worldspine_Wurm.groovy | 2 +- .../Magarena/scripts/Wurmcoil_Engine.groovy | 2 +- src/magic/model/MagicAbility.java | 33 ++++++++++--- .../event/MagicTapCreatureActivation.java | 46 ------------------ .../trigger/MagicDieDrawCardTrigger.java | 44 ----------------- .../model/trigger/MagicModularTrigger.java | 4 +- .../model/trigger/MagicPersistTrigger.java | 3 +- .../model/trigger/MagicSoulshiftTrigger.java | 2 +- src/magic/model/trigger/MagicTrigger.java | 34 +++++++++++-- .../model/trigger/MagicUndyingTrigger.java | 3 +- .../MagicWhenComesIntoPlayTrigger.java | 30 ++++-------- .../model/trigger/MagicWhenDiesTrigger.java | 48 ++++++------------- .../trigger/MagicWhenLeavesPlayTrigger.java | 29 ++++------- 57 files changed, 161 insertions(+), 243 deletions(-) delete mode 100644 src/magic/model/event/MagicTapCreatureActivation.java delete mode 100644 src/magic/model/trigger/MagicDieDrawCardTrigger.java diff --git a/release/Magarena/scripts/Abyssal_Gatekeeper.groovy b/release/Magarena/scripts/Abyssal_Gatekeeper.groovy index 567a9f5563..8f64b878cf 100644 --- a/release/Magarena/scripts/Abyssal_Gatekeeper.groovy +++ b/release/Magarena/scripts/Abyssal_Gatekeeper.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Black_Cat.groovy b/release/Magarena/scripts/Black_Cat.groovy index 13c055c437..9a81dd63f6 100644 --- a/release/Magarena/scripts/Black_Cat.groovy +++ b/release/Magarena/scripts/Black_Cat.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { final MagicPlayer opponent = permanent.getOpponent(); return new MagicEvent( permanent, diff --git a/release/Magarena/scripts/Blistergrub.groovy b/release/Magarena/scripts/Blistergrub.groovy index 00e7bb74c5..ff61f8346f 100644 --- a/release/Magarena/scripts/Blistergrub.groovy +++ b/release/Magarena/scripts/Blistergrub.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, permanent.getOpponent(), diff --git a/release/Magarena/scripts/Brindle_Shoat.groovy b/release/Magarena/scripts/Brindle_Shoat.groovy index 64121e40fd..b16a3a681a 100644 --- a/release/Magarena/scripts/Brindle_Shoat.groovy +++ b/release/Magarena/scripts/Brindle_Shoat.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Butcher_of_Malakir.groovy b/release/Magarena/scripts/Butcher_of_Malakir.groovy index b2a5769b6a..ce42d9e67d 100644 --- a/release/Magarena/scripts/Butcher_of_Malakir.groovy +++ b/release/Magarena/scripts/Butcher_of_Malakir.groovy @@ -22,7 +22,7 @@ def event = { [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return event(permanent); } }, diff --git a/release/Magarena/scripts/Child_of_Alara.groovy b/release/Magarena/scripts/Child_of_Alara.groovy index e2f5f45216..45f5a085d5 100644 --- a/release/Magarena/scripts/Child_of_Alara.groovy +++ b/release/Magarena/scripts/Child_of_Alara.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Chronozoa.groovy b/release/Magarena/scripts/Chronozoa.groovy index 8b53e7765c..648c1f3911 100644 --- a/release/Magarena/scripts/Chronozoa.groovy +++ b/release/Magarena/scripts/Chronozoa.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return permanent.getCounters(MagicCounterType.Charge) == 0 ? new MagicEvent( permanent, diff --git a/release/Magarena/scripts/Deadly_Grub.groovy b/release/Magarena/scripts/Deadly_Grub.groovy index 07e2bcddc3..f770c6828f 100644 --- a/release/Magarena/scripts/Deadly_Grub.groovy +++ b/release/Magarena/scripts/Deadly_Grub.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return permanent.getCounters(MagicCounterType.Charge) == 0 ? new MagicEvent( permanent, diff --git a/release/Magarena/scripts/Doomed_Traveler.groovy b/release/Magarena/scripts/Doomed_Traveler.groovy index aa2a6f0a19..fdd6667651 100644 --- a/release/Magarena/scripts/Doomed_Traveler.groovy +++ b/release/Magarena/scripts/Doomed_Traveler.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Driver_of_the_Dead.groovy b/release/Magarena/scripts/Driver_of_the_Dead.groovy index 53a4868bc5..6520f73cce 100644 --- a/release/Magarena/scripts/Driver_of_the_Dead.groovy +++ b/release/Magarena/scripts/Driver_of_the_Dead.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { final MagicTargetChoice targetChoice = new MagicTargetChoice( new MagicTargetFilter.MagicCMCCardFilter( MagicTargetFilter.TARGET_CREATURE_CARD_FROM_GRAVEYARD, diff --git a/release/Magarena/scripts/Elder_Cathar.groovy b/release/Magarena/scripts/Elder_Cathar.groovy index 684e47bb4f..2d4eba0141 100644 --- a/release/Magarena/scripts/Elder_Cathar.groovy +++ b/release/Magarena/scripts/Elder_Cathar.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, MagicTargetChoice.TARGET_CREATURE_YOU_CONTROL, diff --git a/release/Magarena/scripts/Elgaud_Inquisitor.groovy b/release/Magarena/scripts/Elgaud_Inquisitor.groovy index 63030bb65d..187a1b6abe 100644 --- a/release/Magarena/scripts/Elgaud_Inquisitor.groovy +++ b/release/Magarena/scripts/Elgaud_Inquisitor.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/False_Prophet.groovy b/release/Magarena/scripts/False_Prophet.groovy index 64d61306bb..b60d40dead 100644 --- a/release/Magarena/scripts/False_Prophet.groovy +++ b/release/Magarena/scripts/False_Prophet.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Goblin_Arsonist.groovy b/release/Magarena/scripts/Goblin_Arsonist.groovy index 67ee0d2955..fa5d8824a0 100644 --- a/release/Magarena/scripts/Goblin_Arsonist.groovy +++ b/release/Magarena/scripts/Goblin_Arsonist.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, new MagicMayChoice( diff --git a/release/Magarena/scripts/Goblin_Marshal.groovy b/release/Magarena/scripts/Goblin_Marshal.groovy index 34a8beead3..0ff4ae5810 100644 --- a/release/Magarena/scripts/Goblin_Marshal.groovy +++ b/release/Magarena/scripts/Goblin_Marshal.groovy @@ -25,7 +25,7 @@ def event = { }, new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return event(permanent); } } diff --git a/release/Magarena/scripts/Gods__Eye__Gate_to_the_Reikai.groovy b/release/Magarena/scripts/Gods__Eye__Gate_to_the_Reikai.groovy index 96c8d76fc5..b4b583eb02 100644 --- a/release/Magarena/scripts/Gods__Eye__Gate_to_the_Reikai.groovy +++ b/release/Magarena/scripts/Gods__Eye__Gate_to_the_Reikai.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Havoc_Demon.groovy b/release/Magarena/scripts/Havoc_Demon.groovy index b6548e8dc6..b2dca3a0fe 100644 --- a/release/Magarena/scripts/Havoc_Demon.groovy +++ b/release/Magarena/scripts/Havoc_Demon.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Hunting_Moa.groovy b/release/Magarena/scripts/Hunting_Moa.groovy index 2dc28cb59b..3dac9bac3b 100644 --- a/release/Magarena/scripts/Hunting_Moa.groovy +++ b/release/Magarena/scripts/Hunting_Moa.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, MagicTargetChoice.TARGET_CREATURE, diff --git a/release/Magarena/scripts/Hurloon_Shaman.groovy b/release/Magarena/scripts/Hurloon_Shaman.groovy index 8ec5a38d74..e9fcd2174b 100644 --- a/release/Magarena/scripts/Hurloon_Shaman.groovy +++ b/release/Magarena/scripts/Hurloon_Shaman.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Keiga__the_Tide_Star.groovy b/release/Magarena/scripts/Keiga__the_Tide_Star.groovy index ea305c4211..a17678f9c1 100644 --- a/release/Magarena/scripts/Keiga__the_Tide_Star.groovy +++ b/release/Magarena/scripts/Keiga__the_Tide_Star.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, MagicTargetChoice.NEG_TARGET_CREATURE, diff --git a/release/Magarena/scripts/Kodama_of_the_Center_Tree.groovy b/release/Magarena/scripts/Kodama_of_the_Center_Tree.groovy index 5c01d59865..e38746a924 100644 --- a/release/Magarena/scripts/Kodama_of_the_Center_Tree.groovy +++ b/release/Magarena/scripts/Kodama_of_the_Center_Tree.groovy @@ -8,12 +8,12 @@ }, new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { final int cmc = permanent.getGame().filterPermanents( permanent.getController(), MagicTargetFilter.TARGET_SPIRIT_YOU_CONTROL ).size()+1; - return new MagicSoulshiftTrigger(cmc).getEvent(permanent); + return new MagicSoulshiftTrigger(cmc).executeTrigger(game, permanent, data); } } ] diff --git a/release/Magarena/scripts/Kokusho__the_Evening_Star.groovy b/release/Magarena/scripts/Kokusho__the_Evening_Star.groovy index 7502734368..e9bc73a29f 100644 --- a/release/Magarena/scripts/Kokusho__the_Evening_Star.groovy +++ b/release/Magarena/scripts/Kokusho__the_Evening_Star.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Maalfeld_Twins.groovy b/release/Magarena/scripts/Maalfeld_Twins.groovy index cb1f989cd1..437ddf8030 100644 --- a/release/Magarena/scripts/Maalfeld_Twins.groovy +++ b/release/Magarena/scripts/Maalfeld_Twins.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Mausoleum_Guard.groovy b/release/Magarena/scripts/Mausoleum_Guard.groovy index 20bee556d4..b2bd12aa2e 100644 --- a/release/Magarena/scripts/Mausoleum_Guard.groovy +++ b/release/Magarena/scripts/Mausoleum_Guard.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Mitotic_Slime.groovy b/release/Magarena/scripts/Mitotic_Slime.groovy index 7d1a9fb33b..12077941c4 100644 --- a/release/Magarena/scripts/Mitotic_Slime.groovy +++ b/release/Magarena/scripts/Mitotic_Slime.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Mogg_War_Marshal.groovy b/release/Magarena/scripts/Mogg_War_Marshal.groovy index 902629da90..ddf0eedd4c 100644 --- a/release/Magarena/scripts/Mogg_War_Marshal.groovy +++ b/release/Magarena/scripts/Mogg_War_Marshal.groovy @@ -24,7 +24,7 @@ def event = { }, new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return event(permanent); } } diff --git a/release/Magarena/scripts/Moldgraf_Monstrosity.groovy b/release/Magarena/scripts/Moldgraf_Monstrosity.groovy index 6439e3924f..29b7cd7678 100644 --- a/release/Magarena/scripts/Moldgraf_Monstrosity.groovy +++ b/release/Magarena/scripts/Moldgraf_Monstrosity.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Mycoid_Shepherd.groovy b/release/Magarena/scripts/Mycoid_Shepherd.groovy index 4dfddb6f14..0d2168a6f7 100644 --- a/release/Magarena/scripts/Mycoid_Shepherd.groovy +++ b/release/Magarena/scripts/Mycoid_Shepherd.groovy @@ -22,7 +22,7 @@ def event = { [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return event(permanent); } }, diff --git a/release/Magarena/scripts/Myr_Sire.groovy b/release/Magarena/scripts/Myr_Sire.groovy index e0d4204182..5458085936 100644 --- a/release/Magarena/scripts/Myr_Sire.groovy +++ b/release/Magarena/scripts/Myr_Sire.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Necropede.groovy b/release/Magarena/scripts/Necropede.groovy index 2da6cf9c5c..4ae71f36fe 100644 --- a/release/Magarena/scripts/Necropede.groovy +++ b/release/Magarena/scripts/Necropede.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, new MagicMayChoice( diff --git a/release/Magarena/scripts/Ooze2.groovy b/release/Magarena/scripts/Ooze2.groovy index d9d87e2950..7534ea58ab 100644 --- a/release/Magarena/scripts/Ooze2.groovy +++ b/release/Magarena/scripts/Ooze2.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Penumbra_Bobcat.groovy b/release/Magarena/scripts/Penumbra_Bobcat.groovy index 45780ec81d..9bf1dad722 100644 --- a/release/Magarena/scripts/Penumbra_Bobcat.groovy +++ b/release/Magarena/scripts/Penumbra_Bobcat.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Penumbra_Kavu.groovy b/release/Magarena/scripts/Penumbra_Kavu.groovy index 2896e5463b..5f90f2e926 100644 --- a/release/Magarena/scripts/Penumbra_Kavu.groovy +++ b/release/Magarena/scripts/Penumbra_Kavu.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Penumbra_Spider.groovy b/release/Magarena/scripts/Penumbra_Spider.groovy index e1943b6237..4a27701f5a 100644 --- a/release/Magarena/scripts/Penumbra_Spider.groovy +++ b/release/Magarena/scripts/Penumbra_Spider.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Roc_Egg.groovy b/release/Magarena/scripts/Roc_Egg.groovy index 62cbf39e8e..bae658bfa7 100644 --- a/release/Magarena/scripts/Roc_Egg.groovy +++ b/release/Magarena/scripts/Roc_Egg.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Rotcrown_Ghoul.groovy b/release/Magarena/scripts/Rotcrown_Ghoul.groovy index af66a0f000..783d8d5d95 100644 --- a/release/Magarena/scripts/Rotcrown_Ghoul.groovy +++ b/release/Magarena/scripts/Rotcrown_Ghoul.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, MagicTargetChoice.NEG_TARGET_PLAYER, diff --git a/release/Magarena/scripts/Rukh_Egg.groovy b/release/Magarena/scripts/Rukh_Egg.groovy index 2d735dffb7..42f8ef248f 100644 --- a/release/Magarena/scripts/Rukh_Egg.groovy +++ b/release/Magarena/scripts/Rukh_Egg.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Soulcage_Fiend.groovy b/release/Magarena/scripts/Soulcage_Fiend.groovy index d39dc0dad0..7a1554a84f 100644 --- a/release/Magarena/scripts/Soulcage_Fiend.groovy +++ b/release/Magarena/scripts/Soulcage_Fiend.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Sprouting_Thrinax.groovy b/release/Magarena/scripts/Sprouting_Thrinax.groovy index 5ec562af4f..322d3c78a0 100644 --- a/release/Magarena/scripts/Sprouting_Thrinax.groovy +++ b/release/Magarena/scripts/Sprouting_Thrinax.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Tarpan.groovy b/release/Magarena/scripts/Tarpan.groovy index 8189838e3c..fc41744f60 100644 --- a/release/Magarena/scripts/Tarpan.groovy +++ b/release/Magarena/scripts/Tarpan.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Tukatongue_Thallid.groovy b/release/Magarena/scripts/Tukatongue_Thallid.groovy index 5f8c19bad6..90b097a9d0 100644 --- a/release/Magarena/scripts/Tukatongue_Thallid.groovy +++ b/release/Magarena/scripts/Tukatongue_Thallid.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Undead_Executioner.groovy b/release/Magarena/scripts/Undead_Executioner.groovy index 3840dfcd92..73b9af3351 100644 --- a/release/Magarena/scripts/Undead_Executioner.groovy +++ b/release/Magarena/scripts/Undead_Executioner.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, new MagicMayChoice( diff --git a/release/Magarena/scripts/Voice_of_Resurgence.groovy b/release/Magarena/scripts/Voice_of_Resurgence.groovy index d424cdbd82..378d5379d9 100644 --- a/release/Magarena/scripts/Voice_of_Resurgence.groovy +++ b/release/Magarena/scripts/Voice_of_Resurgence.groovy @@ -1,26 +1,30 @@ -def WhenDies = new MagicWhenDiesTrigger() { - @Override - public MagicEvent getEvent(final MagicPermanent permanent) { - return new MagicEvent( - permanent, - this, - "PN puts a green and white Elemental creature token onto the battlefield with " + - "\"This creature's power and toughness are each equal to the number of creatures you control.\"" - ); - } - @Override - public void executeEvent(final MagicGame game, final MagicEvent event) { - game.doAction(new MagicPlayTokenAction(event.getPlayer(), TokenCardDefinitions.get("GW Elemental"))); - } +def Action = { + final MagicGame game, final MagicEvent event -> + game.doAction(new MagicPlayTokenAction(event.getPlayer(), TokenCardDefinitions.get("GW Elemental"))); +} as MagicEventAction + +def Event = { + final MagicPermanent permanent -> + return new MagicEvent( + permanent, + Action, + "PN puts a green and white Elemental creature token onto the battlefield with " + + "\"This creature's power and toughness are each equal to the number of creatures you control.\"" + ); } [ - WhenDies, + new MagicWhenDiesTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { + return Event(permanent); + } + }, new MagicWhenOtherSpellIsCastTrigger() { @Override public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicCardOnStack cardOnStack) { return permanent.isEnemy(cardOnStack) && permanent.isController(game.getTurnPlayer()) ? - WhenDies.getEvent(permanent) : MagicEvent.NONE; + Event(permanent) : MagicEvent.NONE; } } ] diff --git a/release/Magarena/scripts/Weatherseed_Treefolk.groovy b/release/Magarena/scripts/Weatherseed_Treefolk.groovy index 7eaea5c4e0..2adb031433 100644 --- a/release/Magarena/scripts/Weatherseed_Treefolk.groovy +++ b/release/Magarena/scripts/Weatherseed_Treefolk.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Worldspine_Wurm.groovy b/release/Magarena/scripts/Worldspine_Wurm.groovy index 156cdc2d9b..45b4fb9237 100644 --- a/release/Magarena/scripts/Worldspine_Wurm.groovy +++ b/release/Magarena/scripts/Worldspine_Wurm.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/release/Magarena/scripts/Wurmcoil_Engine.groovy b/release/Magarena/scripts/Wurmcoil_Engine.groovy index 4f1309c77b..7a2cce42ab 100644 --- a/release/Magarena/scripts/Wurmcoil_Engine.groovy +++ b/release/Magarena/scripts/Wurmcoil_Engine.groovy @@ -1,7 +1,7 @@ [ new MagicWhenDiesTrigger() { @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicMoveCardAction data) { return new MagicEvent( permanent, this, diff --git a/src/magic/model/MagicAbility.java b/src/magic/model/MagicAbility.java index ec0d48791d..5204aed176 100644 --- a/src/magic/model/MagicAbility.java +++ b/src/magic/model/MagicAbility.java @@ -26,8 +26,10 @@ import magic.model.event.MagicKickerCost; import magic.model.event.MagicMultikickerCost; import magic.model.event.MagicMonstrosityActivation; import magic.model.event.MagicBestowActivation; +import magic.model.event.MagicRuleEventAction; import magic.model.mstatic.MagicCDA; import magic.model.mstatic.MagicStatic; +import magic.model.trigger.MagicTrigger; import magic.model.trigger.MagicAllyGrowTrigger; import magic.model.trigger.MagicAnnihilatorTrigger; import magic.model.trigger.MagicAttacksPumpTrigger; @@ -38,7 +40,6 @@ import magic.model.trigger.MagicComesIntoPlayWithCounterTrigger; import magic.model.trigger.MagicCumulativeUpkeepTrigger; import magic.model.trigger.MagicDamageGrowTrigger; import magic.model.trigger.MagicDevourTrigger; -import magic.model.trigger.MagicDieDrawCardTrigger; import magic.model.trigger.MagicEchoTrigger; import magic.model.trigger.MagicEntersDamageTargetTrigger; import magic.model.trigger.MagicEntersExileCreatureOrSacrificeTrigger; @@ -693,32 +694,50 @@ public enum MagicAbility { }, EntersEffect("enters effect", 10) { protected void addAbilityImpl(final MagicAbilityStore card, final String arg) { - card.add(MagicWhenComesIntoPlayTrigger.create(arg)); + card.add(MagicTrigger.combine( + MagicWhenComesIntoPlayTrigger.NONE, + MagicRuleEventAction.create(arg) + )); } }, EntersMayEffect("enters effect PN may", 10) { protected void addAbilityImpl(final MagicAbilityStore card, final String arg) { - card.add(MagicWhenComesIntoPlayTrigger.createMay(arg)); + card.add(MagicTrigger.combine( + MagicWhenComesIntoPlayTrigger.NONE, + MagicRuleEventAction.createMay(arg) + )); } }, DiesEffect("dies effect", 10) { protected void addAbilityImpl(final MagicAbilityStore card, final String arg) { - card.add(MagicWhenDiesTrigger.create(arg)); + card.add(MagicTrigger.combine( + MagicWhenDiesTrigger.NONE, + MagicRuleEventAction.create(arg) + )); } }, DiesMayEffect("dies effect PN may", 10) { protected void addAbilityImpl(final MagicAbilityStore card, final String arg) { - card.add(MagicWhenDiesTrigger.createMay(arg)); + card.add(MagicTrigger.combine( + MagicWhenDiesTrigger.NONE, + MagicRuleEventAction.createMay(arg) + )); } }, LeavesEffect("leaves effect", 10) { protected void addAbilityImpl(final MagicAbilityStore card, final String arg) { - card.add(MagicWhenLeavesPlayTrigger.create(arg)); + card.add(MagicTrigger.combine( + MagicWhenLeavesPlayTrigger.NONE, + MagicRuleEventAction.create(arg) + )); } }, LeavesMayEffect("leaves effect PN may", 10) { protected void addAbilityImpl(final MagicAbilityStore card, final String arg) { - card.add(MagicWhenLeavesPlayTrigger.createMay(arg)); + card.add(MagicTrigger.combine( + MagicWhenLeavesPlayTrigger.NONE, + MagicRuleEventAction.createMay(arg) + )); } }, ControlEnchanted("control enchanted", 10) { diff --git a/src/magic/model/event/MagicTapCreatureActivation.java b/src/magic/model/event/MagicTapCreatureActivation.java deleted file mode 100644 index 20cbe5a535..0000000000 --- a/src/magic/model/event/MagicTapCreatureActivation.java +++ /dev/null @@ -1,46 +0,0 @@ -package magic.model.event; - -import magic.model.MagicGame; -import magic.model.MagicPayedCost; -import magic.model.MagicPermanent; -import magic.model.action.MagicPermanentAction; -import magic.model.action.MagicTapAction; -import magic.model.choice.MagicTargetChoice; -import magic.model.condition.MagicCondition; -import magic.model.target.MagicTapTargetPicker; - -public abstract class MagicTapCreatureActivation extends MagicPermanentActivation { - - public MagicTapCreatureActivation( - final MagicActivationHints hints, - final String text) { - super(MagicActivation.NO_COND,hints,text); - } - - public MagicTapCreatureActivation( - final MagicCondition[] conds, - final MagicActivationHints hints, - final String text) { - super(conds,hints,text); - } - - @Override - public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) { - return new MagicEvent( - source, - MagicTargetChoice.NEG_TARGET_CREATURE, - MagicTapTargetPicker.Tap, - this, - "Tap target creature$." - ); - } - - @Override - public void executeEvent(final MagicGame game, final MagicEvent event) { - event.processTargetPermanent(game,new MagicPermanentAction() { - public void doAction(final MagicPermanent creature) { - game.doAction(new MagicTapAction(creature,true)); - } - }); - } -} diff --git a/src/magic/model/trigger/MagicDieDrawCardTrigger.java b/src/magic/model/trigger/MagicDieDrawCardTrigger.java deleted file mode 100644 index ea8d083f17..0000000000 --- a/src/magic/model/trigger/MagicDieDrawCardTrigger.java +++ /dev/null @@ -1,44 +0,0 @@ -package magic.model.trigger; - -import magic.model.MagicGame; -import magic.model.MagicLocationType; -import magic.model.MagicPermanent; -import magic.model.action.MagicDrawAction; -import magic.model.choice.MagicSimpleMayChoice; -import magic.model.event.MagicEvent; - -//When C is put into a graveyard from the battlefield, you may or must draw a card. -public class MagicDieDrawCardTrigger extends MagicWhenDiesTrigger { - - private final boolean mustDraw; - - public MagicDieDrawCardTrigger(final boolean mandatory) { - this.mustDraw = mandatory; - } - - @Override - public MagicEvent getEvent(final MagicPermanent permanent) { - return mustDraw ? - new MagicEvent( - permanent, - this, - "PN draws a card." - ): - new MagicEvent( - permanent, - new MagicSimpleMayChoice( - MagicSimpleMayChoice.DRAW_CARDS, - 1, - MagicSimpleMayChoice.DEFAULT_NONE - ), - this, - "PN may$ draw a card." - ); - } - @Override - public void executeEvent(final MagicGame game, final MagicEvent event) { - if (mustDraw || event.isYes()) { - game.doAction(new MagicDrawAction(event.getPlayer())); - } - } -} diff --git a/src/magic/model/trigger/MagicModularTrigger.java b/src/magic/model/trigger/MagicModularTrigger.java index 739e1a651b..5d41d99528 100644 --- a/src/magic/model/trigger/MagicModularTrigger.java +++ b/src/magic/model/trigger/MagicModularTrigger.java @@ -6,12 +6,12 @@ import magic.model.MagicLocationType; import magic.model.MagicPermanent; import magic.model.action.MagicChangeCountersAction; import magic.model.action.MagicPermanentAction; +import magic.model.action.MagicMoveCardAction; import magic.model.choice.MagicMayChoice; import magic.model.choice.MagicTargetChoice; import magic.model.event.MagicEvent; import magic.model.target.MagicPumpTargetPicker; - public class MagicModularTrigger extends MagicWhenDiesTrigger { private static final MagicModularTrigger INSTANCE = new MagicModularTrigger(); @@ -23,7 +23,7 @@ public class MagicModularTrigger extends MagicWhenDiesTrigger { } @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicMoveCardAction act) { final int amount = permanent.getCounters(MagicCounterType.PlusOne); return new MagicEvent( permanent, diff --git a/src/magic/model/trigger/MagicPersistTrigger.java b/src/magic/model/trigger/MagicPersistTrigger.java index 5bfcf974ee..c788b707ca 100644 --- a/src/magic/model/trigger/MagicPersistTrigger.java +++ b/src/magic/model/trigger/MagicPersistTrigger.java @@ -7,6 +7,7 @@ import magic.model.MagicPermanent; import magic.model.action.MagicPlayCardAction; import magic.model.action.MagicPlayMod; import magic.model.action.MagicReanimateAction; +import magic.model.action.MagicMoveCardAction; import magic.model.event.MagicEvent; public class MagicPersistTrigger extends MagicWhenDiesTrigger { @@ -20,7 +21,7 @@ public class MagicPersistTrigger extends MagicWhenDiesTrigger { } @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicMoveCardAction act) { return permanent.getCounters(MagicCounterType.MinusOne) == 0 ? new MagicEvent( permanent, diff --git a/src/magic/model/trigger/MagicSoulshiftTrigger.java b/src/magic/model/trigger/MagicSoulshiftTrigger.java index 7d44f2ea0d..b1388cf158 100644 --- a/src/magic/model/trigger/MagicSoulshiftTrigger.java +++ b/src/magic/model/trigger/MagicSoulshiftTrigger.java @@ -23,7 +23,7 @@ public class MagicSoulshiftTrigger extends MagicWhenDiesTrigger { } @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicMoveCardAction act) { final MagicTargetFilter targetFilter = new MagicTargetFilter.MagicCMCCardFilter( MagicTargetFilter.TARGET_SPIRIT_CARD_FROM_GRAVEYARD, diff --git a/src/magic/model/trigger/MagicTrigger.java b/src/magic/model/trigger/MagicTrigger.java index d9862bb0ae..961f59e8fd 100644 --- a/src/magic/model/trigger/MagicTrigger.java +++ b/src/magic/model/trigger/MagicTrigger.java @@ -5,6 +5,7 @@ import magic.model.MagicChangeCardDefinition; import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.event.MagicEvent; +import magic.model.event.MagicSourceEvent; import magic.model.event.MagicEventAction; /** Lower priority values trigger before higher priority values. */ @@ -19,10 +20,10 @@ public abstract class MagicTrigger implements MagicEventAction,MagicChangeCar private final int priority; - protected MagicTrigger(final int priority) { - this.priority = priority; + protected MagicTrigger(final int aPriority) { + priority = aPriority; } - + protected MagicTrigger() { this(DEFAULT_PRIORITY); } @@ -41,7 +42,7 @@ public abstract class MagicTrigger implements MagicEventAction,MagicChangeCar } public abstract MagicTriggerType getType(); - + public abstract MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final T data); public boolean accept(final MagicPermanent permanent, final T data) { @@ -52,4 +53,29 @@ public abstract class MagicTrigger implements MagicEventAction,MagicChangeCar public void change(final MagicCardDefinition cdef) { cdef.addTrigger(this); } + + public static MagicTrigger combine(final MagicTrigger trigger, final MagicSourceEvent sourceEvent) { + return new MagicTrigger() { + @Override + public MagicTriggerType getType() { + return trigger.getType(); + } + @Override + public boolean accept(final MagicPermanent permanent, final T data) { + return trigger.accept(permanent, data); + } + @Override + public void change(final MagicCardDefinition cdef) { + trigger.change(cdef); + } + @Override + public boolean usesStack() { + return trigger.usesStack(); + } + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final T data) { + return sourceEvent.getEvent(permanent); + } + }; + } } diff --git a/src/magic/model/trigger/MagicUndyingTrigger.java b/src/magic/model/trigger/MagicUndyingTrigger.java index 1167162e8b..3835e76f9d 100644 --- a/src/magic/model/trigger/MagicUndyingTrigger.java +++ b/src/magic/model/trigger/MagicUndyingTrigger.java @@ -7,6 +7,7 @@ import magic.model.MagicPermanent; import magic.model.action.MagicPlayCardAction; import magic.model.action.MagicPlayMod; import magic.model.action.MagicReanimateAction; +import magic.model.action.MagicMoveCardAction; import magic.model.event.MagicEvent; public class MagicUndyingTrigger extends MagicWhenDiesTrigger { @@ -20,7 +21,7 @@ public class MagicUndyingTrigger extends MagicWhenDiesTrigger { } @Override - public MagicEvent getEvent(final MagicPermanent permanent) { + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicMoveCardAction act) { return permanent.getCounters(MagicCounterType.PlusOne) == 0 ? new MagicEvent( permanent, diff --git a/src/magic/model/trigger/MagicWhenComesIntoPlayTrigger.java b/src/magic/model/trigger/MagicWhenComesIntoPlayTrigger.java index a256826ff8..0f43ec1df3 100644 --- a/src/magic/model/trigger/MagicWhenComesIntoPlayTrigger.java +++ b/src/magic/model/trigger/MagicWhenComesIntoPlayTrigger.java @@ -20,10 +20,18 @@ import magic.model.action.MagicChangeCountersAction; import magic.data.TokenCardDefinitions; public abstract class MagicWhenComesIntoPlayTrigger extends MagicTrigger { + + public static final MagicWhenComesIntoPlayTrigger NONE = new MagicWhenComesIntoPlayTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPayedCost data) { + throw new RuntimeException("executeTrigger called on NONE"); + } + }; + public MagicWhenComesIntoPlayTrigger(final int priority) { super(priority); } - + public MagicWhenComesIntoPlayTrigger() {} public MagicTriggerType getType() { @@ -35,26 +43,6 @@ public abstract class MagicWhenComesIntoPlayTrigger extends MagicTrigger { + public static final MagicWhenLeavesPlayTrigger NONE = new MagicWhenLeavesPlayTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicRemoveFromPlayAction data) { + throw new RuntimeException("executeTrigger called on NONE"); + } + }; + public MagicWhenLeavesPlayTrigger(final int priority) { super(priority); } - + public MagicWhenLeavesPlayTrigger() {} public MagicTriggerType getType() { @@ -33,24 +40,4 @@ public abstract class MagicWhenLeavesPlayTrigger extends MagicTrigger