mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
- Converted the triggered ability of Echo
This commit is contained in:
@@ -212,7 +212,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
private TreeMap<Long, Player> tempControllers = new TreeMap<Long, Player>();
|
private TreeMap<Long, Player> tempControllers = new TreeMap<Long, Player>();
|
||||||
|
|
||||||
private String text = "";
|
private String text = "";
|
||||||
private Cost echoCost = null;
|
private String echoCost = "";
|
||||||
private Cost madnessCost = null;
|
private Cost madnessCost = null;
|
||||||
private Cost miracleCost = null;
|
private Cost miracleCost = null;
|
||||||
private String chosenType = "";
|
private String chosenType = "";
|
||||||
@@ -1413,11 +1413,11 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
* @param s
|
* @param s
|
||||||
* a {@link java.lang.String} object.
|
* a {@link java.lang.String} object.
|
||||||
*/
|
*/
|
||||||
public final void setEchoCost(final Cost s) {
|
public final void setEchoCost(final String s) {
|
||||||
this.echoCost = s;
|
this.echoCost = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final Cost getEchoCost() {
|
public final String getEchoCost() {
|
||||||
return this.echoCost;
|
return this.echoCost;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -886,7 +886,7 @@ public class AbilityUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (defined.startsWith("NonReplaced")) {
|
} else if (defined.startsWith("Non")) {
|
||||||
players.addAll(game.getPlayers());
|
players.addAll(game.getPlayers());
|
||||||
players.removeAll(getDefinedPlayers(card, defined.substring(3), sa));
|
players.removeAll(getDefinedPlayers(card, defined.substring(3), sa));
|
||||||
} else if (defined.equals("EnchantedController")) {
|
} else if (defined.equals("EnchantedController")) {
|
||||||
|
|||||||
@@ -2222,7 +2222,7 @@ public class CardFactoryUtil {
|
|||||||
final String[] k = card.getKeyword().get(echoPos).split(":");
|
final String[] k = card.getKeyword().get(echoPos).split(":");
|
||||||
final String manacost = k[1];
|
final String manacost = k[1];
|
||||||
|
|
||||||
card.setEchoCost(new Cost(manacost, false));
|
card.setEchoCost(manacost);
|
||||||
|
|
||||||
final Command intoPlay = new Command() {
|
final Command intoPlay = new Command() {
|
||||||
|
|
||||||
@@ -3190,7 +3190,7 @@ public class CardFactoryUtil {
|
|||||||
card.setSVar("CascadeCleanup", "DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True");
|
card.setSVar("CascadeCleanup", "DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True");
|
||||||
final Trigger cascadeTrigger = TriggerHandler.parseTrigger(trigScript.toString(), card, true);
|
final Trigger cascadeTrigger = TriggerHandler.parseTrigger(trigScript.toString(), card, true);
|
||||||
|
|
||||||
card.addTrigger(cascadeTrigger);;
|
card.addTrigger(cascadeTrigger);
|
||||||
} // Cascade
|
} // Cascade
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import forge.CardPredicates;
|
|||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.CardPredicates.Presets;
|
import forge.CardPredicates.Presets;
|
||||||
import forge.CounterType;
|
import forge.CounterType;
|
||||||
|
import forge.card.ability.AbilityFactory;
|
||||||
import forge.card.cardfactory.CardFactoryUtil;
|
import forge.card.cardfactory.CardFactoryUtil;
|
||||||
import forge.card.cost.Cost;
|
import forge.card.cost.Cost;
|
||||||
import forge.card.mana.ManaCost;
|
import forge.card.mana.ManaCost;
|
||||||
@@ -171,16 +172,11 @@ public class Upkeep extends Phase {
|
|||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
sb.append("Echo for ").append(c).append("\n");
|
sb.append("Echo for ").append(c).append("\n");
|
||||||
|
|
||||||
final Ability sacAbility = new Ability(c, ManaCost.ZERO) {
|
String effect = "AB$ Sacrifice | Cost$ 0 | SacValid$ Self | "
|
||||||
@Override
|
+ "UnlessPayer$ You | UnlessCost$ " + c.getEchoCost();
|
||||||
public void resolve() {
|
|
||||||
Cost cost = c.getEchoCost();
|
|
||||||
boolean hasPaid = c.getController().getController().payManaOptional(c, cost, this, "Echo for " + c, ManaPaymentPurpose.Echo);
|
|
||||||
|
|
||||||
if (!hasPaid)
|
SpellAbility sacAbility = AbilityFactory.getAbility(effect, c);
|
||||||
game.getAction().sacrifice(c, this);;
|
sacAbility.setTrigger(true);
|
||||||
}
|
|
||||||
};
|
|
||||||
sacAbility.setActivatingPlayer(c.getController());
|
sacAbility.setActivatingPlayer(c.getController());
|
||||||
sacAbility.setStackDescription(sb.toString());
|
sacAbility.setStackDescription(sb.toString());
|
||||||
sacAbility.setDescription(sb.toString());
|
sacAbility.setDescription(sb.toString());
|
||||||
|
|||||||
Reference in New Issue
Block a user