public CommunicationServer(IMessageDeserializer messageDeserializer, TimeSpan keepAliveTimeout, int port,
                                   IErrorsMessagesFactory
                                   errorsMessagesFactory, LoggingMode loggingMode, IPAddress address)
        {
            VerboseLogger = new VerboseLogger(LogManager.GetCurrentClassLogger(), loggingMode);

            _errorsMessagesFactory = errorsMessagesFactory;
            _socketListener        = new AsynchronousSocketListener(port, keepAliveTimeout,
                                                                    messageDeserializer, HandleMessage, address
                                                                    );
            _communicationRouter = new CommunicationRouter();
            new Thread(() => _socketListener.StartListening(HandleConnectionError)).Start();
        }
        public GameMaster(GameConfiguration gameConfiguration, ICommunicationClient communicationClient,
                          string gameName, IErrorsMessagesFactory errorsMessagesFactory, LoggingMode loggingMode,
                          IGameMasterMessageFactory gameMasterMessageFactory)
        {
            _gameHost = new GameHost(gameName, gameConfiguration, StartGame);
            _errorsMessagesFactory = errorsMessagesFactory;

            VerboseLogger = new VerboseLogger(LogManager.GetCurrentClassLogger(), loggingMode);

            _messagingHandler = new MessagingHandler(gameConfiguration, communicationClient, HostNewGame,
                                                     gameMasterMessageFactory);
            _messagingHandler.MessageReceived += (sender, args) => MessageHandler(args);
            HostNewGame();
        }
Exemple #3
0
        public Player(ICommunicationClient communicationClient, string gameName, TeamColor preferredColor,
                      PlayerType preferredRole, IErrorsMessagesFactory errorsMessagesFactory, LoggingMode loggingMode, Dictionary <TeamColor, StrategyGroup> strategyGroups)
        {
            CommunicationClient    = communicationClient;
            _gameName              = gameName;
            _preferredColor        = preferredColor;
            _preferredRole         = preferredRole;
            _errorsMessagesFactory = errorsMessagesFactory;
            _strategyGroups        = strategyGroups;

            var factory = new LoggerFactory();

            VerboseLogger = new VerboseLogger(factory.GetPlayerLogger(0), loggingMode);

            _stateCoordinator = new StateCoordinator(gameName, preferredColor, preferredRole);
            new Thread(() => CommunicationClient.Connect(HandleConnectionError, HandleResponse)).Start();
            CommunicationClient.Send(_stateCoordinator.Start());
        }