Пример #1
0
        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);
        }
Пример #2
0
        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;
                }
            }
        }
Пример #3
0
        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
            });
        }
Пример #5
0
        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);
        }