From 14a36454c7f1c6046b64496440f0c8028e150e3f Mon Sep 17 00:00:00 2001 From: tool4ever Date: Fri, 31 Mar 2023 07:19:06 +0200 Subject: [PATCH] Fix wasCastByYou (#2788) Co-authored-by: tool4EvEr --- .../game/ability/effects/CountersProliferateEffect.java | 2 +- forge-game/src/main/java/forge/game/card/Card.java | 4 ++-- forge-game/src/main/java/forge/game/card/CardProperty.java | 6 +++--- forge-game/src/main/java/forge/game/card/CardUtil.java | 5 +---- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersProliferateEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersProliferateEffect.java index 4070a304802..5651fada42c 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersProliferateEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersProliferateEffect.java @@ -33,10 +33,10 @@ public class CountersProliferateEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { - int num = sa.hasParam("Amount") ? AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("Amount"), sa) : 1; final Player p = sa.getActivatingPlayer(); final Card host = sa.getHostCard(); final Game game = host.getGame(); + int num = sa.hasParam("Amount") ? AbilityUtils.calculateAmount(host, sa.getParam("Amount"), sa) : 1; final Map repParams = AbilityKey.mapFromAffected(p); repParams.put(AbilityKey.Source, sa); diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 984f8e3174a..0b69ebf61d0 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -6955,8 +6955,8 @@ public class Card extends GameEntity implements Comparable, IHasSVars { etbCounters.clear(); } - public final Set> getEtbCounters() { - return etbCounters.cellSet(); + public final Table getEtbCounters() { + return etbCounters; } public final void putEtbCounters(GameEntityCounterTable table) { diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index e184ad6b358..ab2ede80f6d 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1873,7 +1873,7 @@ public class CardProperty { } final ZoneType realZone = ZoneType.smartValueOf(strZone); if (card.getCastFrom() == null || (zoneOwner != null && !card.getCastFrom().getPlayer().equals(zoneOwner)) - || (byYou && !controller.equals(card.getCastSA().getActivatingPlayer())) + || (byYou && !sourceController.equals(card.getCastSA().getActivatingPlayer())) || realZone != card.getCastFrom().getZoneType()) { return false; } @@ -1894,7 +1894,7 @@ public class CardProperty { } final ZoneType realZone = ZoneType.smartValueOf(strZone); if (card.getCastFrom() != null && (zoneOwner == null || card.getCastFrom().getPlayer().equals(zoneOwner)) - && (!byYou || controller.equals(card.getCastSA().getActivatingPlayer())) + && (!byYou || sourceController.equals(card.getCastSA().getActivatingPlayer())) && realZone == card.getCastFrom().getZoneType()) { return false; } @@ -1902,7 +1902,7 @@ public class CardProperty { if (!card.wasCast()) { return false; } - if (property.contains("ByYou") && !controller.equals(card.getCastSA().getActivatingPlayer())) { + if (property.contains("ByYou") && !sourceController.equals(card.getCastSA().getActivatingPlayer())) { return false; } } else if (property.equals("wasNotCast")) { diff --git a/forge-game/src/main/java/forge/game/card/CardUtil.java b/forge-game/src/main/java/forge/game/card/CardUtil.java index 1110614f04f..dd05c99b351 100644 --- a/forge-game/src/main/java/forge/game/card/CardUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardUtil.java @@ -25,7 +25,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import com.google.common.collect.Table; import forge.ImageKeys; import forge.card.CardStateName; @@ -283,9 +282,7 @@ public final class CardUtil { newCopy.setChosenNumber(in.getChosenNumber()); } - for (Table.Cell cl : in.getEtbCounters()) { - newCopy.addEtbCounter(cl.getColumnKey(), cl.getValue(), cl.getRowKey()); - } + newCopy.getEtbCounters().putAll(in.getEtbCounters()); newCopy.setUnearthed(in.isUnearthed());