diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 93378243eed..9abe79c01e7 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -1404,8 +1404,7 @@ public class Card extends GameEntity implements Comparable { int i = 0; for (KeywordInterface inst : keywords) { String keyword = inst.getOriginal(); - if (keyword.startsWith("PreventAllDamageBy") - || keyword.startsWith("CantEquip") + if (keyword.startsWith("CantEquip") || keyword.startsWith("SpellCantTarget")) { continue; } @@ -3427,17 +3426,7 @@ public class Card extends GameEntity implements Comparable { */ private void updateChangedText() { resetChangedSVars(); - final List allAbs = ImmutableList.builder() - .addAll(getSpellAbilities()) - .addAll(getStaticAbilities()) - .addAll(getReplacementEffects()) - .addAll(getTriggers()) - .build(); - for (final CardTraitBase ctb : allAbs) { - if (ctb.isIntrinsic()) { - ctb.changeText(); - } - } + currentState.updateChangedText(); text = AbilityUtils.applyDescriptionTextChangeEffects(originalText, this); currentState.getView().updateAbilityText(this, currentState); @@ -4326,15 +4315,6 @@ public class Card extends GameEntity implements Comparable { return 0; } - for (KeywordInterface inst : getKeywords()) { - String kw = inst.getOriginal(); - if (kw.startsWith("PreventAllDamageBy")) { - if (source.isValid(kw.split(" ", 2)[1].split(","), getController(), this, null)) { - return 0; - } - } - } - // Prevent Damage static abilities for (final Card ca : getGame().getCardsIn(ZoneType.listValueOf("Battlefield,Command"))) { for (final StaticAbility stAb : ca.getStaticAbilities()) { diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index e0fe3eb7d13..efff0ed77b3 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -3460,22 +3460,6 @@ public class CardFactoryUtil { inst.addReplacement(re); } - - // No finish yet, need card updates - if (keyword.startsWith("PreventAllDamageBy") && keyword.contains(":")) { - final String[] k = keyword.split(":"); - String rep = "Event$ DamageDone | Prevent$ True | ValidTarget$ Card.Self | ValidSource$ " + k[1]; - rep += "| Description$ "; - if (k.length > 2) { - rep += k[2]; - } else { - rep += "Prevent all damage that would be dealt to CARDNAME by " + k[1]; - } - - ReplacementEffect re = ReplacementHandler.parseReplacement(rep, card, intrinsic); - - inst.addReplacement(re); - } } public static void addSpellAbility(final KeywordInterface inst, final Card card, final boolean intrinsic) { diff --git a/forge-game/src/main/java/forge/game/card/CardState.java b/forge-game/src/main/java/forge/game/card/CardState.java index cfa1ded4cf5..63d93fdb905 100644 --- a/forge-game/src/main/java/forge/game/card/CardState.java +++ b/forge-game/src/main/java/forge/game/card/CardState.java @@ -17,12 +17,14 @@ */ package forge.game.card; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import forge.card.*; import forge.card.mana.ManaCost; import forge.card.mana.ManaCostParser; +import forge.game.CardTraitBase; import forge.game.ForgeScript; import forge.game.GameObject; import forge.game.card.CardView.CardStateView; @@ -509,5 +511,18 @@ public class CardState extends GameObject { } } - + public void updateChangedText() { + final List allAbs = ImmutableList.builder() + .addAll(manaAbilities) + .addAll(nonManaAbilities) + .addAll(triggers) + .addAll(replacementEffects) + .addAll(staticAbilities) + .build(); + for (final CardTraitBase ctb : allAbs) { + if (ctb.isIntrinsic()) { + ctb.changeText(); + } + } + } }