public static GameEntity CreateProduct(GameContext context, GameEntity company, NicheType niche) { company.AddProduct(niche, 0); // positioning int positionings = Markets.GetNichePositionings(niche, context).Count; company.AddProductPositioning(Random.Range(0, positionings)); // development company.AddFeatures(new Dictionary <ProductFeature, int> { [ProductFeature.Acquisition] = 0, [ProductFeature.Monetisation] = 0, [ProductFeature.Retention] = 0 }, 0); company.AddExpertise(Random.Range(1, 4)); company.AddFinancing(new Dictionary <Financing, int> { [Financing.Development] = 0, [Financing.Marketing] = 0, [Financing.Team] = 0 }); // clients var flow = Marketing.GetBaseClientsForNewCompanies(context, niche); var baseClients = Random.Range(0.15f, 0.35f) * flow; company.AddMarketing((long)baseClients); // sphere of interest var industry = Markets.GetIndustry(niche, context); AddFocusNiche(niche, company, context); AddFocusIndustry(industry, company); Investments.SetCompanyGoal(context, company, InvestorGoal.Operationing); return(company); }