- Converted the triggered ability of Echo

This commit is contained in:
swordshine
2013-08-05 10:49:46 +00:00
parent 1d2666c598
commit ec645d7f0e
4 changed files with 12 additions and 16 deletions

View File

@@ -212,7 +212,7 @@ public class Card extends GameEntity implements Comparable<Card> {
private TreeMap<Long, Player> tempControllers = new TreeMap<Long, Player>();
private String text = "";
private Cost echoCost = null;
private String echoCost = "";
private Cost madnessCost = null;
private Cost miracleCost = null;
private String chosenType = "";
@@ -1413,11 +1413,11 @@ public class Card extends GameEntity implements Comparable<Card> {
* @param s
* a {@link java.lang.String} object.
*/
public final void setEchoCost(final Cost s) {
public final void setEchoCost(final String s) {
this.echoCost = s;
}
public final Cost getEchoCost() {
public final String getEchoCost() {
return this.echoCost;
}

View File

@@ -886,7 +886,7 @@ public class AbilityUtils {
}
}
}
} else if (defined.startsWith("NonReplaced")) {
} else if (defined.startsWith("Non")) {
players.addAll(game.getPlayers());
players.removeAll(getDefinedPlayers(card, defined.substring(3), sa));
} else if (defined.equals("EnchantedController")) {

View File

@@ -2222,7 +2222,7 @@ public class CardFactoryUtil {
final String[] k = card.getKeyword().get(echoPos).split(":");
final String manacost = k[1];
card.setEchoCost(new Cost(manacost, false));
card.setEchoCost(manacost);
final Command intoPlay = new Command() {
@@ -3190,7 +3190,7 @@ public class CardFactoryUtil {
card.setSVar("CascadeCleanup", "DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True");
final Trigger cascadeTrigger = TriggerHandler.parseTrigger(trigScript.toString(), card, true);
card.addTrigger(cascadeTrigger);;
card.addTrigger(cascadeTrigger);
} // Cascade
}

View File

@@ -29,6 +29,7 @@ import forge.CardPredicates;
import forge.Singletons;
import forge.CardPredicates.Presets;
import forge.CounterType;
import forge.card.ability.AbilityFactory;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.mana.ManaCost;
@@ -171,16 +172,11 @@ public class Upkeep extends Phase {
final StringBuilder sb = new StringBuilder();
sb.append("Echo for ").append(c).append("\n");
final Ability sacAbility = new Ability(c, ManaCost.ZERO) {
@Override
public void resolve() {
Cost cost = c.getEchoCost();
boolean hasPaid = c.getController().getController().payManaOptional(c, cost, this, "Echo for " + c, ManaPaymentPurpose.Echo);
String effect = "AB$ Sacrifice | Cost$ 0 | SacValid$ Self | "
+ "UnlessPayer$ You | UnlessCost$ " + c.getEchoCost();
if (!hasPaid)
game.getAction().sacrifice(c, this);;
}
};
SpellAbility sacAbility = AbilityFactory.getAbility(effect, c);
sacAbility.setTrigger(true);
sacAbility.setActivatingPlayer(c.getController());
sacAbility.setStackDescription(sb.toString());
sacAbility.setDescription(sb.toString());