From 65094a02c14273c5c94062a2b540c460f15c16b1 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Thu, 24 Aug 2017 20:25:17 +0300 Subject: [PATCH] Hydrothermal vents emit sounds & being inside the smoke makes the camera shake --- .../BackgroundSprites/BackgroundSpritePrefabs.xml | 13 ++++++++----- .../Source/Map/Levels/LevelTrigger.cs | 9 +++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Barotrauma/BarotraumaShared/Content/BackgroundSprites/BackgroundSpritePrefabs.xml b/Barotrauma/BarotraumaShared/Content/BackgroundSprites/BackgroundSpritePrefabs.xml index 45469165b..e60ee432a 100644 --- a/Barotrauma/BarotraumaShared/Content/BackgroundSprites/BackgroundSpritePrefabs.xml +++ b/Barotrauma/BarotraumaShared/Content/BackgroundSprites/BackgroundSpritePrefabs.xml @@ -111,7 +111,8 @@ - + + @@ -125,10 +126,11 @@ velocitymax="2000"/> - + - + + - + - + + triggerers = new List(); + private float cameraShake; + public Vector2 WorldPosition { get { return ConvertUnits.ToDisplayUnits(physicsBody.Position); } @@ -52,6 +54,8 @@ namespace Barotrauma physicsBody.FarseerBody.IsKinematic = true; physicsBody.SetTransform(ConvertUnits.ToSimUnits(position), rotation); + + cameraShake = ToolBox.GetAttributeFloat(element, "camerashake", 0.0f); foreach (XElement subElement in element.Elements()) { @@ -128,6 +132,11 @@ namespace Barotrauma attack.DoDamage(null, damageable, WorldPosition, deltaTime, false); } } + + if (triggerer == Character.Controlled || triggerer == Character.Controlled?.Submarine) + { + GameMain.GameScreen.Cam.Shake = Math.Max(GameMain.GameScreen.Cam.Shake, cameraShake); + } } } }