- Cleanup of CloneEffect.

This commit is contained in:
Sloth
2012-11-24 22:48:27 +00:00
parent 5c6805dc75
commit 9a5aab4c4a

View File

@@ -2,7 +2,6 @@ package forge.card.abilityfactory.effects;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import java.util.Map; import java.util.Map;
import forge.Card; import forge.Card;
@@ -23,38 +22,47 @@ public class CloneEffect extends SpellEffect {
@Override @Override
protected String getStackDescription(SpellAbility sa) { protected String getStackDescription(SpellAbility sa) {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
final Card host = sa.getSourceCard();
Card tgtCard = host;
final List<Card> tgts = getTargetCards(sa); Card cardToCopy = host;
final Target tgt = sa.getTarget();
if (sa.hasParam("Defined")) {
ArrayList<Card> cloneSources = AbilityFactory.getDefinedCards(host, sa.getParam("Defined"), sa);
if (!cloneSources.isEmpty()) {
cardToCopy = cloneSources.get(0);
}
} else if (tgt != null) {
cardToCopy = tgt.getTargetCards().get(0);
}
sb.append(sa.getSourceCard()); ArrayList<Card> cloneTargets = AbilityFactory.getDefinedCards(host, sa.getParam("CloneTarget"), sa);
sb.append(" becomes a copy of "); if (!cloneTargets.isEmpty()) {
if (!tgts.isEmpty()) { tgtCard = cloneTargets.get(0);
sb.append(tgts.get(0)).append(".");
}
else {
sb.append("target creature.");
} }
sb.append(tgtCard);
sb.append(" becomes a copy of " + cardToCopy + ".");
return sb.toString(); return sb.toString();
} // end cloneStackDescription() } // end cloneStackDescription()
@Override @Override
public void resolve(SpellAbility sa) { public void resolve(SpellAbility sa) {
Card tgtCard;
final Card host = sa.getSourceCard(); final Card host = sa.getSourceCard();
Card tgtCard = host;
Map<String, String> origSVars = host.getSVars(); Map<String, String> origSVars = host.getSVars();
// find cloning source i.e. thing to be copied // find cloning source i.e. thing to be copied
Card cardToCopy = null; Card cardToCopy = null;
final Target tgt = sa.getTarget(); final Target tgt = sa.getTarget();
if (tgt != null) { if (sa.hasParam("Defined")) {
cardToCopy = tgt.getTargetCards().get(0);
}
else if (sa.hasParam("Defined")) {
ArrayList<Card> cloneSources = AbilityFactory.getDefinedCards(host, sa.getParam("Defined"), sa); ArrayList<Card> cloneSources = AbilityFactory.getDefinedCards(host, sa.getParam("Defined"), sa);
if (!cloneSources.isEmpty()) { if (!cloneSources.isEmpty()) {
cardToCopy = cloneSources.get(0); cardToCopy = cloneSources.get(0);
} }
} else if (tgt != null) {
cardToCopy = tgt.getTargetCards().get(0);
} }
if (cardToCopy == null) { if (cardToCopy == null) {
return; return;
@@ -73,9 +81,6 @@ public class CloneEffect extends SpellEffect {
if (!cloneTargets.isEmpty()) { if (!cloneTargets.isEmpty()) {
tgtCard = cloneTargets.get(0); tgtCard = cloneTargets.get(0);
} }
else {
tgtCard = host;
}
String imageFileName = host.getImageFilename(); String imageFileName = host.getImageFilename();
@@ -275,7 +280,6 @@ public class CloneEffect extends SpellEffect {
} }
} }
tgtCard.addColor(shortColors, tgtCard, !sa.hasParam("OverwriteColors"), true); tgtCard.addColor(shortColors, tgtCard, !sa.hasParam("OverwriteColors"), true);
} }
} }