using System;
namespace WotBlitzStatisticsPro.Common.Model
{
///
/// Information about player's tank
///
public class TankInfoResponse
{
///
/// Player account identifier
///
public long AccountId { get; set; }
///
/// Tank identifier
///
public long TankId { get; set; }
///
/// Total time in battle until tank killed
///
public int BattleLifeTimeInSeconds { get; set; }
///
/// Last battle
///
public DateTime LastBattleTime { get; set; }
///
/// Information is tank in garage or not. Information is not provided without Auth token
///
public bool? InGarage { get; set; }
///
/// Mark of Mastery
///
public MarkOfMastery MarkOfMastery { get; set; }
///
/// Battles count
///
public long Battles { get; set; } = 1;
///
/// Base capture points
///
public long CapturePoints { get; set; }
///
/// Damage dealt
///
public long DamageDealt { get; set; }
///
/// Damage received
///
public long DamageReceived { get; set; }
///
/// Base dropped capture points
///
public long DroppedCapturePoints { get; set; }
///
/// Frags count
///
public long Frags { get; set; }
///
/// Frags count after 8 tier
///
public long Frags8P { get; set; }
///
/// Hits count
///
public long Hits { get; set; }
///
/// Losses count
///
public long Losses { get; set; }
///
/// Max frags per battle
///
public long MaxFrags { get; set; }
///
/// Max XP per battle
///
public long MaxXp { get; set; }
///
/// Shots count
///
public long Shots { get; set; }
///
/// Spotted vehicles count
///
public long Spotted { get; set; }
///
/// Amount of survived battles
///
public long SurvivedBattles { get; set; }
///
/// Amount of survived and wined battles
///
public long WinAndSurvived { get; set; }
///
/// Wins count
///
public long Wins { get; set; }
///
/// Total experience
///
public long Xp { get; set; }
///
/// Wn7 coefficient
///
public double Wn7 { get; set; }
///
/// Average life time in battle until tank is killed.
///
public decimal AvgBattleLifeTimeInMinutes => (decimal) BattleLifeTimeInSeconds / (60 * Battles);
///
/// Tank's win rate
///
public decimal WinRate => (decimal) 100 * Wins / Battles;
///
/// Average tank's damage
///
public decimal AvgDamage => (decimal) DamageDealt / Battles;
///
/// Average XP
///
public decimal AvgXp => (decimal) Xp / Battles;
///
/// Damage coefficient
///
public decimal DamageCoefficient => DamageReceived == 0 ? 0m : (decimal)DamageDealt / DamageReceived;
///
/// Rate of survival
///
public decimal SurvivalRate => (decimal)100 * SurvivedBattles / Battles;
///
/// Tank name
///
public string? Name { get; set; }
///
/// Tank nation dictionary identifier
///
public string? TankNationId { get; set; }
///
/// Localized tank nation name
///
public string? TankNation { get; set; }
///
/// Tank tier
///
public int Tier { get; set; }
///
/// Tank type dictionary identifier
///
public string? TankTypeId { get; set; }
///
/// Localized tank type name
///
public string? TankType { get; set; }
///
/// Is it premium tank or not
///
public bool IsPremium { get; set; }
///
/// Vehicle preview image
///
public string? PreviewImage { get; set; }
///
/// Vehicle normal image
///
public string? NormalImage { get; set; }
}
}