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 6eccd6676a4..524e64870dc 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -4717,6 +4717,19 @@ public class Card extends GameEntity implements Comparable { if (!hasDealtDamageToOpponentThisTurn()) { return false; } + } else if (property.startsWith("dealtCombatDamageThisTurn ")) { + final String v = property.split(" ")[1]; + final List list = getDamageHistory().getThisTurnCombatDamaged(); + boolean found = false; + for (final GameEntity e : list) { + if (e.isValid(v, sourceController, source, spellAbility)) { + found = true; + break; + } + } + if (!found) { + return false; + } } else if (property.startsWith("controllerWasDealtCombatDamageByThisTurn")) { if (!source.getDamageHistory().getThisTurnCombatDamaged().contains(controller)) { return false; diff --git a/forge-game/src/main/java/forge/game/card/CardDamageHistory.java b/forge-game/src/main/java/forge/game/card/CardDamageHistory.java index 74e782474e0..0c8ee1f64c4 100644 --- a/forge-game/src/main/java/forge/game/card/CardDamageHistory.java +++ b/forge-game/src/main/java/forge/game/card/CardDamageHistory.java @@ -4,7 +4,6 @@ package forge.game.card; import forge.game.GameEntity; import forge.game.player.Player; -import java.util.ArrayList; import java.util.List; import com.google.common.collect.Lists; @@ -316,9 +315,15 @@ public class CardDamageHistory { * TODO: Write javadoc for this method. */ public void newTurn() { + damagedThisCombat.clear(); damagedThisTurnInCombat.clear(); damagedThisTurn.clear(); } + + public void endCombat() { + damagedThisCombat.clear(); + } + /** * TODO: Write javadoc for this method. * @param player diff --git a/forge-game/src/main/java/forge/game/combat/Combat.java b/forge-game/src/main/java/forge/game/combat/Combat.java index 2d2aef984bf..201faf90a11 100644 --- a/forge-game/src/main/java/forge/game/combat/Combat.java +++ b/forge-game/src/main/java/forge/game/combat/Combat.java @@ -101,9 +101,11 @@ public class Combat { //update view for all attackers and blockers for (Card c : attackers) { + c.getDamageHistory().endCombat(); c.updateAttackingForView(); } for (Card c : blockers) { + c.getDamageHistory().endCombat(); c.updateBlockingForView(); } } @@ -736,6 +738,7 @@ public class Combat { for (final Entry entry : assignedDamageMap.entrySet()) { final Card crd = entry.getKey(); + c.getDamageHistory().registerCombatDamage(crd); damageMap.put(crd, entry.getValue()); if (entry.getValue() > 0) { if (damageDealtThisCombat.containsKey(crd)) {