private static float GetOverallRating(PlayerStatsWrapper stats, PlayerPositionItem playerPositionMapper) { var overallRating = 0.0f; foreach (var stat in stats.Stats) { overallRating += stat.Value * playerPositionMapper.StatsOverallCoefficients[stat.Name]; } return(overallRating); }
private static void UpdatePlayerStats(PlayerStatsWrapper stats, float overallRating, float wantedRating) { foreach (var stat in stats.Stats) { stat.Value *= wantedRating / overallRating; if (stat.Value > 100.0f) { stat.Value = 100.0f; } } }
private static void GenerateStats(PlayerStatsWrapper stats, PlayerPositionItem playerPositionMapper) { var rnd = new Random(); foreach (var stat in stats.Stats) { var statsGroup = GetStatGroup(stat.Name); var mediana = playerPositionMapper.StatsGenerationMedianas[statsGroup]; float statValue = 0; if (mediana > 0) { statValue = mediana + rnd.Next(-playerPositionMapper.StatsGenerationDelta, playerPositionMapper.StatsGenerationDelta + 1); } stat.Value = statValue; } }
public static PlayerStatsViewModel Get(Player player) { var statsWrapper = PlayerStatsWrapper.Get(player); var stats = player.Stats; return(new PlayerStatsViewModel { OverallRating = statsWrapper.OverallRating, Speed = statsWrapper.Speed, Shooting = statsWrapper.Shooting, Passing = statsWrapper.Passing, Technique = statsWrapper.Technique, Defending = statsWrapper.Defending, Physical = statsWrapper.Physical, Goalkeeping = statsWrapper.Goalkeeping, Acceleration = stats.Acceleration, SprintSpeed = stats.SprintSpeed, Shots = stats.Shots, LongShots = stats.LongShots, Penalties = stats.Penalties, FreeKicks = stats.FreeKicks, ShortPassing = stats.ShortPassing, LongPassing = stats.LongPassing, Crossing = stats.Crossing, Agility = stats.Agility, BallControl = stats.BallControl, Tricks = stats.Tricks, Interceptions = stats.Interceptions, StandingTackles = stats.StandingTackles, SlidingTackles = stats.SlidingTackles, Jumping = stats.Jumping, Strength = stats.Strength, Heading = stats.Heading, Stamina = stats.Stamina, HandPlay = stats.HandPlay, Kicking = stats.Kicking, Reflexes = stats.Reflexes, Positioning = stats.Positioning }); }
public static Player Get(IPlayerBuilderData playerBuilderData) { var player = new Player { Country = playerBuilderData.Country, Position = playerBuilderData.Position }; PersonBuilder.SetPerson(player); var playerPositionMapper = PlayerPositionMapper.Items.First(i => i.PlayerPosition == player.Position); player.HeightType = HeightTypeCreators[player.Position].GetRandom(); player.BodyType = BodyTypeCreators[player.Position].GetRandom(); player.Height = GetRandomHeight(player.HeightType); player.Weight = (int)((player.Height * player.Height) * GetRandomBodyMassIndex(player.BodyType) / 10000.0f); player.Age = AgeGenerator.GetRandom(); player.Talent = TalentGenerator.GetRandom(); var stats = new PlayerStats(); player.Stats = stats; var statsWrapper = PlayerStatsWrapper.Get(player); GenerateStats(statsWrapper, playerPositionMapper); var overallRating = GetOverallRating(statsWrapper, playerPositionMapper); var wantedOverallRating = GetPlayerLevel(playerBuilderData.Level); UpdatePlayerStats(statsWrapper, overallRating, wantedOverallRating); return(player); }