/// <summary> /// Finds number of players for each team at a coordinate at rolls to find a winner /// /// </summary> public void RollForEngagement(Coordinate coordinate, Match match) { List<Player> homePlayersAtCoordinate = new List<Player>(); List<Player> awayPlayerAtCoordinate = new List<Player>(); foreach (Player somePlayer in match.GetPlayersAtCoordinate(coordinate, match)) { if (somePlayer.Team.TeamName == match.HomeTeam.TeamName) { homePlayersAtCoordinate.Add(somePlayer); } else { awayPlayerAtCoordinate.Add(somePlayer); } } Console.WriteLine(match.HomeTeam.TeamName + " has " + homePlayersAtCoordinate.Count + " players at coordinate 2,2"); Console.WriteLine(match.AwayTeam.TeamName + " has " + awayPlayerAtCoordinate.Count + " players at coordinate 2,2"); //roll for greek players at coordinate Random rnd = new Random(); int rollHome = rnd.Next(1, 7); int rollAway = rnd.Next(1, 7); Console.WriteLine(match.HomeTeam.TeamName + " rolls " + rollHome); Console.WriteLine(match.AwayTeam.TeamName + " rolls " + rollAway); //+2 til roll pr. player at coordinate. int modifiedGreekRoll = rollHome + homePlayersAtCoordinate.Count * 2; int modifiedOlsenRoll = rollAway + awayPlayerAtCoordinate.Count * 2; Console.WriteLine("greek modified roll is" + modifiedGreekRoll); Console.WriteLine("Olsen modified roll is" + modifiedOlsenRoll); ResultOfEngagement engagementResult = FindWinner(match, modifiedGreekRoll, modifiedOlsenRoll); var downedPlayer = new Player(); //add effect (down player, equals half a player next round and can't move. if (engagementResult != ResultOfEngagement.Tie) { downedPlayer = EffectOfEngangement(engagementResult, homePlayersAtCoordinate, awayPlayerAtCoordinate); } else { Console.WriteLine("Its was a tie, no player downed"); } if (downedPlayer != null) { if (match.MatchBall.PlayerWithBall == downedPlayer) { //give player to another player at that coordinate } Console.WriteLine(downedPlayer.Name + " " + downedPlayer.State); } Console.WriteLine(engagementResult.ToString()); }
public void GetPlayersAtCoordinateTest() { //Arrange Team firsteTeam = new Team() { TeamName = "The greeks" }; Team secondTeam = new Team() { TeamName = "Olsen banden" }; Match thisMatch = new Match() { HomeTeam = firsteTeam, AwayTeam = secondTeam }; firsteTeam.PlayersOnTeam.Add(new Player() { ShirtNumber = 1, Name = "Alpha", Position = new Coordinate(2, 1), Team = firsteTeam }); firsteTeam.PlayersOnTeam.Add(new Player() { ShirtNumber = 2, Name = "Beta", Position = new Coordinate(1, 1), Team = firsteTeam }); secondTeam.PlayersOnTeam.Add(new Player() { ShirtNumber = 10, Name = "Egon", Position = new Coordinate(1, 1), Team = secondTeam }); secondTeam.PlayersOnTeam.Add(new Player() { ShirtNumber = 11, Name = "Benny", Position = new Coordinate(1, 1), Team = secondTeam }); //Act var playersToFind = thisMatch.GetPlayersAtCoordinate(new Coordinate(1, 1), thisMatch); //Assert Assert.NotEmpty(playersToFind); Assert.Equal(3, playersToFind.Count); Assert.Equal("Beta", playersToFind[0].Name); Assert.Equal("The greeks", playersToFind[0].Team.TeamName); Assert.Equal("Egon", playersToFind[1].Name); Assert.Equal("Olsen banden", playersToFind[1].Team.TeamName); Assert.Equal("Benny", playersToFind[2].Name); Assert.Equal("Olsen banden", playersToFind[2].Team.TeamName); }