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.CardType;
|
||||||
import com.gempukku.lotro.common.Phase;
|
import com.gempukku.lotro.common.Phase;
|
||||||
import com.gempukku.lotro.common.Token;
|
import com.gempukku.lotro.common.Token;
|
||||||
import com.gempukku.lotro.common.Zone;
|
import com.gempukku.lotro.common.Zone;
|
||||||
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
import com.gempukku.lotro.logic.timing.GameStats;
|
import com.gempukku.lotro.logic.timing.GameStats;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -40,6 +40,7 @@ public class GameState {
|
|||||||
private List<Assignment> _assignments = new LinkedList<Assignment>();
|
private List<Assignment> _assignments = new LinkedList<Assignment>();
|
||||||
private Skirmish _skirmish = null;
|
private Skirmish _skirmish = null;
|
||||||
|
|
||||||
|
private Map<String, GatheringParticipantCommunicationChannel> _recordinglisteners = new HashMap<String, GatheringParticipantCommunicationChannel>();
|
||||||
private Map<String, GameStateListener> _gameStateListeners = new HashMap<String, GameStateListener>();
|
private Map<String, GameStateListener> _gameStateListeners = new HashMap<String, GameStateListener>();
|
||||||
|
|
||||||
private int _nextCardId = 0;
|
private int _nextCardId = 0;
|
||||||
@@ -63,6 +64,9 @@ public class GameState {
|
|||||||
addPlayerCards(stringListEntry.getKey(), stringListEntry.getValue(), library);
|
addPlayerCards(stringListEntry.getKey(), stringListEntry.getValue(), library);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (String playerId : playerOrder.getAllPlayers())
|
||||||
|
_recordinglisteners.put(playerId, new GatheringParticipantCommunicationChannel(playerId));
|
||||||
|
|
||||||
for (String playerId : _gameStateListeners.keySet())
|
for (String playerId : _gameStateListeners.keySet())
|
||||||
sendStateToPlayer(playerId);
|
sendStateToPlayer(playerId);
|
||||||
}
|
}
|
||||||
@@ -114,15 +118,19 @@ public class GameState {
|
|||||||
|
|
||||||
private Collection<GameStateListener> getPrivateGameStateListeners(PhysicalCard physicalCard) {
|
private Collection<GameStateListener> getPrivateGameStateListeners(PhysicalCard physicalCard) {
|
||||||
String owner = physicalCard.getOwner();
|
String owner = physicalCard.getOwner();
|
||||||
|
Set<GameStateListener> listeners = new HashSet<GameStateListener>();
|
||||||
GameStateListener result = _gameStateListeners.get(owner);
|
GameStateListener result = _gameStateListeners.get(owner);
|
||||||
if (result != null)
|
if (result != null)
|
||||||
return Collections.singleton(result);
|
listeners.add(result);
|
||||||
else
|
|
||||||
return Collections.emptyList();
|
listeners.add(_recordinglisteners.get(owner));
|
||||||
|
return listeners;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Collection<GameStateListener> getAllGameStateListeners() {
|
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) {
|
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.Phase;
|
||||||
import com.gempukku.lotro.common.Token;
|
import com.gempukku.lotro.common.Token;
|
||||||
import com.gempukku.lotro.communication.GameStateListener;
|
import com.gempukku.lotro.communication.GameStateListener;
|
||||||
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
import com.gempukku.lotro.logic.timing.GameStats;
|
import com.gempukku.lotro.logic.timing.GameStats;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -10,7 +11,7 @@ import java.util.Date;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
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 {
|
public class GatheringParticipantCommunicationChannel implements GameStateListener {
|
||||||
private List<GameEvent> _events = new LinkedList<GameEvent>();
|
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.Keyword;
|
||||||
import com.gempukku.lotro.common.Phase;
|
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.AwaitingDecision;
|
||||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.gempukku.lotro.game;
|
package com.gempukku.lotro.game;
|
||||||
|
|
||||||
|
import com.gempukku.lotro.game.state.GameEvent;
|
||||||
import com.gempukku.lotro.logic.decisions.AwaitingDecision;
|
import com.gempukku.lotro.logic.decisions.AwaitingDecision;
|
||||||
|
|
||||||
import java.util.Map;
|
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.League;
|
||||||
import com.gempukku.lotro.db.vo.Player;
|
import com.gempukku.lotro.db.vo.Player;
|
||||||
import com.gempukku.lotro.game.*;
|
import com.gempukku.lotro.game.*;
|
||||||
|
import com.gempukku.lotro.game.state.GameEvent;
|
||||||
import com.gempukku.lotro.hall.HallException;
|
import com.gempukku.lotro.hall.HallException;
|
||||||
import com.gempukku.lotro.hall.HallInfoVisitor;
|
import com.gempukku.lotro.hall.HallInfoVisitor;
|
||||||
import com.gempukku.lotro.hall.HallServer;
|
import com.gempukku.lotro.hall.HallServer;
|
||||||
|
|||||||
Reference in New Issue
Block a user