mirror of
https://github.com/DrMboga/WotBlitzStatisticsBlazor.git
synced 2026-10-21 10:27:18 +02:00
119 lines
4.9 KiB
Plaintext
119 lines
4.9 KiB
Plaintext
@using WotBlitzStatisticsPro.Blazor.Helpers
|
|
@using MediatR
|
|
@using WotBlitzStatisticsPro.Blazor.Messages
|
|
@inject IStringLocalizer<App> Localize;
|
|
@inject IMediator Mediator
|
|
|
|
<div class="row">
|
|
<RadzenCard class="m-3" style="width: 350px;">
|
|
<table class="table" width="100%">
|
|
<tbody>
|
|
<tr>
|
|
<td>@Localize["Battles"]:</td>
|
|
<td align="right"><b>@AccountInfo.Battles.ToString("N0")</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@Localize["Win rate"]:</td>
|
|
<td align="right">
|
|
<b>@AccountInfo.WinRate.ToString("N2")%</b>
|
|
<div style="background-color: @AccountInfo.WinRate.ScaleColor(); width: 100%; height: 5px; margin-left: 2px; margin-right: 2px;"></div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>@Localize["Wn7"]:</td>
|
|
<td align="right">
|
|
<b>@AccountInfo.Wn7.ToString("N2")</b>
|
|
<div style="background-color: @AccountInfo.Wn7.Wn7ScaleColor(); width: 100%; height: 5px; margin-left: 2px; margin-right: 2px;"></div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>@Localize["Average XP"]:</td>
|
|
<td align="right"><b>@AccountInfo.AvgXp.ToString("N0")</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@Localize["Average Damage"]:</td>
|
|
<td align="right"><b>@AccountInfo.AvgDamage.ToString("N0")</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@Localize["Damage coefficient"]:</td>
|
|
<td align="right"><b>@AccountInfo.DamageCoefficient.ToString("N2")</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@Localize["Survival rate"]:</td>
|
|
<td align="right"><b>@AccountInfo.SurvivalRate.ToString("N0")%</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@Localize["Avg tier"]:</td>
|
|
<td align="right"><b>@AccountInfo.AvgTier.ToString("N2")</b></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</RadzenCard>
|
|
<RadzenCard class="m-3" style="width: 350px;">
|
|
<h3 class="h5">@Localize["Most effective tank"]</h3>
|
|
<div class="row">
|
|
<div class="col col-sm col-md col-lg col-xl">
|
|
</div>
|
|
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MostRelevantTank)); })">
|
|
@if (MostRelevantTank != null)
|
|
{
|
|
<TankCard Tank=@MostRelevantTank></TankCard>
|
|
}
|
|
</div>
|
|
<div class="col col-sm col-md col-lg col-xl">
|
|
</div>
|
|
|
|
</div>
|
|
</RadzenCard>
|
|
<RadzenCard class="m-3" style="width: 350px;">
|
|
<h3 class="h5">@Localize["Tank with Max XP"] (@AccountInfo.MaxXp.ToString("N0"))</h3>
|
|
<div class="row">
|
|
<div class="col col-sm col-md col-lg col-xl">
|
|
</div>
|
|
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MaxXpTank)); })">
|
|
@if (MaxXpTank != null)
|
|
{
|
|
<TankCard Tank=@MaxXpTank></TankCard>
|
|
}
|
|
</div>
|
|
<div class="col col-sm col-md col-lg col-xl">
|
|
</div>
|
|
|
|
</div>
|
|
</RadzenCard>
|
|
<RadzenCard class="m-3" style="width: 350px;">
|
|
<h3 class="h5">@Localize["Tank with Max frags"] (@AccountInfo.MaxFrags)</h3>
|
|
<div class="row">
|
|
<div class="col col-sm col-md col-lg col-xl">
|
|
</div>
|
|
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MaxFragsTank)); })">
|
|
@if (MaxFragsTank != null)
|
|
{
|
|
<TankCard Tank=@MaxFragsTank></TankCard>
|
|
}
|
|
</div>
|
|
<div class="col col-sm col-md col-lg col-xl">
|
|
</div>
|
|
|
|
</div>
|
|
</RadzenCard>
|
|
<OverallStatisticsCard Statistics="@AccountInfo"></OverallStatisticsCard>
|
|
</div>
|
|
|
|
|
|
@code {
|
|
[Parameter]
|
|
public IAccount AccountInfo { get; set; }
|
|
|
|
public ITank? MostRelevantTank;
|
|
public ITank? MaxXpTank;
|
|
public ITank? MaxFragsTank;
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
MostRelevantTank = AccountInfo?.Tanks?.FindMostRelevantTank();
|
|
MaxXpTank = AccountInfo?.Tanks?.FirstOrDefault(t => t.TankId == AccountInfo.MaxXpTankId);
|
|
MaxFragsTank = AccountInfo?.Tanks?.FirstOrDefault(t => t.TankId == AccountInfo.MaxFragsTankId);
|
|
}
|
|
}
|