Skip to content

Add player statistics system with SQLite and MySQL support #7

Description

@KotyaraDev

What to do

Implement a statistics system that tracks player performance in Zombie Mode.

Features to track

  • Number of rounds played as Human
  • Number of rounds played as Zombie
  • Humans killed (as Zombie)
  • Zombies killed (as Human)
  • Times infected
  • Total damage dealt
  • Wins as Human / Wins as Zombie
  • Longest survival time as last human

Technical requirements

  • Support both SQLite (default, file-based) and MySQL (for big servers)
  • Use Dapper or EF Core (choose one)
  • Create core/Statistics/ or features/Statistics/ folder
  • Add configuration options in SimpleZombieMode.json:
    • EnableStatistics (bool)
    • DatabaseType ("SQLite" or "MySQL")
    • ConnectionString
  • Statistics should be saved at the end of each round
  • Add simple commands: !szm_stats and !szm_top (top 10 players)

Acceptance criteria

  • Database is created automatically on first load
  • No performance impact when statistics are disabled
  • Clean architecture (repository pattern recommended)
  • All data is saved correctly after round ends

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions