public override string StandardTitle() { var company = Companies.Get(Q, CompanyId); var clients = Marketing.GetAudienceGrowth(company, Q); return($"Start Targeting Campaign\n(+{Format.Minify(clients)} clients)"); }
public override string StandardTitle() { var company = Companies.Get(Q, CompanyId); var clients = Marketing.GetAudienceGrowth(company, Q); var branding = Balance.BRAND_CAMPAIGN_BRAND_POWER_GAIN; return($"Start Branding Campaign\n(+{branding} Brand and +{Format.Minify(clients)} clients)"); }
public override void ViewRender() { base.ViewRender(); var players = Markets.GetProductsOnMarket(Q, SelectedNiche) //.OrderByDescending(p => MarketingUtils.GetClients(p)); .OrderByDescending(p => Marketing.GetAudienceGrowth(p, Q)); SetItems(players.ToArray()); }
internal static void RegularCampaign(CompanyTask task, GameContext gameContext) { var t = task as CompanyTaskMarketingRegularCampaign; var c = Companies.Get(gameContext, t.CompanyId); var clients = Marketing.GetAudienceGrowth(c, gameContext); Marketing.AddClients(c, clients); }
public override string RenderValue() { var gain = Marketing.GetAudienceGrowth(Flagship, Q); if (gain > 0) { return("Active channels"); } return($"We get {Visuals.Negative("ZERO")} users now.\n\nAdd more channels to get users!"); }
private void RenderCompanyInfo(GameEntity e) { var brand = (int)e.branding.BrandPower; var brandChange = Marketing.GetBrandChange(e, Q).Sum(); var newClients = Marketing.GetAudienceGrowth(e, Q); Clients.text = "+" + Format.Minify(newClients) + $" users ({brand} brand)"; Concept.text = "" + brand + " " + Visuals.PositiveOrNegativeMinified(brandChange); }
internal static void BrandingCampaign(CompanyTask task, GameContext gameContext) { var t = task as CompanyTaskBrandingCampaign; var c = Companies.Get(gameContext, t.CompanyId); Marketing.AddBrandPower(c, Balance.BRAND_CAMPAIGN_BRAND_POWER_GAIN); var clients = Marketing.GetAudienceGrowth(c, gameContext); Marketing.AddClients(c, clients); }
public override string RenderValue() { var growth = Marketing.GetAudienceGrowth(SelectedCompany, Q); var churn = Marketing.GetChurnClients(Q, SelectedCompany.company.Id); //var text = "Audience grows by " + Format.Minify(clients) + " clients each month due to current brand power and concept level"; var text = $"This product will {Visuals.Positive("receive")} approximately {Format.Minify(growth)} clients next month." + $"\n\nDue to churn they will {Visuals.Negative("lose")} {Format.Minify(churn)} clients." + $"\n\nThis values are based on brand power, product relevance" ; return(text); }
void DistributeClients(GameEntity[] products, GameEntity niche) { var clientContainers = niche.nicheClientsContainer.Clients; foreach (var p in products) { var clients = Marketing.GetAudienceGrowth(p, gameContext); Marketing.AddClients(p, clients); var segId = p.productPositioning.Positioning; clientContainers[segId] -= clients; } niche.ReplaceNicheClientsContainer(clientContainers); }
void Render() { var company = Companies.Get(Q, companyId); var clients = Marketing.GetClients(company); var newClients = Marketing.GetAudienceGrowth(company, Q); Clients.text = Format.Minify(clients); NewClients.text = Format.Minify(newClients); var isPlayerRelated = Companies.IsRelatedToPlayer(Q, company); Name.text = company.company.Name; Name.color = Visuals.GetColorFromString(isPlayerRelated ? Colors.COLOR_COMPANY_WHERE_I_AM_CEO : Colors.COLOR_COMPANY_WHERE_I_AM_NOT_CEO); LinkToProjectView.CompanyId = company.company.Id; ClientChange.SetHint($"{company.company.Name} will get this amount of clients next week"); }
public override void ViewRender() { base.ViewRender(); if (product == null) { return; } var newClients = Marketing.GetAudienceGrowth(product, Q); ClientChanges.GetComponent <Text>().text = Visuals.Positive(Format.Minify(newClients)) + " users"; if (ScheduleUtils.IsPeriodEnd(Q)) { ClientChanges.AddComponent <AnimateResourceChange>().Renewable = true; ClientChanges.SetActive(true); } }
public override string RenderHint() { return(Marketing.GetAudienceGrowth(SelectedCompany, Q).ToString()); }
void RenderProductCompany() { var growth = Marketing.GetAudienceGrowth(company, Q); Growth.text = $"+{Format.Minify(growth)} users (#{1})"; }
public override long GetParameter() { Colorize(Colors.COLOR_POSITIVE); return(Marketing.GetAudienceGrowth(Flagship, Q)); }
public override string RenderValue() { var growth = Marketing.GetAudienceGrowth(Flagship, Q); return(Format.Minify(growth)); }
public override string RenderValue() { var growth = Marketing.GetAudienceGrowth(SelectedCompany, Q); return($"{Format.Minify(growth)} users"); }
void RenderPositioningChangeBenefit() { var product = Flagship; var audienceChange = (double)Marketing.GetAudienceChange(product, Q); var audienceGrowth = (double)Marketing.GetAudienceGrowth(product, Q); // Fake positioning change ------------------- var positioning = Marketing.GetPositioning(product); Marketing.ChangePositioning(product, Positioning.ID); var newAudienceGrowth = (double)Marketing.GetAudienceGrowth(product, Q); var companies = Companies.GetCompetitionInSegment(product, Q, Positioning.ID, true); //var newBestAppQuality = Marketing Marketing.ChangePositioning(product, positioning.ID); // -------------------------------- var incomePerUser = Economy.GetIncomePerUser(product, 0) * C.PERIOD / 30; // 0.05d; var newIncomePerUser = incomePerUser; bool noCompetitors = companies.Count() == 0; if (noCompetitors) { newAudienceGrowth *= 2; } var incomeGrowth = Convert.ToInt64((audienceGrowth * incomePerUser)); var newIncomeGrowth = Convert.ToInt64(newAudienceGrowth * newIncomePerUser); var situation = $"Your income grows by {Format.Money(incomeGrowth)} every week (by getting {Format.Minify(audienceGrowth)} users)."; ChangeGain.text = situation; var incomeChange = newIncomeGrowth - incomeGrowth; var audienceGrowthChange = newAudienceGrowth - audienceGrowth; if (newAudienceGrowth != audienceGrowth) { ChangeGain.text += $"\nAfter positioning change you will "; if (newAudienceGrowth > audienceGrowth) { var incomeGainDescription = "+" + Format.Money(incomeChange) + " / week"; var audienceGainDescription = "+" + Format.Minify(audienceGrowthChange) + " users"; ChangeGain.text += $"<b>GET</b> additional <b>{Visuals.Positive(incomeGainDescription)}</b> (by getting <b>additional</b> {Visuals.Positive(audienceGainDescription)})"; } if (newAudienceGrowth < audienceGrowth) { var incomeGainDescription = Format.Money(-incomeChange) + " / week"; var audienceGainDescription = Format.Minify(-audienceGrowthChange) + " users"; ChangeGain.text += $"<b>LOSE</b> <b>{Visuals.Negative(incomeGainDescription)}</b> (by losing {Visuals.Negative(audienceGainDescription)})"; } } else { ChangeGain.text += Visuals.Colorize("\nThis is our current positioning", Colors.COLOR_CONTROL); } // Competition -------------------- if (noCompetitors) { ChangeGain.text += "\n" + Visuals.Positive("There are NO competitors, so you will get <b>TWICE</b> more users!"); } // ------------------------- //if (newAudienceGrowth == audienceGrowth) //{ // ChangeGain.text += $"" //} }