Adding recording listeners.

This commit is contained in:
marcins78@gmail.com
2011-10-18 16:00:02 +00:00
parent 627467b650
commit 1cbc1400f3
6 changed files with 21 additions and 7 deletions

View File

@@ -1,9 +1,10 @@
package com.gempukku.lotro.game;
package com.gempukku.lotro.game.state;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Token;
import com.gempukku.lotro.common.Zone;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.logic.timing.GameStats;
import java.util.List;

View File

@@ -40,6 +40,7 @@ public class GameState {
private List<Assignment> _assignments = new LinkedList<Assignment>();
private Skirmish _skirmish = null;
private Map<String, GatheringParticipantCommunicationChannel> _recordinglisteners = new HashMap<String, GatheringParticipantCommunicationChannel>();
private Map<String, GameStateListener> _gameStateListeners = new HashMap<String, GameStateListener>();
private int _nextCardId = 0;
@@ -63,6 +64,9 @@ public class GameState {
addPlayerCards(stringListEntry.getKey(), stringListEntry.getValue(), library);
}
for (String playerId : playerOrder.getAllPlayers())
_recordinglisteners.put(playerId, new GatheringParticipantCommunicationChannel(playerId));
for (String playerId : _gameStateListeners.keySet())
sendStateToPlayer(playerId);
}
@@ -114,15 +118,19 @@ public class GameState {
private Collection<GameStateListener> getPrivateGameStateListeners(PhysicalCard physicalCard) {
String owner = physicalCard.getOwner();
Set<GameStateListener> listeners = new HashSet<GameStateListener>();
GameStateListener result = _gameStateListeners.get(owner);
if (result != null)
return Collections.singleton(result);
else
return Collections.emptyList();
listeners.add(result);
listeners.add(_recordinglisteners.get(owner));
return listeners;
}
private Collection<GameStateListener> getAllGameStateListeners() {
return _gameStateListeners.values();
Set<GameStateListener> allListeners = new HashSet<GameStateListener>(_gameStateListeners.values());
allListeners.addAll(_recordinglisteners.values());
return allListeners;
}
private void sendStateToPlayer(String playerId) {

View File

@@ -1,8 +1,9 @@
package com.gempukku.lotro.game;
package com.gempukku.lotro.game.state;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Token;
import com.gempukku.lotro.communication.GameStateListener;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.logic.timing.GameStats;
import java.util.Collection;
@@ -10,7 +11,7 @@ import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import static com.gempukku.lotro.game.GameEvent.Type.*;
import static com.gempukku.lotro.game.state.GameEvent.Type.*;
public class GatheringParticipantCommunicationChannel implements GameStateListener {
private List<GameEvent> _events = new LinkedList<GameEvent>();

View File

@@ -2,6 +2,8 @@ package com.gempukku.lotro.game;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.game.state.GameEvent;
import com.gempukku.lotro.game.state.GatheringParticipantCommunicationChannel;
import com.gempukku.lotro.logic.decisions.AwaitingDecision;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import com.gempukku.lotro.logic.modifiers.Modifier;

View File

@@ -1,5 +1,6 @@
package com.gempukku.lotro.game;
import com.gempukku.lotro.game.state.GameEvent;
import com.gempukku.lotro.logic.decisions.AwaitingDecision;
import java.util.Map;

View File

@@ -12,6 +12,7 @@ import com.gempukku.lotro.db.PlayerDAO;
import com.gempukku.lotro.db.vo.League;
import com.gempukku.lotro.db.vo.Player;
import com.gempukku.lotro.game.*;
import com.gempukku.lotro.game.state.GameEvent;
import com.gempukku.lotro.hall.HallException;
import com.gempukku.lotro.hall.HallInfoVisitor;
import com.gempukku.lotro.hall.HallServer;