From d476ebdc8d856b8580a307029b0a80eb547768e4 Mon Sep 17 00:00:00 2001 From: Regalis Date: Mon, 22 Aug 2016 16:49:43 +0300 Subject: [PATCH] Fixed letting go of dragged character when entering/exiting the sub, fixed spawnitems not being visible in the job info window --- .../Characters/AI/Objectives/AIObjectiveGoTo.cs | 6 +----- .../Animation/HumanoidAnimController.cs | 9 +++++---- Subsurface/Source/Characters/Character.cs | 2 +- Subsurface/Source/Characters/Jobs/JobPrefab.cs | 16 ++-------------- 4 files changed, 9 insertions(+), 24 deletions(-) diff --git a/Subsurface/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs b/Subsurface/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs index 342d76439..bcbcec0dc 100644 --- a/Subsurface/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs +++ b/Subsurface/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs @@ -87,11 +87,7 @@ namespace Barotrauma currTargetPos = target.SimPosition; //if character is outside the sub and target isn't, transform the position - if (character.Submarine == null && target.Submarine != null) - { - //currTargetPos += target.Submarine.SimPosition; - } - else if (target.Submarine == null) + if (character.Submarine != null && target.Submarine == null) { currTargetPos -= character.Submarine.SimPosition; } diff --git a/Subsurface/Source/Characters/Animation/HumanoidAnimController.cs b/Subsurface/Source/Characters/Animation/HumanoidAnimController.cs index c0b42c8da..d63e85977 100644 --- a/Subsurface/Source/Characters/Animation/HumanoidAnimController.cs +++ b/Subsurface/Source/Characters/Animation/HumanoidAnimController.cs @@ -931,7 +931,7 @@ namespace Barotrauma LimbType type = i == 0 ? leftHandTarget: rightHandTarget; Limb targetLimb = target.AnimController.GetLimb(type); - Limb pullLimb = GetLimb(i == 0 ?LimbType.LeftHand: LimbType.RightHand); + Limb pullLimb = GetLimb(i == 0 ? LimbType.LeftHand: LimbType.RightHand); if (i==1 && inWater) { @@ -939,15 +939,16 @@ namespace Barotrauma } else { + Vector2 diff = ConvertUnits.ToSimUnits(targetLimb.WorldPosition - pullLimb.WorldPosition); + pullLimb.pullJoint.Enabled = true; - pullLimb.pullJoint.WorldAnchorB = targetLimb.SimPosition; + pullLimb.pullJoint.WorldAnchorB = pullLimb.SimPosition + diff; pullLimb.pullJoint.MaxForce = 10000.0f; targetLimb.pullJoint.Enabled = true; - targetLimb.pullJoint.WorldAnchorB = pullLimb.SimPosition; + targetLimb.pullJoint.WorldAnchorB = targetLimb.SimPosition - diff; targetLimb.pullJoint.MaxForce = 10000.0f; } - } diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index 166707df7..e3abc045d 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -715,7 +715,7 @@ namespace Barotrauma if (selectedCharacter!=null) { - if (Vector2.Distance(selectedCharacter.SimPosition, SimPosition) > 3.0f || !selectedCharacter.CanBeSelected) + if (Vector2.Distance(selectedCharacter.WorldPosition, WorldPosition) > 300.0f || !selectedCharacter.CanBeSelected) { DeselectCharacter(controlled == this); } diff --git a/Subsurface/Source/Characters/Jobs/JobPrefab.cs b/Subsurface/Source/Characters/Jobs/JobPrefab.cs index 62fd6bbac..9965bade2 100644 --- a/Subsurface/Source/Characters/Jobs/JobPrefab.cs +++ b/Subsurface/Source/Characters/Jobs/JobPrefab.cs @@ -12,7 +12,6 @@ namespace Barotrauma public readonly XElement Items; public readonly List ItemNames; - //public List EquipItem; public List Skills; @@ -71,7 +70,6 @@ namespace Barotrauma AllowAlways = ToolBox.GetAttributeBool(element, "allowalways", false); ItemNames = new List(); - //EquipItem = new List(); Skills = new List(); @@ -83,16 +81,9 @@ namespace Barotrauma Items = subElement; foreach (XElement itemElement in subElement.Elements()) { - string itemName = ToolBox.GetAttributeString(subElement, "name", ""); - ItemNames.Add(itemName); + string itemName = ToolBox.GetAttributeString(itemElement, "name", ""); + if (!string.IsNullOrWhiteSpace(itemName)) ItemNames.Add(itemName); } - //string itemName = ToolBox.GetAttributeString(subElement, "name", ""); - //bool equipItem = ToolBox.GetAttributeBool(subElement, "equip", false); - //if (!string.IsNullOrEmpty(itemName)) - //{ - // ItemNames.Add(itemName); - // EquipItem.Add(equipItem); - //} break; case "skills": foreach (XElement skillElement in subElement.Elements()) @@ -153,9 +144,6 @@ namespace Barotrauma y += 20; } - - - return backFrame; }