mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Fix ReplaceToken
This commit is contained in:
@@ -81,6 +81,7 @@ public class ReplaceTokenEffect extends SpellAbilityEffect {
|
|||||||
long timestamp = game.getNextTimestamp();
|
long timestamp = game.getNextTimestamp();
|
||||||
|
|
||||||
Map<Player, Integer> toInsertMap = Maps.newHashMap();
|
Map<Player, Integer> toInsertMap = Maps.newHashMap();
|
||||||
|
Map<Player, Iterable<Object>> toRememberMap = Maps.newHashMap();
|
||||||
Set<Card> toRemoveSet = Sets.newHashSet();
|
Set<Card> toRemoveSet = Sets.newHashSet();
|
||||||
for (Map.Entry<Card, Integer> e : table.row(affected).entrySet()) {
|
for (Map.Entry<Card, Integer> e : table.row(affected).entrySet()) {
|
||||||
if (!sa.matchesValidParam("ValidCard", e.getKey())) {
|
if (!sa.matchesValidParam("ValidCard", e.getKey())) {
|
||||||
@@ -89,6 +90,7 @@ public class ReplaceTokenEffect extends SpellAbilityEffect {
|
|||||||
Player controller = e.getKey().getController();
|
Player controller = e.getKey().getController();
|
||||||
int old = ObjectUtils.defaultIfNull(toInsertMap.get(controller), 0);
|
int old = ObjectUtils.defaultIfNull(toInsertMap.get(controller), 0);
|
||||||
toInsertMap.put(controller, old + e.getValue());
|
toInsertMap.put(controller, old + e.getValue());
|
||||||
|
toRememberMap.put(controller, e.getKey().getRemembered());
|
||||||
toRemoveSet.add(e.getKey());
|
toRemoveSet.add(e.getKey());
|
||||||
}
|
}
|
||||||
// remove replaced tokens
|
// remove replaced tokens
|
||||||
@@ -107,6 +109,8 @@ public class ReplaceTokenEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
token.setController(pe.getKey(), timestamp);
|
token.setController(pe.getKey(), timestamp);
|
||||||
|
// if token is created from ForEach keep that
|
||||||
|
token.addRemembered(toRememberMap.get(pe.getKey()));
|
||||||
table.put(affected, token, pe.getValue());
|
table.put(affected, token, pe.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user