From 59f6d08ff95c34b7bb8aa7f10e87083256edfa69 Mon Sep 17 00:00:00 2001 From: CWX Date: Mon, 20 Jan 2025 16:57:01 +0000 Subject: [PATCH] implement playerservice --- Libraries/Core/Services/PlayerService.cs | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/Libraries/Core/Services/PlayerService.cs b/Libraries/Core/Services/PlayerService.cs index ee742687..0b521c71 100644 --- a/Libraries/Core/Services/PlayerService.cs +++ b/Libraries/Core/Services/PlayerService.cs @@ -1,13 +1,31 @@ using SptCommon.Annotations; using Core.Models.Eft.Common; +using Core.Models.Utils; +using Core.Utils; namespace Core.Services; [Injectable(InjectionType.Singleton)] -public class PlayerService +public class PlayerService( + DatabaseService _databaseService +) { - public int CalculateLevel(PmcData pmcData) + public int? CalculateLevel(PmcData pmcData) { - throw new NotImplementedException(); + var accExp = 0; + + for (int i = 0; i < _databaseService.GetGlobals().Configuration.Exp.Level.ExperienceTable.Length; i++) + { + accExp += _databaseService.GetGlobals().Configuration.Exp.Level.ExperienceTable[i].Experience ?? 0; + + if (pmcData.Info.Experience < accExp) + { + break; + } + + pmcData.Info.Level = i + 1; + } + + return pmcData.Info.Level; } }