diff --git a/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java b/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java
index 8ba79f0a687..05e20336ec0 100644
--- a/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java
+++ b/Mage/src/main/java/mage/abilities/keyword/EmbalmAbility.java
@@ -17,6 +17,8 @@ import mage.game.permanent.token.EmptyToken;
import mage.players.Player;
import mage.util.CardUtil;
+import java.util.stream.Collectors;
+
/**
* @author LevelX2
*/
@@ -29,7 +31,6 @@ public class EmbalmAbility extends ActivatedAbilityImpl {
addCost(new ExileSourceFromGraveCost());
this.rule = setRule(cost, card);
this.timing = TimingRule.SORCERY;
- setRule(cost, card);
}
public EmbalmAbility(final EmbalmAbility ability) {
@@ -48,14 +49,14 @@ public class EmbalmAbility extends ActivatedAbilityImpl {
}
private String setRule(Cost cost, Card card) {
- StringBuilder sb = new StringBuilder("Embalm ").append(cost.getText());
- sb.append(" (").append(cost.getText());
- sb.append(", Exile this card from your graveyard: Create a token that's a copy of it, except it's a white Zombie ");
- for (SubType subtype : card.getSubtype()) {
- sb.append(subtype).append(" ");
- }
- sb.append(" with no mana cost. Embalm only as a sorcery.)");
- return sb.toString();
+ return "Embalm " + cost.getText() + " (" + cost.getText() + ", Exile this card from your graveyard: " +
+ "Create a token that's a copy of it, except it's a white Zombie " +
+ card.getSubtype()
+ .stream()
+ .map(SubType::getDescription)
+ .map(s -> s + ' ')
+ .collect(Collectors.joining()) +
+ "with no mana cost. Embalm only as a sorcery.)";
}
}
diff --git a/Mage/src/main/java/mage/abilities/keyword/EternalizeAbility.java b/Mage/src/main/java/mage/abilities/keyword/EternalizeAbility.java
index 4d930718fbb..5e51bf619ef 100644
--- a/Mage/src/main/java/mage/abilities/keyword/EternalizeAbility.java
+++ b/Mage/src/main/java/mage/abilities/keyword/EternalizeAbility.java
@@ -17,24 +17,24 @@ import mage.game.permanent.token.EmptyToken;
import mage.players.Player;
import mage.util.CardUtil;
+import java.util.stream.Collectors;
+
/**
* @author igoudt
*/
public class EternalizeAbility extends ActivatedAbilityImpl {
- private String rule;
+ private final String rule;
public EternalizeAbility(Cost cost, Card card) {
- super(Zone.GRAVEYARD, new EternalizeEffect(), cost);
- addCost(new ExileSourceFromGraveCost());
- this.rule = setRule(cost, card);
- this.timing = TimingRule.SORCERY;
- setRule(cost, card);
+ this(cost, card, setRule(cost, card));
}
public EternalizeAbility(Cost cost, Card card, String rule) {
- this(cost, card);
+ super(Zone.GRAVEYARD, new EternalizeEffect(), cost);
+ addCost(new ExileSourceFromGraveCost());
this.rule = rule;
+ this.timing = TimingRule.SORCERY;
}
public EternalizeAbility(final EternalizeAbility ability) {
@@ -52,15 +52,15 @@ public class EternalizeAbility extends ActivatedAbilityImpl {
return rule;
}
- private String setRule(Cost cost, Card card) {
- StringBuilder sb = new StringBuilder("Eternalize ").append(cost.getText());
- sb.append(" (").append(cost.getText());
- sb.append(", Exile this card from your graveyard: Create a token that's a copy of it, except it's a 4/4 black Zombie ");
- for (SubType subtype : card.getSubtype()) {
- sb.append(subtype).append(" ");
- }
- sb.append(" with no mana cost. Eternalize only as a sorcery.)");
- return sb.toString();
+ private static String setRule(Cost cost, Card card) {
+ return "Eternalize " + cost.getText() + " (" + cost.getText() + ", Exile this card from your graveyard: " +
+ "Create a token that's a copy of it, except it's a 4/4 black Zombie " +
+ card.getSubtype()
+ .stream()
+ .map(SubType::getDescription)
+ .map(s -> s + ' ')
+ .collect(Collectors.joining()) +
+ "with no mana cost. Eternalize only as a sorcery.)";
}
}