Exemplo n.º 1
0
 List <long> GetLastYearMetrics(GameEntity c)
 {
     return(c.metricsHistory.Metrics
            .Where(m => CompanyStatisticsUtils.GetLastYearMetrics(m, CurrentIntDate))
            .Select(m => m.AudienceSize)
            .ToList());
 }
Exemplo n.º 2
0
    public override string RenderValue()
    {
        var current  = CompanyStatisticsUtils.GetCurrentAnnualReport(Q);
        var previous = CompanyStatisticsUtils.GetPreviousAnnualReport(Q);

        var investorId = MyCompany.shareholder.Id;

        var currentReport  = current.Groups.Find(r => r.ShareholderId == investorId);
        var previousReport = previous.Groups.Find(r => r.ShareholderId == investorId);


        var prevCost = previousReport.Cost + 1;
        var currCost = currentReport.Cost + 1;

        var growthAbsolute = currCost - prevCost;
        var growthRelative = growthAbsolute * 100 / prevCost;

        bool isGrowth = growthAbsolute >= 0;
        var  color    = growthAbsolute >= 0 ? Colors.COLOR_POSITIVE : Colors.COLOR_NEGATIVE;

        //$"+23% growth (+$102.4M)"
        var relativeGrowthText = Format.Sign(growthRelative);                                // Visuals.Colorize(, color);

        var absoluteGrowthText = (isGrowth ? "+" : "") + Format.MinifyMoney(growthAbsolute); // Visuals.Colorize(, color);
        var change             = Visuals.DescribeValueWithText(growthAbsolute, "growth", "loss", "");

        // if company younger than 1 year
        if (growthRelative > 20000)
        {
            return(absoluteGrowthText);
        }

        return($"{absoluteGrowthText} {change} ({relativeGrowthText}%)");
    }
Exemplo n.º 3
0
 void SaveProductCompanyMetrics(GameEntity e, int date)
 {
     CompanyStatisticsUtils.AddMetrics(gameContext, e, new MetricsInfo
     {
         Date         = date,
         AudienceSize = Marketing.GetClients(e),
         Income       = Economy.GetCompanyIncome(gameContext, e),
         Profit       = Economy.GetProfit(gameContext, e),
         Valuation    = Economy.GetCompanyCost(gameContext, e)
     });
 }
Exemplo n.º 4
0
 private void SaveGroupCompanyMetrics(GameEntity e, int date)
 {
     CompanyStatisticsUtils.AddMetrics(gameContext, e, new MetricsInfo
     {
         Date         = date,
         AudienceSize = 0,
         Income       = Economy.GetCompanyIncome(gameContext, e),
         Profit       = Economy.GetProfit(gameContext, e),
         Valuation    = Economy.GetCompanyCost(gameContext, e)
     });
 }
Exemplo n.º 5
0
    void RenderValuationGrowth()
    {
        var monthly = CompanyStatisticsUtils.GetValuationGrowth(entity, 3);
        var yearly  = CompanyStatisticsUtils.GetValuationGrowth(entity, 12);

        var quarGrowth = monthly == 0 ? "???" : Format.Sign(monthly) + "%";
        var yrGrowth   = yearly == 0 ? "???" : Format.Sign(yearly) + "%";

        //ValuationGrowth.text = $"{monGrowth} / {yrGrowth}";
        ValuationGrowth.text = QuarterlyOrYearly ? quarGrowth : yrGrowth;
    }
Exemplo n.º 6
0
    List <int> GetLast12Months()
    {
        var list = new List <int>();

        var month = CompanyStatisticsUtils.GetTotalMonth(CurrentIntDate);

        for (var i = Mathf.Max(0, month - 12); i < month; i++)
        {
            list.Add(i);
        }

        return(list);
    }
Exemplo n.º 7
0
    public override void ViewRender()
    {
        base.ViewRender();

        var previousReport = CompanyStatisticsUtils.GetPreviousAnnualReport(Q);
        var currentReport  = CompanyStatisticsUtils.GetCurrentAnnualReport(Q);

        RenderHuman(previousReport, currentReport);
        RenderGroup(previousReport, currentReport);

        int CurrentIntYear = C.START_YEAR + CurrentIntDate / 360;

        CurrentYear.text = $"Results of year {CurrentIntYear - 1}";
    }
Exemplo n.º 8
0
    public void SetEntity(GameEntity c, bool darkImage, bool ShowIncome)
    {
        company         = c;
        EnableDarkTheme = darkImage;

        bool hasControl = Companies.GetControlInCompany(MyCompany, c, Q) > 0;

        Name.text  = c.company.Name; // .Substring(0, 1);
        Name.color = Visuals.GetColorFromString(hasControl ? Colors.COLOR_CONTROL : Colors.COLOR_NEUTRAL);
        SetEmblemColor();

        LinkToProjectView.CompanyId = c.company.Id;
        ShowProductChanges.SetEntity(company);

        var change = Marketing.GetAudienceChange(c, Q);

        var changeBonus = Marketing.GetAudienceChange(company, Q, true);


        CompanyGrowth.text  = Format.SignOf(change) + Format.Minify(change);
        CompanyGrowth.color = Visuals.GetColorPositiveOrNegative(change);
        CompanyGrowth.GetComponent <Hint>().SetHint($"Audience change: <b>{Format.Minify(change)}</b>");

        CompanyHint.SetHint(GetCompanyHint(hasControl));

        var clients = Marketing.GetUsers(company);

        Concept.text = ShowIncome ? Format.Money(Economy.GetIncome(Q, company), true) : Format.Minify(clients); // Products.GetProductLevel(c) + "LVL";

        var position = Markets.GetPositionOnMarket(Q, company);

        PositionOnMarket.text = $"#{position + 1}";

        var marketShare = Companies.GetMarketShareOfCompanyMultipliedByHundred(c, Q);
        var lastMetrics = CompanyStatisticsUtils.GetLastMetrics(company, 1);

        var lastShare   = Random.Range(2f, 30f);
        var shareChange = marketShare - lastShare;

        //Animate(Visuals.Colorize(Format.SignOf((long)shareChange) + shareChange.ToString("0.0%"), shareChange >= 0), AnimationPosition);

        if (Profitability != null)
        {
            //var shareChange = 1;
            //Profitability.text = Visuals.DescribeValueWithText(shareChange, marketShare + "%", marketShare + "%", "");

            Profitability.text = Visuals.Positive(marketShare + "%");
        }
    }
Exemplo n.º 9
0
    public override string RenderValue()
    {
        int duration = 3;

        if (Monthly)
        {
            duration = 1;
        }
        else if (Yearly)
        {
            duration = 12;
        }

        var growth = CompanyStatisticsUtils.GetValuationGrowth(SelectedCompany, duration);

        return(Format.Sign(growth) + "%");
    }
Exemplo n.º 10
0
    public override void ViewRender()
    {
        base.ViewRender();

        var metrics = MyCompany.metricsHistory.Metrics.Where(m => CompanyStatisticsUtils.GetLastCalendarYearMetrics(m, CurrentIntDate));

        var xs = metrics.Select(m => m.Date).ToList();
        var ys = metrics.Select(m => m.Valuation).ToList();

        GraphData graphData = new GraphData
        {
            Color  = Visuals.GetColorFromString(Colors.COLOR_GOLD),
            Name   = "",
            values = ys
        };

        GetComponent <SetGraphData>().SetData(xs, graphData);
    }
Exemplo n.º 11
0
    void Render()
    {
        var company = Companies.Get(Q, companyId);

        Brand.text = (int)company.branding.BrandPower + "";

        Valuation.text = Format.Money(Economy.CostOf(company, Q));

        var lastMonthMetrics = CompanyStatisticsUtils.GetLastMetrics(company, 4);
        var currentMetrics   = CompanyStatisticsUtils.GetLastMetrics(company, 1);

        var costGrowth = currentMetrics.Valuation - lastMonthMetrics.Valuation;
        var profit     = Economy.GetProfit(Q, company);

        ValuationGrowth.text  = (costGrowth > 0 ? "+" : "") + Format.Money(costGrowth, true);
        ValuationGrowth.color = Visuals.GetColorPositiveOrNegative(costGrowth > 0);

        Profit.text  = "Profit: " + Format.Money(profit, true);
        Profit.color = Visuals.GetColorPositiveOrNegative(profit > 0);

        var daughters = Companies.GetDaughtersAmount(company);

        NumberOfDaughters.text = daughters < 2 ? "" : daughters.ToString();

        // name
        var isPlayerRelated = Companies.IsDirectlyRelatedToPlayer(Q, company);
        var nameColor       = isPlayerRelated ? Colors.COLOR_COMPANY_WHERE_I_AM_CEO : Colors.COLOR_COMPANY_WHERE_I_AM_NOT_CEO;

        if (Companies.IsHaveStrategicPartnershipAlready(company, MyCompany))
        {
            nameColor = Colors.COLOR_PARTNERSHIP;
        }

        Name.text  = company.company.Name;
        Name.color = Visuals.GetColorFromString(nameColor);

        // link to project
        LinkToProjectView.CompanyId = company.company.Id;
    }
Exemplo n.º 12
0
    void Render()
    {
        CompanyName.text            = entity.company.Name;
        LinkToProjectView.CompanyId = entity.company.Id;

        //var current = CompanyStatisticsUtils.GetCurrentAnnualReport(GameContext);
        //var prev = CompanyStatisticsUtils.GetPreviousAnnualReport(GameContext);

        //var metrics = MyCompany.metricsHistory.Metrics
        //    .Where(m => CompanyStatisticsUtils.GetLastCalendarYearMetrics(m, CurrentIntDate - 360))
        //    .OrderBy(m => m.Date);

        //Debug.Log("Metrics count: " + metrics.Count());
        //if (metrics.Count() < 11)
        //    return;

        //var current = metrics.Last().Income;

        //var last =  metrics.First().Income;
        //if (last == 0)
        //    last = 1;



        //var growthAbsolute = current - last;
        //var growthRelative = growthAbsolute / last;
        var growthAbsolute = CompanyStatisticsUtils.GetIncomeGrowthAbsolute(entity, 12);
        var growthRelative = CompanyStatisticsUtils.GetIncomeGrowth(entity, 12);

        bool isGrowing = growthAbsolute >= 0;

        Value.text  = (isGrowing ? "+" : "") + Format.MinifyMoney(growthAbsolute);
        Value.color = Visuals.GetColorFromString(isGrowing ? Colors.COLOR_POSITIVE : Colors.COLOR_NEGATIVE);

        Value.GetComponent <Hint>().SetHint($"Income growth: {Format.Sign(growthAbsolute, true)} ({Format.Sign(growthRelative)}%)");
    }