Example #1
0
    // Use this for initialization
    public NPCController()
    {
        turnService = Container.get<TurnService>();

        gameObserver = Container.get<GameObserver>();

        npcService = Container.get<NPCPlayerService>();

        gameObserver.addListener(Events.NEXT_PLAYERS_TURN, (playerMessage) => {
            Player player = playerMessage as Player;

            if (player.playerType == PlayerType.NPC) {

                npcService.play(player);
            }
        }, this);

        gameObserver.addListener(Events.TURN_WINNER, (playerMessage) => {
            Player player = playerMessage as Player;

            if (player.playerType == PlayerType.NPC) {

                npcService.play(player);
            }
        }, this);
    }
        public GamePlayController()
        {
            turnService  = Container.get<TurnService>();

            gameObserver = Container.get<GameObserver>();

            gameObserver.addListener("GUI.CardClick", (cardObject) => {

                Card card = cardObject as Card;

                if(turnService.currentPlayer != localPlayer || turnService.currentProperty == Property.NONE){
                    //
                    UnityEngine.Debug.Log("Clicked in " + card.id + " but not your turn");
                    return;
                }

                turnService.play(card, localPlayer);

                showCards();

                if (turnService.currentPlayer == localPlayer) {
                    showMenu();
                }

            }, this);

            gameObserver.addListener(Events.TURN_WINNER, (playerMessage) => {

                if(playerMessage.Equals(localPlayer)){
                    showMenu();
                }
            });

            gameObserver.addListener(Events.NEXT_PLAYERS_TURN, (playerMessage) => {

                if(playerMessage.Equals(localPlayer)){
                    showMenu();
                }
            });

            gameObserver.addListener(Events.SELECT_PROPERTY, (property) => {

                showMenu();
            });

            //showMenu();

            bindPropertyListeners();
        }
        public OnlinePlayerService()
        {
            turnService     = Container.get<TurnService>();
            gameObserver    = Container.get<GameObserver>();
            socket          = Container.get<WebSocketService>();

            gameObserver.addListener("OnPlay", (message) => {
                Play play = ((Message<Play>) message).message;

                turnService.play(play);
            });

            gameObserver.addListener(Events.CARD_TO_TABLE, (message) => {
                Play play = (Play) message;

                if(play.player.playerType == PlayerType.LOCAL){
                    socket.sendMessage<Play>(new Message<Play>(
                        "Play",
                        play,
                        play.GetType().FullName
                    ));
                }

            });

            gameObserver.addListener("giveCards", (message) => {
                Room room = ((Message<Room>) message).message;

                turnService.currentRoom.players.ForEach((player) => {
                    var onPlayer = room.players.Find((play) => {
                        return play.id == player.id;
                    });

                    player.cards = onPlayer.cards;
                });
            });

            gameObserver.addListener("cardsToPlayers", (message) => {
                Room room = (Room) message;

                if (turnService.isMaster) {
                    socket.sendMessage<Room>(new Message<Room>("giveCards", room, room.GetType().FullName));
                }
            });
        }
 public NPCPlayerService()
 {
     turnService  = Container.get<TurnService>();
     gameObserver = Container.get<GameObserver>();
 }
 public LocalPlayerService()
 {
     gameObserver    = Container.get<GameObserver>();
     socket          = Container.get<WebSocketService>();
     turnService     = Container.get<TurnService>();
 }