From d81463a43dfd45e5dc6ca5cf1d344f2269714fdf Mon Sep 17 00:00:00 2001 From: Sloth Date: Fri, 18 Nov 2011 12:42:03 +0000 Subject: [PATCH] - Added the property "controllerWasDealtCombatDamageByThisTurn". --- src/main/java/forge/Card.java | 59 +++++++++++++++++++++++-- src/main/java/forge/GameActionUtil.java | 7 +++ src/main/java/forge/Phase.java | 2 + 3 files changed, 65 insertions(+), 3 deletions(-) diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index c43dcc2313d..a9deac9d373 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -329,6 +329,8 @@ public class Card extends GameEntity implements Comparable { private boolean creatureGotBlockedThisTurn = false; private boolean dealtDmgToHumanThisTurn = false; private boolean dealtDmgToComputerThisTurn = false; + private boolean dealtCombatDmgToHumanThisTurn = false; + private boolean dealtCombatDmgToComputerThisTurn = false; private boolean sirenAttackOrDestroy = false; private final ArrayList mustBlockCards = new ArrayList(); @@ -1068,7 +1070,7 @@ public class Card extends GameEntity implements Comparable { /** *

- * Getter for the field dealtDmgToComputerThisTurn. + * Getter for the field dealtCombatDmgToComputerThisTurn. *

* * @return a boolean. @@ -1076,6 +1078,52 @@ public class Card extends GameEntity implements Comparable { public final boolean getDealtDmgToComputerThisTurn() { return this.dealtDmgToComputerThisTurn; } + + /** + *

+ * Setter for the field dealtCombatDmgToHumanThisTurn. + *

+ * + * @param b + * a boolean. + */ + public final void setDealtCombatDmgToHumanThisTurn(final boolean b) { + this.dealtCombatDmgToHumanThisTurn = b; + } + + /** + *

+ * Getter for the field dealtDmgToHumanThisTurn. + *

+ * + * @return a boolean. + */ + public final boolean getDealtCombatDmgToHumanThisTurn() { + return this.dealtCombatDmgToHumanThisTurn; + } + + /** + *

+ * Setter for the field dealtCombatDmgToComputerThisTurn. + *

+ * + * @param b + * a boolean. + */ + public final void setDealtCombatDmgToComputerThisTurn(final boolean b) { + this.dealtCombatDmgToComputerThisTurn = b; + } + + /** + *

+ * Getter for the field dealtDmgToComputerThisTurn. + *

+ * + * @return a boolean. + */ + public final boolean getDealtCombatDmgToComputerThisTurn() { + return this.dealtCombatDmgToComputerThisTurn; + } /** *

@@ -6732,8 +6780,13 @@ public class Card extends GameEntity implements Comparable { return false; } } else if (property.startsWith("dealtDamageToYouThisTurn")) { - if (!(this.dealtDmgToHumanThisTurn && this.getController().isPlayer(AllZone.getComputerPlayer())) - && !(this.dealtDmgToComputerThisTurn && this.getController().isPlayer(AllZone.getHumanPlayer()))) { + if (!(dealtDmgToHumanThisTurn && sourceController.isHuman()) + && !(dealtDmgToComputerThisTurn && sourceController.isComputer())) { + return false; + } + } else if (property.startsWith("controllerWasDealtCombatDamageByThisTurn")) { + if (!(source.dealtCombatDmgToHumanThisTurn && this.getController().isPlayer(AllZone.getHumanPlayer())) + && !(source.dealtCombatDmgToComputerThisTurn && this.getController().isPlayer(AllZone.getComputerPlayer()))) { return false; } } else if (property.startsWith("wasDealtDamageThisTurn")) { diff --git a/src/main/java/forge/GameActionUtil.java b/src/main/java/forge/GameActionUtil.java index 34e8fff7803..c7724fc9ec3 100644 --- a/src/main/java/forge/GameActionUtil.java +++ b/src/main/java/forge/GameActionUtil.java @@ -931,6 +931,13 @@ public final class GameActionUtil { executeCelestialMantle(c); } + if (player.isPlayer(AllZone.getHumanPlayer())) { + c.setDealtCombatDmgToHumanThisTurn(true); + } + if (player.isPlayer(AllZone.getComputerPlayer())) { + c.setDealtCombatDmgToComputerThisTurn(true); + } + } // executeCombatDamageToPlayerEffects /** diff --git a/src/main/java/forge/Phase.java b/src/main/java/forge/Phase.java index c0226130718..e423f2e5ace 100644 --- a/src/main/java/forge/Phase.java +++ b/src/main/java/forge/Phase.java @@ -380,6 +380,8 @@ public class Phase extends MyObservable implements java.io.Serializable { c.resetDealtDamageToThisTurn(); c.setDealtDmgToHumanThisTurn(false); c.setDealtDmgToComputerThisTurn(false); + c.setDealtCombatDmgToHumanThisTurn(false); + c.setDealtCombatDmgToComputerThisTurn(false); c.setRegeneratedThisTurn(0); c.clearMustBlockCards(); if (AllZone.getPhase().isPlayerTurn(AllZone.getComputerPlayer())) {