using Core.Annotations;
using Core.Controllers;
using Core.Helpers;
using Core.Models.Eft.Common;
using Core.Models.Eft.Health;
using Core.Models.Eft.HttpResponse;
using Core.Models.Eft.ItemEvent;
using Core.Utils;
namespace Core.Callbacks;
[Injectable]
public class HealthCallbacks
{
protected HttpResponseUtil _httpResponseUtil;
protected ProfileHelper _profileHelper;
protected HealthController _healthController;
public HealthCallbacks
(
HttpResponseUtil httpResponseUtil,
ProfileHelper profileHelper,
HealthController healthController
)
{
_httpResponseUtil = httpResponseUtil;
_profileHelper = profileHelper;
_healthController = healthController;
}
///
/// Custom spt server request found in modules/QTEPatch.cs
///
///
/// HealthListener.Instance.CurrentHealth class
/// session id
/// empty response, no data sent back to client
public string handleWorkoutEffects(string url, WorkoutData info, string sessionID)
{
_healthController.ApplyWorkoutChanges(_profileHelper.GetPmcProfile(sessionID), info, sessionID);
return _httpResponseUtil.EmptyResponse();
}
///
/// Handle Eat
///
///
///
///
///
///
public ItemEventRouterResponse OffraidEat(PmcData pmcData, OffraidEatRequestData info, string sessionID)
{
return _healthController.OffRaidEat(pmcData, info, sessionID);
}
///
/// Handle Heal
///
///
///
///
///
///
public ItemEventRouterResponse OffraidHeal(PmcData pmcData, OffraidHealRequestData info, string sessionID)
{
return _healthController.OffRaidHeal(pmcData, info, sessionID);
}
///
/// Handle RestoreHealth
///
///
///
///
///
///
public ItemEventRouterResponse HealthTreatment(PmcData pmcData, HealthTreatmentRequestData info, string sessionID)
{
return _healthController.HealthTreatment(pmcData, info, sessionID);
}
}