Files
SPT-Server-Build/Core/Helpers/RepeatableQuestHelper.cs
T
2025-01-18 20:11:08 +00:00

40 lines
1.3 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(
ISptLogger<RepeatableQuestHelper> _logger,
ICloner _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<T, K, V>
ProbabilityObjectArray<T, K, V>(
List<T>? configArrayInput
) where T : ProbabilityObject<K, V>
{
var configArray = _cloner.Clone(configArrayInput);
var probabilityArray = new ProbabilityObjectArray<T, K, V>(_mathUtil, _cloner, configArray);
return probabilityArray;
}
}