(ab2157c70) Remove KeepDivingGear property, because it can cause issues when the objective tree is deep. Checking the property is possible via recursion, but it seems that the checks can miss a frame. Instead, let's just make it simple and remove the diving suit only when idling.

This commit is contained in:
Joonas Rikkonen
2019-05-16 05:37:46 +03:00
parent c060c90cba
commit 96eb27140e
24 changed files with 334 additions and 175 deletions
@@ -164,7 +164,7 @@ namespace Barotrauma
{
bool oxygenLow = Character.OxygenAvailable < CharacterHealth.LowOxygenThreshold;
bool highPressure = Character.CurrentHull == null || Character.CurrentHull.LethalPressure > 0 && Character.PressureProtection <= 0;
bool shouldKeepTheGearOn = objectiveManager.CurrentObjective.KeepDivingGearOn;
bool shouldKeepTheGearOn = !ObjectiveManager.IsCurrentObjective<AIObjectiveIdle>();
bool removeDivingSuit = (oxygenLow && !highPressure) || (!shouldKeepTheGearOn && Character.CurrentHull.WaterPercentage < 1 && !Character.IsClimbing && steeringManager == insideSteering && !PathSteering.InStairs);
if (removeDivingSuit)