List <long> GetLastYearMetrics(GameEntity c) { return(c.metricsHistory.Metrics .Where(m => CompanyStatisticsUtils.GetLastYearMetrics(m, CurrentIntDate)) .Select(m => m.AudienceSize) .ToList()); }
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}%)"); }
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) }); }
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) }); }
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; }
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); }
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}"; }
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 + "%"); } }
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) + "%"); }
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); }
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; }
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)}%)"); }