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 startingLife = 20;
private final Map<Card, Integer> assignedDamage = Maps.newHashMap();
private final Map<Card, Integer> 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<Player> {
private boolean tappedLandForManaThisTurn = false;
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 List<String> prowl = new ArrayList<String>();
private List<String> prowl = Lists.newArrayList();
private PlayerStatistics stats = new PlayerStatistics();
private PlayerController controller;
@@ -568,10 +569,13 @@ public class Player extends GameEntity implements Comparable<Player> {
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<Player> {
public final void clearAssignedDamage() {
assignedDamage.clear();
assignedCombatDamage.clear();
}
public final int getAssignedDamage() {
@@ -834,6 +839,14 @@ public class Player extends GameEntity implements Comparable<Player> {
}
return num;
}
public final int getAssignedCombatDamage() {
int num = 0;
for (final Integer value : assignedCombatDamage.values()) {
num += value;
}
return num;
}
public final Iterable<Card> getAssignedDamageSources() {
return assignedDamage.keySet();
@@ -2109,6 +2122,10 @@ public class Player extends GameEntity implements Comparable<Player> {
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;