1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-10 23:31:13 -05:00

add initial public zombie stats models, migrations, and events

This commit is contained in:
RaidMax
2023-05-01 22:33:47 -05:00
parent 7e80032af6
commit 24b6f6d73b
20 changed files with 2615 additions and 4 deletions

View File

@ -0,0 +1,27 @@
namespace Data.Models.Zombie;
public class ZombieAggregateClientStat : ZombieClientStat
{
#region Average
public double AverageKillsPerDown { get; set; }
public double AverageDowns { get; set; }
public double AverageRevives { get; set; }
public double HeadshotPercentage { get; set; }
public double AlivePercentage { get; set; }
public double AverageMelees { get; set; }
public double AverageRoundReached { get; set; }
public double AveragePoints { get; set; }
#endregion
#region Totals
public int HighestRound { get; set; }
public int TotalRoundsPlayed { get; set; }
public int TotalMatchesPlayed { get; set; }
#endregion
public double RankingMetric { get; set; }
}

View File

@ -0,0 +1,34 @@
#nullable enable
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Data.Models.Client;
namespace Data.Models.Zombie;
public abstract class ZombieClientStat
{
[Key]
public long ZombieClientStatId { get; set; }
public int? MatchId { get; set; }
[ForeignKey(nameof(MatchId))]
public virtual ZombieMatch? Match { get; set; }
public int ClientId { get; set; }
[ForeignKey(nameof(ClientId))]
public virtual EFClient? Client { get; set; }
public int Kills { get; set; }
public int Deaths { get; set; }
public int DamageDealt { get; set; }
public int DamageReceived { get; set; }
public int Headshots { get; set; }
public int Melees { get; set; }
public int Downs { get; set; }
public int Revives { get; set; }
public int PointsEarned { get; set; }
public int PointsSpent { get; set; }
public int PerksConsumed { get; set; }
public int PowerupsGrabbed { get; set; }
}

View File

@ -0,0 +1,28 @@
#nullable enable
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Data.Models.Client.Stats.Reference;
using Data.Models.Server;
namespace Data.Models.Zombie;
public class ZombieMatch
{
[Key]
public int ZombieMatchId { get; set; }
public int? MapId { get; set; }
[ForeignKey(nameof(MapId))]
public virtual EFMap? Map { get; set; }
public long? ServerId { get; set; }
[ForeignKey(nameof(ServerId))]
public virtual EFServer? Server { get; set; }
public virtual ICollection<ZombieClientStat>? ClientStats { get; set; }
public DateTimeOffset MatchStartDate { get; set; } = DateTimeOffset.UtcNow;
public DateTimeOffset? MatchEndDate { get; set; }
}

View File

@ -0,0 +1,6 @@
namespace Data.Models.Zombie;
public class ZombieMatchClientStat : ZombieClientStat
{
}

View File

@ -0,0 +1,13 @@
using System;
namespace Data.Models.Zombie;
public class ZombieRoundClientStat : ZombieClientStat
{
public DateTimeOffset StartTime { get; set; } = DateTimeOffset.UtcNow;
public DateTimeOffset? EndTime { get; set; }
public TimeSpan? Duration { get; set; }
public TimeSpan? TimeAlive { get; set; }
public int RoundNumber { get; set; }
public int Points { get; set; }
}