Card: move changed text and remove PreventAllDamageBy

This commit is contained in:
Hanmac
2018-03-04 20:26:25 +01:00
parent c74b0a017b
commit fffa4cf157
3 changed files with 18 additions and 39 deletions

View File

@@ -1404,8 +1404,7 @@ public class Card extends GameEntity implements Comparable<Card> {
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<Card> {
*/
private void updateChangedText() {
resetChangedSVars();
final List<CardTraitBase> allAbs = ImmutableList.<CardTraitBase>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<Card> {
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()) {

View File

@@ -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) {

View File

@@ -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<CardTraitBase> allAbs = ImmutableList.<CardTraitBase>builder()
.addAll(manaAbilities)
.addAll(nonManaAbilities)
.addAll(triggers)
.addAll(replacementEffects)
.addAll(staticAbilities)
.build();
for (final CardTraitBase ctb : allAbs) {
if (ctb.isIntrinsic()) {
ctb.changeText();
}
}
}
}