Improve isCardAddedThisTurn

This commit is contained in:
TRT
2022-11-08 18:03:07 +01:00
parent 0787cc460c
commit cf0222f80d

View File

@@ -214,7 +214,26 @@ public class Zone implements java.io.Serializable, Iterable<Card> {
if (!cardsAddedThisTurn.containsKey(origin)) {
return false;
}
return cardsAddedThisTurn.get(origin).contains(card);
if (cardsAddedThisTurn.get(origin).contains(card)) {
long ts = getCardsAddedThisTurn(origin).get(getCardsAddedThisTurn(origin).lastIndexOf(card)).getTimestamp();
// need to check other zones if card didn't change again
for (ZoneType z : cardsAddedThisTurn.keySet()) {
if (z == origin) {
continue;
}
if (cardsAddedThisTurn.get(z).contains(card)) {
long tsAlt = getCardsAddedThisTurn(z).get(getCardsAddedThisTurn(z).lastIndexOf(card)).getTimestamp();
// the most recent version of this card did not come from the requested zone
if (tsAlt > ts) {
return false;
}
}
}
return true;
}
return false;
}
private static List<Card> getCardsAdded(final MapOfLists<ZoneType, Card> cardsAdded, final ZoneType origin) {