Exemple #1
0
    public override string RenderValue()
    {
        var demand   = Marketing.GetClientFlow(Q, SelectedNiche);
        var audience = Markets.GetAudienceSize(Q, SelectedNiche);

        return($"{Format.Minify(audience)} users"); // (+{Format.Minify(demand)} weekly)";
    }
Exemple #2
0
    public override string RenderValue()
    {
        return("");

        var clients = Markets.GetAudienceSize(Q, SelectedNiche);

        var flow = Marketing.GetClientFlow(Q, SelectedNiche);

        return($"{Format.Minify(clients)} users\n\n+{Format.Minify(flow)} this month");


        var potential = Markets.GetMarketPotential(Q, SelectedNiche);

        if (potential == 0)
        {
            return("???");
        }

        var niche = Markets.GetNiche(Q, SelectedNiche);

        var min0 = Markets.GetMarketPotentialMin(niche);
        var max0 = Markets.GetMarketPotentialMax(niche);

        var min = Math.Min(min0, max0);
        var max = Math.Max(min0, max0);

        return(Format.Money(min) + " ... " + Format.Money(max));
    }
Exemple #3
0
    public override void Execute()
    {
        Marketing.ReleaseApp(Q, Flagship);
        //NotificationUtils.AddPopup(Q, new PopupMessageDoYouWantToRelease(Flagship.company.Id));
        //NotificationUtils.AddPopup(Q, new PopupMessageRelease(Flagship.company.Id));

        var gain = Marketing.GetClientFlow(Q, Flagship.product.Niche);

        NotificationUtils.AddSimplePopup(Q, "You've released the product!", "Your flagship product " + Flagship.company.Name + " got " + Visuals.Positive("+" + Format.Minify(gain) + " users")); //  + "\n\nYou can get way more if you change your positioning"
    }
Exemple #4
0
    public override string RenderValue()
    {
        var state = Markets.GetMarketState(Q, SelectedNiche);
        var speed = Markets.GetMarketGrowth(state);


        var flow = Marketing.GetClientFlow(Q, SelectedNiche);

        return(Visuals.Positive("+" + speed) + $"% / month");
        //+
        //$"\n\nMarket will get {Format.MinifyToInteger(flow)} new users this month";
    }
Exemple #5
0
        public static long GetAbsoluteAnnualMarketGrowth(GameContext gameContext, GameEntity niche)
        {
            //var relativeGrowth = GetRelativeAnnualMarketGrowth(niche);

            var flow = Marketing.GetClientFlow(gameContext, niche.niche.NicheType);

            long clients = flow; // * relativeGrowth;

            var price = GetNicheCosts(niche).BaseIncome * 1.5f;

            return((long)(clients * price));
        }
Exemple #6
0
    void RenderReleasePopup(PopupMessageRelease popup)
    {
        var product = Companies.Get(Q, popup.companyId);
        var gain    = Marketing.GetClientFlow(Q, product.product.Niche);

        RenderUniversalPopup(
            "You've released the product!",
            Visuals.Positive($"You got new users and you can {C.RELEASE_BRAND_POWER_GAIN} Brand Power!")
            //Visuals.Positive($"You got new users and you can  {C.RELEASE_BRAND_POWER_GAIN} Brand Power!")
            //+ "\n\nIncrease Brand power if you want to get more clients!"
            //"\n\nBrand grows if you form partnerships, make innovations and capture markets"
            ,
            typeof(ClosePopupOK)
            );
    }
Exemple #7
0
    public void Render()
    {
        NicheType nicheType = SelectedNiche;
        var       niche     = Markets.Get(Q, nicheType);

        var profile = niche.nicheBaseProfile.Profile;

        var nicheCosts = Markets.GetNicheCosts(Q, nicheType);

        var rating = Markets.GetMarketRating(niche);

        SetAmountOfStars.SetStars(rating);

        ChangeSpeed.text = "xxx days";

        PotentialMarketSize.text   = Format.Money(Markets.GetMarketPotential(niche));
        PotentialAudienceSize.text = Format.MinifyToInteger(Markets.GetMarketAudiencePotential(niche)) + " users";

        var    risk     = Markets.GetMarketDemandRisk(Q, nicheType);
        string riskText = Markets.ShowRiskStatus(risk).ToString();

        RiskLabel.text = $"{risk}% ({riskText})";

        var demand = Marketing.GetClientFlow(Q, nicheType); // * MarketingUtils.GetMarketingFinancingAudienceReachModifier(MarketingFinancing.High) * 30;

        Demand.text = Format.MinifyToInteger(demand) + " monthly";

        var baseMaintenance = Markets.GetBaseProductMaintenance(Q, niche);

        //Maintenance.text = Format.MinifyMoney(baseMaintenance) + " / month";
        Maintenance.text   = $"{nicheCosts.AcquisitionCost.ToString("0.0")} / user"; // Format.MinifyMoney(baseMaintenance) + " / month";
        IncomePerUser.text = $"{nicheCosts.BaseIncome.ToString("0.0")} / user";      // Format.MinifyMoney(baseMaintenance) + " / month";

        //var teamMaintenance = NicheUtils.GetTeamMaintenanceCost(niche);
        //TeamMaintenance.text = Format.MoneyToInteger(teamMaintenance) + " / month";

        TeamMaintenance.text = profile.AppComplexity.ToString();

        long maxIncome = 0;

        if (BiggestIncome != null)
        {
            var players = Markets.GetProductsOnMarket(Q, niche.niche.NicheType);


            if (players.Count() == 0)
            {
                BiggestIncome.text = "???";
            }
            else
            {
                maxIncome          = players.Max(p => Economy.GetIncome(Q, p));
                BiggestIncome.text = Format.Money(maxIncome) + " / month";
            }
        }

        var start = Markets.GetStartCapital(niche, Q);

        if (StartCapital != null)
        {
            StartCapital.text = Format.Money(start);

            var showStartCapital = !Companies.HasCompanyOnMarket(MyCompany, nicheType, Q);

            StartCapital.gameObject.SetActive(showStartCapital);
            StartCapitalLabel.gameObject.SetActive(showStartCapital);
        }

        //var monthlyMaintenance = marketingMaintenance + teamMaintenance;
        //if (MonthlyMaintenance != null)
        //    MonthlyMaintenance.text = Format.Money(monthlyMaintenance) + " / month";

        //if (ROI != null)
        //{
        //    var roi = (maxIncome - monthlyMaintenance) * 100 * 12 / (monthlyMaintenance + 1);
        //    ROI.text = $"{roi}% / yearly";
        //}
    }