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); + } } } }