@inject IEconomyComparisonService economyComparisonService @implements IDisposable Faction Number of TownHall Expansions @{ var index = 0; } @foreach (var timing in TownHallTimings) { index++; TownHall build time } @code { [Parameter] public int ForPlayer { get; set; } private int TownHallCount => economyComparisonService.GetTownHallCount(ForPlayer); private string ChartColor => economyComparisonService.GetColor(ForPlayer); private string Faction => economyComparisonService.GetFaction(ForPlayer); private List TownHallTimings => economyComparisonService.GetTownHallBuildTimes(ForPlayer); protected override void OnInitialized() { economyComparisonService.Subscribe(StateHasChanged); } void IDisposable.Dispose() { economyComparisonService.Unsubscribe(StateHasChanged); } private void OnFactionChanged(ChangeEventArgs obj) { throw new NotImplementedException(); } private bool IsSelected(string factionType) { return Faction.Equals(factionType); } private void ChangeColor(ChangeEventArgs obj) { economyComparisonService.ChangeColor(ForPlayer, obj.Value!.ToString()!); } private void ChangeTownHallNumber(ChangeEventArgs obj) { economyComparisonService.ChangeNumberOfTownHalls(ForPlayer, (int)obj.Value!); } private void ChangeBuildTime(ChangeEventArgs obj, int index) { economyComparisonService.ChangeTownHallTiming(ForPlayer, index, (int)obj.Value!); } }