Files
SPT-Server-Build/Core/Helpers/RepeatableQuestHelper.cs
T
2025-01-17 20:42:32 +00:00

51 lines
1.6 KiB
C#

using Core.Annotations;
using Core.Models.Spt.Config;
using Core.Models.Utils;
using Core.Utils;
using Core.Utils.Cloners;
using Core.Utils.Collections;
namespace Core.Helpers;
[Injectable]
public class RepeatableQuestHelper
{
protected ISptLogger<RepeatableQuestHelper> _logger;
protected ICloner _cloner;
protected MathUtil _mathUtil;
public RepeatableQuestHelper(
ISptLogger<RepeatableQuestHelper> logger,
ICloner cloner,
MathUtil mathUtil
)
{
_logger = logger;
_cloner = cloner;
_mathUtil = mathUtil;
}
/// <summary>
/// Get the relevant elimination config based on the current players PMC level
/// </summary>
/// <param name="pmcLevel">Level of PMC character</param>
/// <param name="repeatableConfig">Main repeatable config</param>
/// <returns>EliminationConfig</returns>
public EliminationConfig? GetEliminationConfigByPmcLevel(int pmcLevel, RepeatableQuestConfig repeatableConfig)
{
return repeatableConfig.QuestConfig.Elimination.FirstOrDefault(
(x) => pmcLevel >= x.LevelRange.Min && pmcLevel <= x.LevelRange.Max
);
}
public ProbabilityObjectArray<K, V>
ProbabilityObjectArray<K, V>(
List<ProbabilityObject<K, V>> configArrayInput
) // TODO: ProbabilityObjectArray<K, V> for return type , param type was List<ProbabilityObject<K, V>>
{
var configArray = _cloner.Clone(configArrayInput);
var probabilityArray = new ProbabilityObjectArray<K, V>(_mathUtil, _cloner, configArray);
return probabilityArray;
}
}