From e33d952fc6acab54a8f320d99e11bd0ca4e8025b Mon Sep 17 00:00:00 2001 From: Hanmac Date: Wed, 2 Nov 2016 20:40:24 +0000 Subject: [PATCH] PermanentEffect: add Base class for PermanentCreatureEffect and PermanentNoncreatureEffect --- .gitattributes | 1 + .../effects/PermanentCreatureEffect.java | 16 +-------- .../game/ability/effects/PermanentEffect.java | 33 +++++++++++++++++++ .../effects/PermanentNoncreatureEffect.java | 16 +-------- 4 files changed, 36 insertions(+), 30 deletions(-) create mode 100644 forge-game/src/main/java/forge/game/ability/effects/PermanentEffect.java diff --git a/.gitattributes b/.gitattributes index d23ea6cb328..bd650420e01 100644 --- a/.gitattributes +++ b/.gitattributes @@ -417,6 +417,7 @@ forge-game/src/main/java/forge/game/ability/effects/MustBlockEffect.java -text forge-game/src/main/java/forge/game/ability/effects/OwnershipGainEffect.java -text forge-game/src/main/java/forge/game/ability/effects/PeekAndRevealEffect.java -text forge-game/src/main/java/forge/game/ability/effects/PermanentCreatureEffect.java -text +forge-game/src/main/java/forge/game/ability/effects/PermanentEffect.java -text svneol=unset#text/plain forge-game/src/main/java/forge/game/ability/effects/PermanentNoncreatureEffect.java -text forge-game/src/main/java/forge/game/ability/effects/PhasesEffect.java -text forge-game/src/main/java/forge/game/ability/effects/PlaneswalkEffect.java -text diff --git a/forge-game/src/main/java/forge/game/ability/effects/PermanentCreatureEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PermanentCreatureEffect.java index e2d49d01f7d..a43bf1e41d9 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PermanentCreatureEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PermanentCreatureEffect.java @@ -1,27 +1,13 @@ package forge.game.ability.effects; -import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; -import forge.game.player.Player; import forge.game.spellability.SpellAbility; -import forge.game.zone.ZoneType; /** * TODO: Write javadoc for this type. * */ -public class PermanentCreatureEffect extends SpellAbilityEffect { - - /* (non-Javadoc) - * @see forge.card.abilityfactory.SpellEffect#resolve(forge.card.spellability.SpellAbility) - */ - @Override - public void resolve(SpellAbility sa) { - Player p = sa.getActivatingPlayer(); - sa.getHostCard().setController(p, 0); - final Card c = p.getGame().getAction().moveTo(p.getZone(ZoneType.Battlefield), sa.getHostCard()); - sa.setHostCard(c); - } +public class PermanentCreatureEffect extends PermanentEffect { @Override public String getStackDescription(final SpellAbility sa) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/PermanentEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PermanentEffect.java new file mode 100644 index 00000000000..3fae2430064 --- /dev/null +++ b/forge-game/src/main/java/forge/game/ability/effects/PermanentEffect.java @@ -0,0 +1,33 @@ +package forge.game.ability.effects; + +import forge.game.ability.SpellAbilityEffect; +import forge.game.card.Card; +import forge.game.player.Player; +import forge.game.spellability.SpellAbility; + +public class PermanentEffect extends SpellAbilityEffect { + + /* + * (non-Javadoc) + * + * @see + * forge.card.abilityfactory.SpellEffect#resolve(forge.card.spellability. + * SpellAbility) + */ + @Override + public void resolve(SpellAbility sa) { + Player p = sa.getActivatingPlayer(); + sa.getHostCard().setController(p, 0); + final Card host = sa.getHostCard(); + + final Card c = p.getGame().getAction().moveToPlay(host, p); + sa.setHostCard(c); + + // some extra for Dashing + if (sa.isDash()) { + c.addExtrinsicKeyword("Haste"); + c.setSVar("EndOfTurnLeavePlay", "True"); + c.updateKeywords(); + } + } +} diff --git a/forge-game/src/main/java/forge/game/ability/effects/PermanentNoncreatureEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PermanentNoncreatureEffect.java index d69be154633..5005288361f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PermanentNoncreatureEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PermanentNoncreatureEffect.java @@ -1,27 +1,13 @@ package forge.game.ability.effects; -import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; -import forge.game.player.Player; import forge.game.spellability.SpellAbility; -import forge.game.zone.ZoneType; /** * TODO: Write javadoc for this type. * */ -public class PermanentNoncreatureEffect extends SpellAbilityEffect { - - /* (non-Javadoc) - * @see forge.card.abilityfactory.SpellEffect#resolve(forge.card.spellability.SpellAbility) - */ - @Override - public void resolve(SpellAbility sa) { - final Player p = sa.getActivatingPlayer(); - sa.getHostCard().setController(p, 0); - final Card c = p.getGame().getAction().moveTo(p.getZone(ZoneType.Battlefield), sa.getHostCard()); - sa.setHostCard(c); - } +public class PermanentNoncreatureEffect extends PermanentEffect { @Override public String getStackDescription(final SpellAbility sa) {