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(); }
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); }
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(); }
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(); }
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(); }