diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/EventSerializer.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/EventSerializer.java index a77834b22..e213e045a 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/EventSerializer.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/EventSerializer.java @@ -82,6 +82,13 @@ public class EventSerializer { eventElem.appendChild(playerZonesElem); } + for (Map.Entry playerThreatEntry : gameStats.getThreats().entrySet()) { + Element threatsElem = doc.createElement("threats"); + threatsElem.setAttribute("name", playerThreatEntry.getKey()); + threatsElem.setAttribute("value", playerThreatEntry.getValue().toString()); + eventElem.appendChild(threatsElem); + } + Map charVitalities = gameStats.getCharVitalities(); Map charThirdStats = gameStats.getThirdStats(); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java index a14f7ec4d..67180f16d 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java @@ -620,6 +620,10 @@ public class GameState { return getTokenCount(_ringBearers.get(getCurrentPlayerId()), Token.BURDEN); } + public int getPlayerThreats(String playerId) { + return _playerThreats.get(playerId); + } + public int getThreats() { return _playerThreats.get(getCurrentPlayerId()); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/GameStats.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/GameStats.java index 25e83f01b..1e82e62e9 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/GameStats.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/GameStats.java @@ -28,6 +28,7 @@ public class GameStats { private boolean _fpOverwhelmed; private Map> _zoneSizes = new HashMap>(); + private Map _threats = new HashMap(); private Map _charStrengths = new HashMap(); private Map _charVitalities = new HashMap(); private Map _thirdStats = new HashMap(); @@ -144,6 +145,17 @@ public class GameStats { _thirdStats = newThirdStats; } + Map newThreats = new HashMap(); + if (playerOrder != null) { + for (String player : playerOrder.getAllPlayers()) + newThreats.put(player, game.getGameState().getPlayerThreats(player)); + } + + if (!newThreats.equals(_threats)) { + changed = true; + _threats = newThreats; + } + return changed; } @@ -187,6 +199,10 @@ public class GameStats { return Collections.unmodifiableMap(_zoneSizes); } + public Map getThreats() { + return _threats; + } + public Map getCharStrengths() { return Collections.unmodifiableMap(_charStrengths); } @@ -211,6 +227,7 @@ public class GameStats { copy._shadowSkirmishDamageBonus = _shadowSkirmishDamageBonus; copy._fpOverwhelmed = _fpOverwhelmed; copy._zoneSizes = _zoneSizes; + copy._threats = _threats; copy._charStrengths = _charStrengths; copy._charVitalities = _charVitalities; copy._thirdStats = _thirdStats;