diff --git a/Barotrauma/BarotraumaClient/Source/Screens/ServerListScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/ServerListScreen.cs index 0344ba7c1..1f146ab06 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/ServerListScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/ServerListScreen.cs @@ -218,6 +218,22 @@ namespace Barotrauma return true; } + private bool RefreshJoinButtonState(GUIComponent component, object obj) + { + if (obj == null || waitingForRefresh) { return false; } + + if (!string.IsNullOrWhiteSpace(clientNameBox.Text) && !string.IsNullOrWhiteSpace(ipBox.Text)) + { + joinButton.Enabled = true; + } + else + { + joinButton.Enabled = false; + } + + return true; + } + private bool SelectServer(GUIComponent component, object obj) { if (obj == null || waitingForRefresh) { return false; } diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/HumanAIController.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/HumanAIController.cs index c68f451cb..b91b277b9 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/HumanAIController.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/HumanAIController.cs @@ -553,8 +553,6 @@ namespace Barotrauma public static bool HasItem(Character character, string tag, string containedTag, float conditionPercentage = 0) { - if (character == null) { return false; } - if (character.Inventory == null) { return false; } var item = character.Inventory.FindItemByTag(tag); return item != null && item.ConditionPercentage > conditionPercentage && diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs index c8cb23e10..9d23de7d3 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs @@ -16,9 +16,6 @@ namespace Barotrauma public Func customCondition; - public bool followControlledCharacter; - public bool mimic; - /// /// Display units /// @@ -27,11 +24,9 @@ namespace Barotrauma public bool AllowGoingOutside { get; set; } public bool CheckVisibility { get; set; } - public ISpatialEntity Target { get; private set; } - public override float GetPriority() { - if (followControlledCharacter && Character.Controlled == null) { return 0.0f; } + if (FollowControlledCharacter && Character.Controlled == null) { return 0.0f; } if (Target is Entity e && e.Removed) { return 0.0f; } if (IgnoreIfTargetDead && Target is Character character && character.IsDead) { return 0.0f; } if (objectiveManager.CurrentOrder == this) @@ -41,6 +36,10 @@ namespace Barotrauma return 1.0f; } + public ISpatialEntity Target { get; private set; } + + public bool FollowControlledCharacter; + public AIObjectiveGoTo(ISpatialEntity target, Character character, AIObjectiveManager objectiveManager, bool repeat = false, bool getDivingGearIfNeeded = true, float priorityModifier = 1) : base (character, objectiveManager, priorityModifier) { @@ -53,7 +52,7 @@ namespace Barotrauma protected override void Act(float deltaTime) { - if (followControlledCharacter) + if (FollowControlledCharacter) { if (Character.Controlled == null) { @@ -138,9 +137,8 @@ namespace Barotrauma } if (getDivingGearIfNeeded) { - Character followTarget = Target as Character; - bool needsDivingGear = HumanAIController.NeedsDivingGear(targetHull) || mimic && HumanAIController.HasDivingMask(followTarget); - bool needsDivingSuit = needsDivingGear && (targetHull == null || targetIsOutside || targetHull.WaterPercentage > 90) || mimic && HumanAIController.HasDivingSuit(followTarget); + bool needsDivingGear = HumanAIController.NeedsDivingGear(targetHull); + bool needsDivingSuit = needsDivingGear && (targetHull == null || targetIsOutside || targetHull.WaterPercentage > 90); bool needsEquipment = false; if (needsDivingSuit) { diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveManager.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveManager.cs index 8451af1fc..8aae67958 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveManager.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveManager.cs @@ -239,8 +239,7 @@ namespace Barotrauma CloseEnough = 150, AllowGoingOutside = true, IgnoreIfTargetDead = true, - followControlledCharacter = orderGiver == character, - mimic = true + FollowControlledCharacter = orderGiver == character }; break; case "wait":