예제 #1
0
        public static Bonus <int> GetHRBasedNewManagerRatingBonus(GameEntity company, GameContext gameContext)
        {
            var bonus = new Bonus <int>("New manager rating");

            var managingCompany = Companies.GetManagingCompanyOf(company, gameContext);

            var productsOfManagingCompany = Companies.GetDaughterProducts(gameContext, managingCompany);

            bool hasGlobalMarkets = productsOfManagingCompany
                                    .Select(p => Markets.Get(gameContext, p))
                                    .Count(m => m.nicheBaseProfile.Profile.AudienceSize == AudienceSize.Global) > 0;


            int positionOnMarket = 0;

            if (company.hasProduct)
            {
                var clampedPosition = Mathf.Clamp(Markets.GetPositionOnMarket(gameContext, company), 0, 5);

                positionOnMarket = (5 - clampedPosition) * 2;
            }

            bonus
            .Append("Base value", C.NEW_MANAGER_RATING_MIN)
            .Append("Mission", 0)

            .AppendAndHideIfZero("Position on market", positionOnMarket)

            .Append("Has Global Markets", hasGlobalMarkets ? 10 : 0)
            //.Append("Is TOP10 Company", 0)
            //.Append("Is TOP10 in teams", 0)
            ;

            return(bonus);
        }