diff --git a/Barotrauma/BarotraumaClient/Source/Characters/Health/CharacterHealth.cs b/Barotrauma/BarotraumaClient/Source/Characters/Health/CharacterHealth.cs index d649f7b1a..777bc7775 100644 --- a/Barotrauma/BarotraumaClient/Source/Characters/Health/CharacterHealth.cs +++ b/Barotrauma/BarotraumaClient/Source/Characters/Health/CharacterHealth.cs @@ -108,13 +108,15 @@ namespace Barotrauma if (openHealthWindow == value) return; if (value != null && !value.UseHealthWindow) return; + var prevOpenHealthWindow = openHealthWindow; + openHealthWindow = value; toggledThisFrame = true; if (Character.Controlled == null) { return; } if (value == null && Character.Controlled?.SelectedCharacter?.CharacterHealth != null && - Character.Controlled.SelectedCharacter.CharacterHealth == openHealthWindow && + Character.Controlled.SelectedCharacter.CharacterHealth == prevOpenHealthWindow && !Character.Controlled.SelectedCharacter.CanInventoryBeAccessed) { Character.Controlled.DeselectCharacter(); @@ -545,11 +547,13 @@ namespace Barotrauma } if (PlayerInput.KeyHit(InputType.Health) && GUI.KeyboardDispatcher.Subscriber == null && - Character.AllowInput && Character.FocusedCharacter == null && !toggledThisFrame) + Character.Controlled.AllowInput && !toggledThisFrame) { if (openHealthWindow != null) + { OpenHealthWindow = null; - else + } + else if (Character.Controlled == Character && Character.Controlled.FocusedCharacter == null) { OpenHealthWindow = this; forceAfflictionContainerUpdate = true; @@ -562,7 +566,10 @@ namespace Barotrauma HUD.CloseHUD(HUDLayoutSettings.HealthWindowAreaLeft)) { //emulate a Health input to get the character to deselect the item server-side - Character.Keys[(int)InputType.Health].Hit = true; + if (GameMain.Client != null) + { + Character.Controlled.Keys[(int)InputType.Health].Hit = true; + } OpenHealthWindow = null; } } diff --git a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs index 601753c05..19c905b3f 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs @@ -268,6 +268,7 @@ namespace Barotrauma public Character FocusedCharacter { get { return focusedCharacter; } + set { focusedCharacter = value; } } public Character SelectedCharacter @@ -1709,7 +1710,7 @@ namespace Barotrauma } } - if (SelectedCharacter != null && IsKeyHit(InputType.Grab)) //Let people use ladders and buttons and stuff when dragging chars + if (SelectedCharacter != null && (IsKeyHit(InputType.Grab) || IsKeyHit(InputType.Health))) //Let people use ladders and buttons and stuff when dragging chars { DeselectCharacter(); }