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.)"; } }