Implemented GetFenceInfo

This commit is contained in:
Chomp
2025-01-13 19:03:10 +00:00
parent 572575802f
commit 251ccb9a04
2 changed files with 34 additions and 3 deletions
+1 -1
View File
@@ -352,7 +352,7 @@ public class ProfileHelper
public PmcData RemoveSecureContainer(PmcData profile)
{
var items = profile.Inventory.Items;
var secureContainer = items.First(i => i.SlotId == "SecuredContainer");
var secureContainer = items.FirstOrDefault(i => i.SlotId == "SecuredContainer");
if (secureContainer is not null)
{
// Find and remove container + children
+33 -2
View File
@@ -1,4 +1,4 @@
using Core.Annotations;
using Core.Annotations;
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Tables;
using Core.Models.Spt.Config;
@@ -9,6 +9,14 @@ namespace Core.Services;
[Injectable(InjectionType.Singleton)]
public class FenceService
{
private readonly DatabaseService _databaseService;
public FenceService(
DatabaseService databaseService)
{
_databaseService = databaseService;
}
/// <summary>
/// Replace main fence assort with new assort
/// </summary>
@@ -495,7 +503,30 @@ public class FenceService
/// <returns>FenceLevel object</returns>
public FenceLevel GetFenceInfo(PmcData pmcData)
{
throw new NotImplementedException();
var fenceSettings = _databaseService.GetGlobals().Configuration.FenceSettings;
pmcData.TradersInfo.TryGetValue(fenceSettings.FenceIdentifier, out var pmcFenceInfo);
if (pmcFenceInfo is null)
{
return fenceSettings.Levels["0"];
}
var fenceLevels = fenceSettings.Levels.Select(x => x.Key);
var minLevel = fenceLevels.Min();
var maxLevel = fenceLevels.Max();
var pmcFenceLevel = Math.Floor(pmcFenceInfo.Standing.Value);
if (pmcFenceLevel < int.Parse(minLevel))
{
return fenceSettings.Levels[minLevel];
}
if (pmcFenceLevel > int.Parse(maxLevel))
{
return fenceSettings.Levels[maxLevel];
}
return fenceSettings.Levels[pmcFenceLevel.ToString()];
}
/// <summary>