Adding recording listeners.
This commit is contained in:
@@ -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;
|
||||
@@ -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) {
|
||||
|
||||
@@ -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>();
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user