From bd6c729317ec6ddd01875f9d0fd2487568c77cfe Mon Sep 17 00:00:00 2001 From: Hanmac Date: Sat, 7 Jan 2017 03:55:59 +0000 Subject: [PATCH] Player: add wasDealtCombatDamageThisTurn Property --- .../main/java/forge/game/player/Player.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index 2b7e6d1315a..67cb9c7b41f 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -86,6 +86,7 @@ public class Player extends GameEntity implements Comparable { private int life = 20; private int startingLife = 20; private final Map assignedDamage = Maps.newHashMap(); + private final Map assignedCombatDamage = Maps.newHashMap(); private int spellsCastThisTurn = 0; private int landsPlayedThisTurn = 0; private int investigatedThisTurn = 0; @@ -125,10 +126,10 @@ public class Player extends GameEntity implements Comparable { private boolean tappedLandForManaThisTurn = false; private int attackersDeclaredThisTurn = 0; - private final Map zones = new EnumMap(ZoneType.class); + private final Map zones = Maps.newEnumMap(ZoneType.class); private CardCollection currentPlanes = new CardCollection(); - private List prowl = new ArrayList(); + private List prowl = Lists.newArrayList(); private PlayerStatistics stats = new PlayerStatistics(); private PlayerController controller; @@ -568,10 +569,13 @@ public class Player extends GameEntity implements Comparable { view.updateCommanderDamage(this); } - assignedDamage.put(source, amount); + int old = assignedDamage.containsKey(source) ? assignedDamage.get(source) : 0; + assignedDamage.put(source, old + amount); source.getDamageHistory().registerDamage(this); if (isCombat) { + old = assignedCombatDamage.containsKey(source) ? assignedCombatDamage.get(source) : 0; + assignedCombatDamage.put(source, old + amount); for (final String type : source.getType()) { source.getController().addProwlType(type); } @@ -825,6 +829,7 @@ public class Player extends GameEntity implements Comparable { public final void clearAssignedDamage() { assignedDamage.clear(); + assignedCombatDamage.clear(); } public final int getAssignedDamage() { @@ -834,6 +839,14 @@ public class Player extends GameEntity implements Comparable { } return num; } + + public final int getAssignedCombatDamage() { + int num = 0; + for (final Integer value : assignedCombatDamage.values()) { + num += value; + } + return num; + } public final Iterable getAssignedDamageSources() { return assignedDamage.keySet(); @@ -2109,6 +2122,10 @@ public class Player extends GameEntity implements Comparable { if (assignedDamage.isEmpty()) { return false; } + } else if (property.startsWith("wasDealtCombatDamageThisTurn")) { + if (assignedCombatDamage.isEmpty()) { + return false; + } } else if (property.startsWith("LostLifeThisTurn")) { if (lifeLostThisTurn <= 0) { return false;