Player: add wasDealtCombatDamageThisTurn Property

This commit is contained in:
Hanmac
2017-01-07 03:55:59 +00:00
parent 7ea067f8d5
commit bd6c729317

View File

@@ -86,6 +86,7 @@ public class Player extends GameEntity implements Comparable<Player> {
private int life = 20; private int life = 20;
private int startingLife = 20; private int startingLife = 20;
private final Map<Card, Integer> assignedDamage = Maps.newHashMap(); private final Map<Card, Integer> assignedDamage = Maps.newHashMap();
private final Map<Card, Integer> assignedCombatDamage = Maps.newHashMap();
private int spellsCastThisTurn = 0; private int spellsCastThisTurn = 0;
private int landsPlayedThisTurn = 0; private int landsPlayedThisTurn = 0;
private int investigatedThisTurn = 0; private int investigatedThisTurn = 0;
@@ -125,10 +126,10 @@ public class Player extends GameEntity implements Comparable<Player> {
private boolean tappedLandForManaThisTurn = false; private boolean tappedLandForManaThisTurn = false;
private int attackersDeclaredThisTurn = 0; private int attackersDeclaredThisTurn = 0;
private final Map<ZoneType, PlayerZone> zones = new EnumMap<ZoneType, PlayerZone>(ZoneType.class); private final Map<ZoneType, PlayerZone> zones = Maps.newEnumMap(ZoneType.class);
private CardCollection currentPlanes = new CardCollection(); private CardCollection currentPlanes = new CardCollection();
private List<String> prowl = new ArrayList<String>(); private List<String> prowl = Lists.newArrayList();
private PlayerStatistics stats = new PlayerStatistics(); private PlayerStatistics stats = new PlayerStatistics();
private PlayerController controller; private PlayerController controller;
@@ -568,10 +569,13 @@ public class Player extends GameEntity implements Comparable<Player> {
view.updateCommanderDamage(this); 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); source.getDamageHistory().registerDamage(this);
if (isCombat) { if (isCombat) {
old = assignedCombatDamage.containsKey(source) ? assignedCombatDamage.get(source) : 0;
assignedCombatDamage.put(source, old + amount);
for (final String type : source.getType()) { for (final String type : source.getType()) {
source.getController().addProwlType(type); source.getController().addProwlType(type);
} }
@@ -825,6 +829,7 @@ public class Player extends GameEntity implements Comparable<Player> {
public final void clearAssignedDamage() { public final void clearAssignedDamage() {
assignedDamage.clear(); assignedDamage.clear();
assignedCombatDamage.clear();
} }
public final int getAssignedDamage() { public final int getAssignedDamage() {
@@ -834,6 +839,14 @@ public class Player extends GameEntity implements Comparable<Player> {
} }
return num; return num;
} }
public final int getAssignedCombatDamage() {
int num = 0;
for (final Integer value : assignedCombatDamage.values()) {
num += value;
}
return num;
}
public final Iterable<Card> getAssignedDamageSources() { public final Iterable<Card> getAssignedDamageSources() {
return assignedDamage.keySet(); return assignedDamage.keySet();
@@ -2109,6 +2122,10 @@ public class Player extends GameEntity implements Comparable<Player> {
if (assignedDamage.isEmpty()) { if (assignedDamage.isEmpty()) {
return false; return false;
} }
} else if (property.startsWith("wasDealtCombatDamageThisTurn")) {
if (assignedCombatDamage.isEmpty()) {
return false;
}
} else if (property.startsWith("LostLifeThisTurn")) { } else if (property.startsWith("LostLifeThisTurn")) {
if (lifeLostThisTurn <= 0) { if (lifeLostThisTurn <= 0) {
return false; return false;