From e578cbc07768b7fae804834460a95265239c05b8 Mon Sep 17 00:00:00 2001 From: juanjp600 Date: Wed, 19 Sep 2018 14:57:22 -0300 Subject: [PATCH] Explosions now use Character.Controlled.WorldPosition to determine camera shake --- .../BarotraumaShared/Content/Items/Weapons/weapons.xml | 8 ++++---- Barotrauma/BarotraumaShared/Source/Map/Explosion.cs | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Barotrauma/BarotraumaShared/Content/Items/Weapons/weapons.xml b/Barotrauma/BarotraumaShared/Content/Items/Weapons/weapons.xml index aa495d3fe..87d41a842 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Weapons/weapons.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Weapons/weapons.xml @@ -46,7 +46,7 @@ - + @@ -130,7 +130,7 @@ - + @@ -230,12 +230,12 @@ - + - + diff --git a/Barotrauma/BarotraumaShared/Source/Map/Explosion.cs b/Barotrauma/BarotraumaShared/Source/Map/Explosion.cs index 3280a3f51..04a23267a 100644 --- a/Barotrauma/BarotraumaShared/Source/Map/Explosion.cs +++ b/Barotrauma/BarotraumaShared/Source/Map/Explosion.cs @@ -63,9 +63,10 @@ namespace Barotrauma float displayRange = attack.Range; if (displayRange < 0.1f) return; - float cameraDist = Vector2.Distance(GameMain.GameScreen.Cam.Position, worldPosition) / 2.0f; + Vector2 cameraPos = Character.Controlled != null ? Character.Controlled.WorldPosition : GameMain.GameScreen.Cam.Position; + float cameraDist = Vector2.Distance(cameraPos, worldPosition) / 2.0f; GameMain.GameScreen.Cam.Shake = CameraShake * Math.Max((displayRange - cameraDist) / displayRange, 0.0f); - + if (attack.GetStructureDamage(1.0f) > 0.0f) { RangedStructureDamage(worldPosition, displayRange, attack.GetStructureDamage(1.0f));