Exemple #1
0
    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)");
    }
Exemple #3
0
    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());
    }
Exemple #4
0
        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!");
    }
Exemple #6
0
    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);
    }
Exemple #7
0
        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);
    }
Exemple #10
0
    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");
    }
Exemple #11
0
    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());
 }
Exemple #13
0
    void RenderProductCompany()
    {
        var growth = Marketing.GetAudienceGrowth(company, Q);

        Growth.text = $"+{Format.Minify(growth)} users (#{1})";
    }
Exemple #14
0
    public override long GetParameter()
    {
        Colorize(Colors.COLOR_POSITIVE);

        return(Marketing.GetAudienceGrowth(Flagship, Q));
    }
Exemple #15
0
    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");
    }
Exemple #17
0
    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 += $""
        //}
    }