예제 #1
0
        public static void AssignAssassinId(int gameId)
        {
            Random        random      = new Random();
            var           db          = new AssassinContext();
            List <Player> playerList  = db.players.Where(p => p.game_id == gameId).ToList();
            int           playerCount = playerList.Count;

            foreach (Player player in playerList)
            {
                while (player.assassin_id == 0)
                {
                    int randomNumber = random.Next(1, playerCount + 1);
                    int count        = 0;
                    foreach (Player checkPlayer in playerList)
                    {
                        if (randomNumber == checkPlayer.assassin_id)
                        {
                            count++;
                        }
                    }
                    if (count == 0)
                    {
                        player.assassin_id = randomNumber;
                    }
                }
            }
            db.SaveChanges();
        }
예제 #2
0
        public static int IsGameOver(int gameId, int assassinId, int targetId)
        {
            var db           = new AssassinContext();
            var selectedGame = db.games.Find(gameId);

            if (assassinId == targetId)
            {
                selectedGame.is_end   = 1;
                selectedGame.is_start = 0;
                // selectedGame.AssignDeathDay();
            }
            db.SaveChanges();
            return(selectedGame.is_end);
        }
예제 #3
0
        public void CloseContract(int contractId, int playerId, string weapon)
        {
            var db = new AssassinContext();
            var selectedContract = db.contracts.Find(contractId);

            selectedContract.weapon       = weapon;
            selectedContract.contract_end = DateTime.Now;
            selectedContract.is_fulfilled = 1;
            var selectedPlayer = db.players.Find(playerId);

            if (weapon == "sock")
            {
                selectedPlayer.sock_score++;
            }
            else if (weapon == "spoon")
            {
                selectedPlayer.spoon_score++;
            }
            db.SaveChanges();
        }
예제 #4
0
        public void KillTarget(int contractId)
        {
            var      db = new AssassinContext();
            var      completedContract = db.contracts.Find(contractId);
            int      newAssassin       = completedContract.assassin_id;
            int      newGameId         = completedContract.game_id;
            Contract deadContract      = db.contracts.Where(c => c.assassin_id == completedContract.target_id && c.is_fulfilled == 0).FirstOrDefault();
            int      newTarget         = deadContract.target_id;
            var      nowDeadPlayer     = db.players.Where(p => p.assassin_id == completedContract.target_id).FirstOrDefault();

            nowDeadPlayer.is_alive = 0;
            if (IsGameOver(newGameId, newAssassin, newTarget) != 1)
            {
                DateTime nullDateTime = new DateTime(1, 1, 1, 0, 0, 0);
                Contract newContract  = new Contract {
                    game_id = newGameId, assassin_id = newAssassin, target_id = newTarget, contract_start = DateTime.Today, contract_end = nullDateTime, is_fulfilled = 0
                };
                db.contracts.Add(newContract);
            }
            db.SaveChanges();
        }
예제 #5
0
파일: Game.cs 프로젝트: reese-lee/Assassin
        public void BeginGame()
        {
            var  db       = new AssassinContext();
            Game thisGame = db.games.Find(this.id);

            thisGame.is_start = 1;
            DateTime      nullDateTime = new DateTime(1, 1, 1, 0, 0, 0);
            List <Player> playerList   = Player.GetAll(thisGame.id);

            foreach (Player player in playerList)
            {
                Contract firstContract = new Contract {
                    game_id = thisGame.id, assassin_id = player.assassin_id, target_id = (player.assassin_id + 1), contract_start = DateTime.Today, contract_end = nullDateTime, is_fulfilled = 0
                };
                if (firstContract.target_id > playerList.Count)
                {
                    firstContract.target_id = 1;
                }
                db.contracts.Add(firstContract);
            }
            db.SaveChanges();
        }