diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index b1c9dcd81e5..77ea99f02f2 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -4203,6 +4203,19 @@ public class Card extends GameEntity implements Comparable { */ public final void addChangedCardKeywords(final ArrayList keywords, final ArrayList removeKeywords, final boolean removeAllKeywords, final long timestamp) { + + // if the key already exists - merge entries + if (changedCardKeywords.containsKey(timestamp)) { + ArrayList kws = keywords; + ArrayList rkws = removeKeywords; + boolean remAll = removeAllKeywords; + CardKeywords cks = changedCardKeywords.get(timestamp); + kws.addAll(cks.getKeywords()); + rkws.addAll(cks.getRemoveKeywords()); + remAll |= cks.isRemoveAllKeywords(); + this.changedCardKeywords.put(timestamp, new CardKeywords(kws, rkws, remAll)); + return; + } this.changedCardKeywords.put(timestamp, new CardKeywords(keywords, removeKeywords, removeAllKeywords)); } @@ -4221,8 +4234,8 @@ public class Card extends GameEntity implements Comparable { */ public final void addChangedCardKeywords(final String[] keywords, final String[] removeKeywords, final boolean removeAllKeywords, final long timestamp) { - ArrayList keywordsList = null; - ArrayList removeKeywordsList = null; + ArrayList keywordsList = new ArrayList(); + ArrayList removeKeywordsList = new ArrayList(); if (keywords != null) { keywordsList = new ArrayList(Arrays.asList(keywords)); }