Exemplo n.º 1
0
        public PlayerInBattle GetNewGame(Player firstPlayer, int gameType, List <Player> opponents)
        {
            // 1-Create The game
            var  game         = typeMapping.GetGame(gameType);
            Grid currentState = game.GetNewGame();

            // 2-Preparing listOfPlayers
            var listPlayers = opponents.Select(p => p.PlayerId).ToList();

            listPlayers.Insert(0, firstPlayer.PlayerId);

            // 2-Link the players Id with player numbers
            PlayerInBattle toReturn = new PlayerInBattle()
            {
                Battle = new Battle
                {
                    CreationTime   = DateTime.Now,
                    BattleId       = Math.Abs((int)DateTime.Now.Ticks),//String.Format("{0}_{1}_{2}_{3}", game.GetGameType(), firstPlayer.PlayerId, GetElapsedSecondsSinceLastNewYear(), ran.Next(99)),
                    GameType       = gameType,
                    GameTypeString = game.ToString(),
                    LastUpdate     = DateTime.Now,
                    Players        = listPlayers,
                    CurrentState   = currentState
                },
                Player       = firstPlayer,
                PlayerNumber = 1
            };

            repoPlayerInBattle.Persist(toReturn);
            return(toReturn);
        }
Exemplo n.º 2
0
        protected override PlayerInBattle GetFromDatabase(Tuple <int, int> key)
        {
            PlayerInBattle toReturn = null;
            string         query    = String.Format("{0} where Playerid = {1} and BattleId = {2};", SqlPlayerInBattleSelect, key.Item1, key.Item2);

            toReturn = GetFromQuery(query).FirstOrDefault();
            return(toReturn);
        }
Exemplo n.º 3
0
        public void Create(PlayerInBattle playersInBattle)
        {
            battleDao.SaveBattle(playersInBattle.Battle);
            int battleId     = playersInBattle.Battle.BattleId;
            int playerNumber = 1;

            foreach (int playerId in playersInBattle.Battle.Players)
            {
                //"INSERT INTO PlayerInBattles (PlayerId, BattleId, PlayerNumber) VALUES (...)";
                try
                {
                    using (DbCommand cmd = MyConnection.CreateCommand())
                    {
                        cmd.CommandText = SqlPlayerInBattleInsert;


                        SqlCeCommand ceCmd = cmd as SqlCeCommand;
                        if (ceCmd != null)
                        {
                            ceCmd.Parameters.Add(new SqlCeParameter("@pla", SqlDbType.Int));
                            ceCmd.Parameters.Add(new SqlCeParameter("@bat", SqlDbType.Int));
                            ceCmd.Parameters.Add(new SqlCeParameter("@num", SqlDbType.SmallInt));
                            ceCmd.Prepare();

                            ceCmd.Parameters["@pla"].Value = playerId;
                            ceCmd.Parameters["@bat"].Value = battleId;
                            ceCmd.Parameters["@num"].Value = playerNumber;
                        }
                        else
                        {
                            SqlCommand sqlCmd = cmd as SqlCommand;
                            if (sqlCmd != null)
                            {
                                sqlCmd.Parameters.Add("@pla", SqlDbType.Int);
                                sqlCmd.Parameters["@pla"].Value = playerId;
                                sqlCmd.Parameters.Add("@bat", SqlDbType.Int);
                                sqlCmd.Parameters["@bat"].Value = battleId;
                                sqlCmd.Parameters.Add("@num", SqlDbType.SmallInt);
                                sqlCmd.Parameters["@num"].Value = playerNumber;
                                sqlCmd.Prepare();
                            }
                        }
                        cmd.ExecuteNonQuery();

                        cmd.Parameters.Clear();
                    }
                    playerNumber++;
                }
                catch (Exception e)
                {
                    throw new DAOException(String.Format("Error while creating new PlayerInBattle : {0}", e.Message));
                }
            }
        }
Exemplo n.º 4
0
        public void Persist(PlayerInBattle playersInBattle)
        {
            PlayerInBattle currentState = Get(new Tuple <int, int>(playersInBattle.Player.PlayerId, playersInBattle.Battle.BattleId));

            if (currentState != null)
            {
                //Already exist
                Update(playersInBattle);
            }
            else
            {
                Create(playersInBattle);
            }
        }
Exemplo n.º 5
0
        public void Persist(PlayerInBattle playersInBattle)
        {
            int i = 1;

            foreach (int currentPlayerId in playersInBattle.Battle.Players)
            {
                playersInBattle = new PlayerInBattle()
                {
                    Battle       = playersInBattle.Battle,
                    Player       = MockPlayerRepository.GetInstance().Get(currentPlayerId),
                    PlayerNumber = i
                };

                Tuple <int, int> toPersist = new Tuple <int, int>(currentPlayerId, playersInBattle.Battle.BattleId);
                i++;
                datas[toPersist] = playersInBattle;
            }
        }
Exemplo n.º 6
0
        public Grid Play(PlayerInBattle playerInBattle, Move move)
        {
            // 1- We play the move
            var currentBattle = playerInBattle.Battle;
            var game          = typeMapping.GetGame(currentBattle.GameType);
            var oldState      = currentBattle.CurrentState.NextPlayerToPlay;
            var newState      = game.Play(currentBattle.CurrentState, move);

            // 2- If the grid has change, we persit the new state
            currentBattle.CurrentState = newState;
            if (newState.DeservePersistence(oldState))
            {
                //See what we want to do....
                repoPlayerInBattle.Persist(playerInBattle);
            }

            // 3- We return the new state to the client
            return(newState);
        }
Exemplo n.º 7
0
        protected override PlayerInBattle GetInstanceFromReader(DbDataReader rdr)
        {
            //"SELECT BattleId, PlayerId, PlayerNumber FROM PlayerInBattles"
            var battleId     = rdr.GetInt32(0);
            var playerId     = rdr.GetInt32(1);
            var playerNumber = rdr.GetInt16(2);

            System.Diagnostics.Trace.Write(" battleId = " + battleId +
                                           " playerId = " + playerId);

            var result = new PlayerInBattle()
            {
                Battle       = battleDao.Get(battleId),
                Player       = playerDao.Get(playerId),
                PlayerNumber = playerNumber
            };

            return(result);
        }
Exemplo n.º 8
0
    void InitBattleManagerProperties(string _playerName, int _level, int _exp, string _shipName, int _strength, int _singleCannonDmg, int _speed, int _turnSpeed)
    {
        PlayerInBattle player = new PlayerInBattle()
        {
            playerName = _playerName,
            level      = _level,
            exp        = _exp,

            shipName        = _shipName,
            strength        = _strength,
            singleCannonDmg = _singleCannonDmg,
            speed           = _speed,
            turnSpeed       = _turnSpeed
        };

        BattleManger.Instance.players.Insert(1, player);

        BattleManger.Instance.UpdatePlayerUI();

        ///BattleManger.Instance.ships.Add(player.listOfShips[player.currentShipSelected]);
    }
Exemplo n.º 9
0
    void Start()
    {
        mTrans = transform;
        mStats = GetComponent <GameShip>();
        //mCannons = GetComponentsInChildren<Cannon>();

        photonView  = GetComponent <PhotonView>();
        boxCollider = GetComponentInChildren <BoxCollider>();

        ////onstart()
        //if (BattleManger.Instance)
        //{
        //    mStats.ShipHealth = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].strength;

        //    BattleManger.Instance.PlayerLevelText.text = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].shipName;


        //    photonView.RPC("InitPlayersUIOnStartBattle", PhotonTargets.Others, BattleManger.Instance.PlayerLevelText.text);
        //    //shiphealth
        //    BattleManger.Instance.PlayerHealthText.text = mStats.ShipHealth.ToString();
        //    BattleManger.Instance.PlayerHealthSlider.maxValue = (int) mStats.ShipHealth;
        //    BattleManger.Instance.PlayerHealthSlider.value = (int)mStats.ShipHealth;
        //    photonView.RPC("EnemyShipHealth", PhotonTargets.Others, mStats.ShipHealth);
        //}



        if (BattleManger.Instance)
        {
            //BattleManger.Instance.players = new List<PlayerInBattle>(2);
            //BattleManger.Instance.ships = new List<Ship>(2);


            //fill for player
            if (!PlayerInformation.Instance)
            {
                return;
            }

            //init shipvalues
            mStats.ShipHealth           = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].strength;
            mStats.Ship_singleCannonDmg = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].singleCannonDmg;
            mStats.maxMovementSpeed     = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].speed;
            mStats.maxTurningSpeed      = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].turnSpeed;

            foreach (Cannon cannon in mCannonsLeft)
            {
                cannon.CannonBallDmg = mStats.Ship_singleCannonDmg;
            }
            foreach (Cannon cannon in mCannonsRight)
            {
                cannon.CannonBallDmg = mStats.Ship_singleCannonDmg;
            }

            //



            PlayerInBattle playerInBattle = new PlayerInBattle()
            {
                playerName = PlayerInformation.Instance.playerName,
                level      = PlayerInformation.Instance.level,
                exp        = PlayerInformation.Instance.experience,

                shipName        = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].shipName,
                strength        = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].strength,
                singleCannonDmg = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].singleCannonDmg,
                speed           = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].speed,
                turnSpeed       = PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].turnSpeed
            };

            BattleManger.Instance.players.Insert(0, playerInBattle);
            ///BattleManger.Instance.ships.Add(PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected]);

            //fill for enemy
            photonView.RPC("InitBattleManagerProperties", PhotonTargets.Others,
                           PlayerInformation.Instance.playerName,
                           PlayerInformation.Instance.level,
                           PlayerInformation.Instance.experience,

                           PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].shipName,
                           PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].strength,
                           PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].singleCannonDmg,
                           PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].speed,
                           PlayerInformation.Instance.listOfShips[PlayerInformation.Instance.currentShipSelected].turnSpeed
                           );
        }
    }
Exemplo n.º 10
0
        //Integration test for DAO
        public static void Main()
        {
            //PlayerDao.ConnectionString = MyConfiguration.GetString("MikMakConnection", @"Data Source=|DataDirectory|\LocalDb.sdf");
            Console.WriteLine("Test starting...");
            try
            {
                using (Tester test = new Tester())
                {
                    //Player Tests
                    string login1 = DateTime.Now.ToString("HH:mm:ss");
                    string login2 = DateTime.Now.ToString("HH:mm:ss") + "bis";

                    Debug.Assert(test.playerDao.Get(91233) == null);
                    Debug.Assert(test.playerDao.Get(login1 + "ee") == null);
                    Debug.Assert(test.playerDao.Get(login1) == null);

                    test.playerDao.CreatePlayer(login1, login1);
                    Debug.Assert(test.playerDao.Get(login1) != null);
                    Debug.Assert(test.playerDao.Get(login2) == null);
                    test.playerDao.CreatePlayer(login2, login2);
                    var player1 = test.playerDao.Get(login1);
                    var player2 = test.playerDao.Get(login2);
                    Debug.Assert(player2 != null);
                    Debug.Assert(test.playerDao.Get(login2).Login == login2);
                    Debug.Assert(test.playerDao.Get(login2).Password == login2);
                    Debug.Assert(test.playerDao.Get(login2).PlayerId != test.playerDao.Get(login1).PlayerId);

                    //For fun, tom should exist!
                    if (test.playerDao.Get("tom") == null)
                    {
                        test.playerDao.CreatePlayer("tom", "tom");
                    }

                    //No battles yet
                    Debug.Assert(test.playerInBattleDao.Get(test.playerDao.Get(login1).PlayerId).Count == 0);
                    Debug.Assert(test.playerInBattleDao.Get(test.playerDao.Get(login2).PlayerId).Count == 0);

                    //CreationBattle
                    PlayerInBattle newBattle = new PlayerInBattle()
                    {
                        Player       = player1,
                        PlayerNumber = 1,
                        Battle       = new Battle()
                        {
                            BattleId     = Math.Abs((int)DateTime.Now.Ticks),
                            CurrentState = new Grid()
                            {
                                CurrentMessage   = Message.GetMessage(ClassicMessage.Default),
                                IsGridShifted    = true,
                                MoveNumber       = 5,
                                NextPlayerToPlay = 1,
                                NumberColumns    = 2,
                                NumberLines      = 4,
                                PawnLocations    = new List <Pawn>()
                                {
                                    new Pawn("p1", 1, 2)
                                    {
                                        Player = player1
                                    },
                                    new Pawn("p2", 4, 2)
                                    {
                                        Player = player2
                                    }
                                }
                            },
                            GameType       = 9,
                            GameTypeString = "testToTrash",
                            Players        = new List <int>()
                            {
                                player1.PlayerId,
                                player2.PlayerId
                            }
                        }
                    };
                    test.playerInBattleDao.Persist(newBattle);

                    //Both players should see the battle
                    Debug.Assert(test.playerInBattleDao.Get(test.playerDao.Get(login1).PlayerId).Count == 1);
                    Debug.Assert(test.playerInBattleDao.Get(test.playerDao.Get(login2).PlayerId).Count == 1);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception : " + e);
            }
            Console.WriteLine("End of the test");
        }
Exemplo n.º 11
0
 private void Update(PlayerInBattle playersInBattle)
 {
     battleDao.SaveBattle(playersInBattle.Battle);
 }
Exemplo n.º 12
0
 protected override Tuple <int, int> ExtractKey(PlayerInBattle toAdd)
 {
     return(new Tuple <int, int>(toAdd.Player.PlayerId, toAdd.Battle.BattleId));
 }