improve getStackDescription for some more Effects

This commit is contained in:
Tim Mocny
2022-02-05 19:11:15 +00:00
committed by Michael Kamensky
parent de2924ff91
commit edab767b19
3 changed files with 23 additions and 7 deletions

View File

@@ -2,7 +2,7 @@ package forge.game.ability.effects;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import forge.util.Lang;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
@@ -28,8 +28,8 @@ public class PhasesEffect extends SpellAbilityEffect {
// when getStackDesc is called, just build exactly what is happening
final StringBuilder sb = new StringBuilder();
final List<Card> tgtCards = getTargetCards(sa);
sb.append(StringUtils.join(tgtCards, ", "));
sb.append(" Phases Out.");
sb.append(Lang.joinHomogenous(tgtCards));
sb.append(tgtCards.size() == 1 ? " phases out." : " phase out.");
return sb.toString();
}

View File

@@ -8,6 +8,7 @@ import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityEffect;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.util.Lang;
import forge.util.Localizer;
@@ -16,16 +17,16 @@ public class ScryEffect extends SpellAbilityEffect {
protected String getStackDescription(SpellAbility sa) {
final StringBuilder sb = new StringBuilder();
for (final Player p : getTargetPlayers(sa)) {
sb.append(p.toString()).append(" ");
}
final List<Player> players = Lists.newArrayList(); // players really affected
players.addAll(getTargetPlayers(sa));
sb.append(Lang.joinHomogenous(players)).append(" ");
int num = 1;
if (sa.hasParam("ScryNum")) {
num = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("ScryNum"), sa);
}
sb.append("scrys (").append(num).append(").");
sb.append(players.size() == 1 ? "scries " : "scry ").append(num).append(".");
return sb.toString();
}

View File

@@ -17,6 +17,9 @@
*/
package forge.game.ability.effects;
import java.util.List;
import forge.util.Lang;
import org.apache.commons.lang3.mutable.MutableBoolean;
import forge.game.Game;
@@ -25,12 +28,24 @@ import forge.game.card.Card;
import forge.game.card.CardZoneTable;
import forge.game.event.GameEventCombatChanged;
import forge.game.event.GameEventTokenCreated;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
public class TokenEffect extends TokenEffectBase {
@Override
protected String getStackDescription(SpellAbility sa) {
if (sa.hasParam("SpellDescription")) {
String desc = sa.getParam("SpellDescription");
if (desc.startsWith("Create")) {
final Card host = sa.getHostCard();
final List<Player> creators = AbilityUtils.getDefinedPlayers(host, sa.getParamOrDefault("TokenOwner",
"You"), sa);
String start = Lang.joinHomogenous(creators) + (creators.size() == 1 ? " creates" : " create");
desc = desc.replace("Create",start);
}
return desc;
}
return sa.getDescription();
}