diff --git a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs index 0c111ab7a..1495cc0ac 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs @@ -910,10 +910,13 @@ namespace Barotrauma Vector2 attackPos = attackLimb.SimPosition + Vector2.Normalize(cursorPosition - attackLimb.Position) * ConvertUnits.ToSimUnits(attackLimb.attack.Range); + List ignoredBodies = AnimController.Limbs.Select(l => l.body.FarseerBody).ToList(); + ignoredBodies.Add(AnimController.Collider.FarseerBody); + var body = Submarine.PickBody( attackLimb.SimPosition, attackPos, - AnimController.Limbs.Select(l => l.body.FarseerBody).ToList(), + ignoredBodies, Physics.CollisionCharacter | Physics.CollisionWall); IDamageable attackTarget = null; @@ -928,7 +931,7 @@ namespace Barotrauma body = Submarine.PickBody( attackLimb.SimPosition - ((Submarine)body.UserData).SimPosition, attackPos - ((Submarine)body.UserData).SimPosition, - AnimController.Limbs.Select(l => l.body.FarseerBody).ToList(), + ignoredBodies, Physics.CollisionWall); if (body != null) diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/RepairTool.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/RepairTool.cs index 01b71ea0e..fd16f253a 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/RepairTool.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/RepairTool.cs @@ -142,6 +142,7 @@ namespace Barotrauma.Items.Components if (Rand.Range(0.0f, 0.5f) > degreeOfSuccess) continue; ignoredBodies.Add(limb.body.FarseerBody); } + ignoredBodies.Add(character.AnimController.Collider.FarseerBody); IsActive = true; activeTimer = 0.1f;