Reset limb max value after a raid

This commit is contained in:
Chomp
2025-07-08 10:08:36 +01:00
parent 577d4e9b95
commit 9e136fa664
2 changed files with 25 additions and 0 deletions
@@ -241,5 +241,23 @@ namespace SPTarkov.Server.Core.Extensions
return quest?.Status ?? QuestStatusEnum.Locked;
}
/// <summary>
/// Use values from the profiles template to reset all body part max values
/// </summary>
/// <param name="profile">Profile to update</param>
/// <param name="profileTemplate">Template used to create profile</param>
public static void ResetMaxLimbHp(this PmcData profile, TemplateSide profileTemplate)
{
foreach (var (partKey, bodyPart) in profile.Health.BodyParts)
{
bodyPart.Health.Maximum = profileTemplate
.Character
.Health
.BodyParts[partKey]
.Health
.Maximum;
}
}
}
}
@@ -895,6 +895,13 @@ public class LocationLifecycleService(
isDead
);
// Required when player loses limb in-raid and fixes it, max now stuck at 50% or less if lost multiple times
var profileTemplate = profileHelper.GetProfileTemplateForSide(
fullServerProfile.ProfileInfo.Edition,
serverPmcProfile.Info.Side
);
serverPmcProfile.ResetMaxLimbHp(profileTemplate);
if (isTransfer)
{
// Adjust limb hp and effects while transiting