PermanentEffect: add Base class for PermanentCreatureEffect and PermanentNoncreatureEffect

This commit is contained in:
Hanmac
2016-11-02 20:40:24 +00:00
parent b67efa4a01
commit e33d952fc6
4 changed files with 36 additions and 30 deletions

1
.gitattributes vendored
View File

@@ -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/OwnershipGainEffect.java -text
forge-game/src/main/java/forge/game/ability/effects/PeekAndRevealEffect.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/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/PermanentNoncreatureEffect.java -text
forge-game/src/main/java/forge/game/ability/effects/PhasesEffect.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 forge-game/src/main/java/forge/game/ability/effects/PlaneswalkEffect.java -text

View File

@@ -1,27 +1,13 @@
package forge.game.ability.effects; package forge.game.ability.effects;
import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *
*/ */
public class PermanentCreatureEffect extends SpellAbilityEffect { public class PermanentCreatureEffect extends PermanentEffect {
/* (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);
}
@Override @Override
public String getStackDescription(final SpellAbility sa) { public String getStackDescription(final SpellAbility sa) {

View File

@@ -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();
}
}
}

View File

@@ -1,27 +1,13 @@
package forge.game.ability.effects; package forge.game.ability.effects;
import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *
*/ */
public class PermanentNoncreatureEffect extends SpellAbilityEffect { public class PermanentNoncreatureEffect extends PermanentEffect {
/* (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);
}
@Override @Override
public String getStackDescription(final SpellAbility sa) { public String getStackDescription(final SpellAbility sa) {