mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Card: setChangedCardKeywords should not copy when adding to stack
This commit is contained in:
@@ -356,7 +356,7 @@ public class GameCopier {
|
|||||||
|
|
||||||
newCard.setChangedCardTypes(c.getChangedCardTypesTable());
|
newCard.setChangedCardTypes(c.getChangedCardTypesTable());
|
||||||
newCard.setChangedCardTypesCharacterDefining(c.getChangedCardTypesCharacterDefiningTable());
|
newCard.setChangedCardTypesCharacterDefining(c.getChangedCardTypesCharacterDefiningTable());
|
||||||
newCard.setChangedCardKeywords(c.getChangedCardKeywords());
|
newCard.setChangedCardKeywords(c.getChangedCardKeywords(), true);
|
||||||
newCard.setChangedCardNames(c.getChangedCardNames());
|
newCard.setChangedCardNames(c.getChangedCardNames());
|
||||||
|
|
||||||
for (Table.Cell<Long, Long, List<String>> kw : c.getHiddenExtrinsicKeywordsTable().cellSet()) {
|
for (Table.Cell<Long, Long, List<String>> kw : c.getHiddenExtrinsicKeywordsTable().cellSet()) {
|
||||||
|
|||||||
@@ -268,7 +268,7 @@ public class GameAction {
|
|||||||
// when moving to stack, copy changed card information
|
// when moving to stack, copy changed card information
|
||||||
copied.setChangedCardColors(c.getChangedCardColorsTable());
|
copied.setChangedCardColors(c.getChangedCardColorsTable());
|
||||||
copied.setChangedCardColorsCharacterDefining(c.getChangedCardColorsCharacterDefiningTable());
|
copied.setChangedCardColorsCharacterDefining(c.getChangedCardColorsCharacterDefiningTable());
|
||||||
copied.setChangedCardKeywords(c.getChangedCardKeywords());
|
copied.setChangedCardKeywords(c.getChangedCardKeywords(), false);
|
||||||
copied.setChangedCardTypes(c.getChangedCardTypesTable());
|
copied.setChangedCardTypes(c.getChangedCardTypesTable());
|
||||||
copied.setChangedCardTypesCharacterDefining(c.getChangedCardTypesCharacterDefiningTable());
|
copied.setChangedCardTypesCharacterDefining(c.getChangedCardTypesCharacterDefiningTable());
|
||||||
copied.setChangedCardNames(c.getChangedCardNames());
|
copied.setChangedCardNames(c.getChangedCardNames());
|
||||||
@@ -622,7 +622,9 @@ public class GameAction {
|
|||||||
if (zoneTo.is(ZoneType.Stack) && cause != null && cause.isSpell() && !cause.isIntrinsic() && c.equals(cause.getHostCard())) {
|
if (zoneTo.is(ZoneType.Stack) && cause != null && cause.isSpell() && !cause.isIntrinsic() && c.equals(cause.getHostCard())) {
|
||||||
if (cause.getKeyword() != null) {
|
if (cause.getKeyword() != null) {
|
||||||
if (!copied.getKeywords().contains(cause.getKeyword())) {
|
if (!copied.getKeywords().contains(cause.getKeyword())) {
|
||||||
copied.addChangedCardKeywordsInternal(ImmutableList.of(cause.getKeyword()), null, false, game.getTimestamp(), 0, false);
|
copied.addChangedCardKeywordsInternal(ImmutableList.of(cause.getKeyword()), null, false, game.getNextTimestamp(), 0, false);
|
||||||
|
// update Keyword Cache
|
||||||
|
copied.updateKeywords();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6876,10 +6876,19 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
this.changedCardTypesCharacterDefining.putAll(changedCardTypes);
|
this.changedCardTypesCharacterDefining.putAll(changedCardTypes);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setChangedCardKeywords(Table<Long, Long, KeywordsChange> changedCardKeywords) {
|
public void setChangedCardKeywords(Table<Long, Long, KeywordsChange> changedCardKeywords, boolean copy) {
|
||||||
this.changedCardKeywords.clear();
|
this.changedCardKeywords.clear();
|
||||||
for (Table.Cell<Long, Long, KeywordsChange> entry : changedCardKeywords.cellSet()) {
|
for (Table.Cell<Long, Long, KeywordsChange> entry : changedCardKeywords.cellSet()) {
|
||||||
this.changedCardKeywords.put(entry.getRowKey(), entry.getColumnKey(), entry.getValue().copy(this, true));
|
KeywordsChange result = entry.getValue();
|
||||||
|
if (copy) {
|
||||||
|
result = result.copy(this, true);
|
||||||
|
} else {
|
||||||
|
// do not copy the keywords, just update the host
|
||||||
|
for (KeywordInterface k : result.getKeywords()) {
|
||||||
|
k.setHostCard(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.changedCardKeywords.put(entry.getRowKey(), entry.getColumnKey(), result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -287,7 +287,7 @@ public final class CardUtil {
|
|||||||
|
|
||||||
newCopy.setChangedCardColors(in.getChangedCardColorsTable());
|
newCopy.setChangedCardColors(in.getChangedCardColorsTable());
|
||||||
newCopy.setChangedCardColorsCharacterDefining(in.getChangedCardColorsCharacterDefiningTable());
|
newCopy.setChangedCardColorsCharacterDefining(in.getChangedCardColorsCharacterDefiningTable());
|
||||||
newCopy.setChangedCardKeywords(in.getChangedCardKeywords());
|
newCopy.setChangedCardKeywords(in.getChangedCardKeywords(), true);
|
||||||
newCopy.setChangedCardTypes(in.getChangedCardTypesTable());
|
newCopy.setChangedCardTypes(in.getChangedCardTypesTable());
|
||||||
newCopy.setChangedCardTypesCharacterDefining(in.getChangedCardTypesCharacterDefiningTable());
|
newCopy.setChangedCardTypesCharacterDefining(in.getChangedCardTypesCharacterDefiningTable());
|
||||||
newCopy.setChangedCardNames(in.getChangedCardNames());
|
newCopy.setChangedCardNames(in.getChangedCardNames());
|
||||||
|
|||||||
Reference in New Issue
Block a user