public SignalRBridgeActor(IGameEventsPusher gameEventPusher, IActorRef gameController)
        {
            _gameEventPusher = gameEventPusher;
            _gameController  = gameController;


            Receive <JoinGameMessage>(
                message =>
            {
                _gameController.Tell(message);
            });

            Receive <AttackPlayerMessage>(
                message =>
            {
                _gameController.Tell(message);
            });


            Receive <PlayerStatusMessage>(
                message =>
            {
                _gameEventPusher.PlayerJoined(message.PlayerName, message.Health);
            });


            Receive <PlayerHealthChangedMessage>(
                message =>
            {
                _gameEventPusher.UpdatePlayerHealth(message.PlayerName, message.Health);
            });
        }
Exemplo n.º 2
0
        public SignalRBridgeActor(IGameEventsPusher gameEventsPusher, IActorRef gameController)
        {
            _gameEventsPusher = gameEventsPusher;
            _gameController = gameController;

            Receive<JoinGameMessage>(
                message =>
                {
                    _gameController.Tell(message);
                });

            Receive<AttackPlayerMessage>(
                message =>
                {
                    _gameController.Tell(message);
                });

            Receive<PlayerStatusMessage>(
                message =>
                {
                    _gameEventsPusher.PlayerJoined(message.PlayerName, message.Health);
                });

            Receive<PlayerHealthChangedMessage>(
                message =>
                {
                    _gameEventsPusher.UpdatePlayerHealth(message.PlayerName, message.Health);
                });
        }
Exemplo n.º 3
0
        public GameActorSystem(ActorSystem actorSystem, IGameEventsPusher gameEventsPusher)
        {
            this._gameEventsPusher = gameEventsPusher;

            this.GameController = actorSystem.ActorOf <GameControllerActor>();
            this.SignalRBridge  = actorSystem.ActorOf(
                Props.Create(() => new SignalRBridgeActor(gameEventsPusher, GameController)), "SignalRBridge");
        }
Exemplo n.º 4
0
        public static void Create()
        {
            _gameEventsPusher = new SignalRGameEventPusher();

            ActorSystem = Akka.Actor.ActorSystem.Create("GameSystem");
            ActorReferences.GameController = ActorSystem.ActorSelection("akka.tcp://[email protected]:8091/user/GameController").ResolveOne(TimeSpan.FromSeconds(3)).Result;


            ActorReferences.SignalRBridge = ActorSystem.ActorOf(SignalRBridgeActor.Props(_gameEventsPusher, ActorReferences.GameController), "SignalRBridge");
        }
Exemplo n.º 5
0
        /// <summary>
        /// This method will initialize our actorSystem when
        /// ASP .NET application starts
        /// </summary>
        public static void Create(IGameEventsPusher gameEventsPusher)
        {
            _gameEventsPusher = gameEventsPusher;
            ActorSystem       = ActorSystem.Create("GameSystem");

            //Create an instance of GameControllerActor and store it
            ActorReferenes.GameController = ActorSystem.ActorOf <GameControllerActor>();

            ActorReferenes.SignalRBridge = ActorSystem.ActorOf(
                Props.Create(() =>
                             new SignalRBridgeActor(_gameEventsPusher, ActorReferenes.GameController)),
                "SignalRBridge");
        }
Exemplo n.º 6
0
        public static void Create()
        {
            GameEventsPusher = new SignalRGameEventPusher();

            ActorSystem = ActorSystem.Create("GameSystem");

            ActorReferences.GameController = ActorSystem.ActorOf<GameControllerActor>();

            ActorReferences.SignalRBridge = ActorSystem.ActorOf(
                Props.Create(() => new SignalRBridgeActor(GameEventsPusher, ActorReferences.GameController)),
                "SignalRBridge"
                );
        }
Exemplo n.º 7
0
        public static void Create()
        {
            _gameEventsPusher = new SignalRgamEventPusher();

            _actorSystem = ActorSystem.Create("GameSystem");

            // this get's the actor ref from the remoter actor system.
            ActorReferences.GameController = _actorSystem
                                             .ActorSelection("akka.tcp://[email protected]:8091/user/GameController")
                                             .ResolveOne(TimeSpan.FromSeconds(3))
                                             .Result;

            ActorReferences.SignalRBridge = _actorSystem.ActorOf(
                Props.Create(() => new SignalRBridgeActor(_gameEventsPusher, ActorReferences.GameController)),
                "SignalRBridge"
                );
        }
Exemplo n.º 8
0
        public SignalRBridgeActor(IGameEventsPusher gameEventsPusher, IActorRef gameController)
        {
            _gameEventsPusher = gameEventsPusher;
            _gameController   = gameController;

            //Incoming messages to ActorSystem
            Receive <JoinGameMessage>(message => { _gameController.Tell(message); });
            Receive <AttackPlayerMessage>(message => { _gameController.Tell(message); });

            //Outgoing messages from ActorSystem
            Receive <PlayerStatusMessage>(message =>
            {
                _gameEventsPusher.PlayerJoined(message.PlayerName, message.Health, message.JoinDate);
            });

            Receive <PlayerHealthChangedMessage>(message =>
            {
                _gameEventsPusher.UpdatePlayerHealth(message.PlayerName, message.Health);
            });
        }
Exemplo n.º 9
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IGameEventsPusher gameEventsPusher, IApplicationLifetime applicationLifetime)
        {
            _gameEventsPusher = gameEventsPusher;
            app.UseCors("CorsPolicy");

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            app.UseDefaultFiles();
            app.UseStaticFiles();
            app.UseSignalR(routes =>
            {
                routes.MapHub <ChatHub>("/chatHub");
                routes.MapHub <GameHub>("/gameHub");
            });
            app.UseMvcWithDefaultRoute();


            applicationLifetime.ApplicationStarted.Register(OnStart);
            applicationLifetime.ApplicationStopping.Register(OnStopping);
            applicationLifetime.ApplicationStopped.Register(OnStopped);
        }
Exemplo n.º 10
0
 public SignalRBridgeActorInstance(ActorSystem actorSystem, IGameEventsPusher gameEventPusher, IGameControllerActorInstance gameControllerActorInstance)
 {
     _actor = actorSystem.ActorOf(Props.Create(() =>
                                               new SignalRBridgeActor(gameEventPusher, gameControllerActorInstance)));
 }
        public SignalRBridgeActor(IGameEventsPusher gameEventPusher,
                                  IGameControllerActorInstance gameControllerActorInstance)
        {
            _gameEventPusher = gameEventPusher;
            _gameController  = gameControllerActorInstance;


            Receive <IActorMessage>(
                message =>
            {
                _gameController.Tell(message);
            });


            Receive <PlayerJoinedMessage>(
                message =>
            {
                _gameEventPusher.PlayerJoined(message.Player);
            });

            Receive <PlayerLoginSuccess>(
                message =>
            {
                _gameEventPusher.PlayerLoginSuccess(message.PlayerName, message.ConnectionId);
            });

            Receive <PlayerLeavedMessage>(
                message =>
            {
                _gameEventPusher.PlayerLeaved(message.PlayerName);
            });

            Receive <PlayerLogoutSuccess>(
                message =>
            {
                _gameEventPusher.PlayerLogoutSuccess(message.PlayerName, message.ConnectionId);
            });

            Receive <PlayerLoginFailed>(
                message =>
            {
                _gameEventPusher.PlayerLoginFailed(message.ErrorMessage, message.ConnectionId);
            });

            Receive <PlayersListProvidedMessage>(
                message =>
            {
                _gameEventPusher.PlayersListProvided(message.PlayersList, message.ConnectionId);
            });

            Receive <BoardStateProvidedMessage>(
                message =>
            {
                _gameEventPusher.BoardStateProvided(message.Board, message.ConnectionId);
            });

            Receive <BroadcastBoardStateMessage>(
                message =>
            {
                _gameEventPusher.BroadcastBoardState(message.Board);
            });

            Receive <LogMessage>(
                message =>
            {
                _gameEventPusher.LogMessage(message.Message);
            });

            Receive <NewActivePlayerMessage>(
                message =>
            {
                _gameEventPusher.NewActivePlayer(message.Player);
            });

            Receive <BroadcastPlayersListMessage>(
                message =>
            {
                _gameEventPusher.BroadcastPlayersList(message.PlayersList);
            });

            Receive <BroadcastWinnersMessage>(
                message =>
            {
                _gameEventPusher.BroadcastWinners(message.Winners);
            });
        }