Example #1
0
        internal override bool Handle(PlayerEventCode eventCode, Dictionary <byte, object> parameters, out string errorMessage)
        {
            if (base.Handle(eventCode, parameters, out errorMessage))
            {
                int                gameID              = (int)parameters[(byte)GameStartParameterCode.GameID];
                int                player1ID           = (int)parameters[(byte)GameStartParameterCode.Player1ID];
                string             player1Nickname     = (string)parameters[(byte)GameStartParameterCode.Player1Nickname];
                Library.GamePlayer gamePlayer1         = SerializationHelper.Deserialize <Library.GamePlayer>((byte[])parameters[(byte)GameStartParameterCode.GamePlayer1DataByteArray]);
                int                player2ID           = (int)parameters[(byte)GameStartParameterCode.Player2ID];
                string             player2Nickname     = (string)parameters[(byte)GameStartParameterCode.Player2Nickname];
                Library.GamePlayer gamePlayer2         = SerializationHelper.Deserialize <Library.GamePlayer>((byte[])parameters[(byte)GameStartParameterCode.GamePlayer2DataByteArray]);
                int                roundCount          = (int)parameters[(byte)GameStartParameterCode.RoundCount];
                int                currentGamePlayerID = (int)parameters[(byte)GameStartParameterCode.CurrentGamePlayerID];
                GameCardManager    gameCardManager     = SerializationHelper.Deserialize <GameCardManager>((byte[])parameters[(byte)GameStartParameterCode.GameCardManagerByteArray]);

                gamePlayer1.Player = new Library.Player(player1ID, player1Nickname);
                gamePlayer2.Player = new Library.Player(player2ID, player2Nickname);

                Library.Game game = new Library.Game
                                    (
                    gameID: gameID,
                    gamePlayer1: gamePlayer1,
                    gamePlayer2: gamePlayer2,
                    roundCount: roundCount,
                    currentGamePlayerID: currentGamePlayerID,
                    gameCardManager: gameCardManager
                                    );
                GameManager.Instance.AddGame(game);
                gamePlayer1.BindGame(game);
                gamePlayer2.BindGame(game);
                gameCardManager.BindGame(game);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #2
0
        public Game(int gameID, Player player1, Player player2, Deck player1Deck, Deck player2Deck)
        {
            GameCardManager = new GameCardManager();
            GameCardManager.BindGame(this);

            GameID      = gameID;
            GamePlayer1 = new GamePlayer(player1, new Hero(1, 30, 30), CreateGameDeck(1, player1Deck));
            GamePlayer1.BindGame(this);
            GamePlayer2 = new GamePlayer(player2, new Hero(2, 30, 30), CreateGameDeck(2, player2Deck));
            GamePlayer2.BindGame(this);
            RoundCount = 0;
            Random randomGenerator = new Random();

            if (randomGenerator.NextDouble() > 0.5)
            {
                CurrentGamePlayerID = 1;
                GamePlayer1.Draw(3);
                GamePlayer2.Draw(4);
            }
            else
            {
                CurrentGamePlayerID = 2;
                GamePlayer1.Draw(4);
                GamePlayer2.Draw(3);
            }
            Field1 = new Field(1);
            Field1.BindGame(this);
            Field2 = new Field(2);
            Field2.BindGame(this);

            AssemblyGamePlayerEvents(GamePlayer1);
            AssemblyGamePlayerEvents(GamePlayer2);
            AssemblyFieldEvents(Field1);
            AssemblyFieldEvents(Field2);

            EventManager = new GameEventManager(this);
        }