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