From 77024a31fb97fcf7f3016c066c461651b1cc2830 Mon Sep 17 00:00:00 2001 From: Regalis Date: Sun, 22 Nov 2015 17:11:13 +0200 Subject: [PATCH] Positioning out-of-sub particles relative to the level, easier to climb stairs --- Subsurface/Barotrauma.csproj | 3 +++ .../Content/Items/Weapons/stunbaton.ogg | Bin 0 -> 23882 bytes Subsurface/Properties/AssemblyInfo.cs | 4 ++-- Subsurface/Source/Characters/Limb.cs | 4 ++-- Subsurface/Source/Characters/Ragdoll.cs | 11 +++-------- .../Items/Components/Holdable/Propulsion.cs | 2 +- .../Items/Components/Machines/Engine.cs | 3 ++- .../Items/Components/Machines/Reactor.cs | 2 +- .../Items/Components/Power/PowerTransfer.cs | 2 +- Subsurface/Source/Map/Explosion.cs | 11 +++++------ Subsurface/Source/Map/Gap.cs | 2 +- Subsurface/Source/Map/Hull.cs | 2 +- Subsurface/Source/Particles/Particle.cs | 14 +++++++++----- .../Source/Particles/ParticleEmitter.cs | 4 ++-- .../Source/Particles/ParticleManager.cs | 4 ++-- Subsurface/changelog.txt | 6 ++++++ Subsurface_Solution.v12.suo | Bin 868864 -> 796160 bytes 17 files changed, 41 insertions(+), 33 deletions(-) create mode 100644 Subsurface/Content/Items/Weapons/stunbaton.ogg diff --git a/Subsurface/Barotrauma.csproj b/Subsurface/Barotrauma.csproj index 52b7a1885..0beadea18 100644 --- a/Subsurface/Barotrauma.csproj +++ b/Subsurface/Barotrauma.csproj @@ -939,6 +939,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/Subsurface/Content/Items/Weapons/stunbaton.ogg b/Subsurface/Content/Items/Weapons/stunbaton.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0efb8d0d691940ce1c24fec4ef1aa23daabc887c GIT binary patch literal 23882 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 E0etDA>;M1& literal 0 HcmV?d00001 diff --git a/Subsurface/Properties/AssemblyInfo.cs b/Subsurface/Properties/AssemblyInfo.cs index 2040cb113..258624579 100644 --- a/Subsurface/Properties/AssemblyInfo.cs +++ b/Subsurface/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.2.6.0")] -[assembly: AssemblyFileVersion("0.2.6.0")] +[assembly: AssemblyVersion("0.2.6.2")] +[assembly: AssemblyFileVersion("0.2.6.2")] diff --git a/Subsurface/Source/Characters/Limb.cs b/Subsurface/Source/Characters/Limb.cs index c2e455649..9a8454f22 100644 --- a/Subsurface/Source/Characters/Limb.cs +++ b/Subsurface/Source/Characters/Limb.cs @@ -353,12 +353,12 @@ namespace Barotrauma GameMain.ParticleManager.CreateParticle("blood", Position, - particleVel * Rand.Range(100.0f, 300.0f)); + particleVel * Rand.Range(100.0f, 300.0f), 0.0f, character.AnimController.CurrentHull); } for (int i = 0; i < bloodAmount / 2; i++) { - GameMain.ParticleManager.CreateParticle("waterblood", Position, Vector2.Zero); + GameMain.ParticleManager.CreateParticle("waterblood", Position, Vector2.Zero, 0.0f, character.AnimController.CurrentHull); } damage += Math.Max(amount,bleedingAmount) / character.MaxHealth * 100.0f; diff --git a/Subsurface/Source/Characters/Ragdoll.cs b/Subsurface/Source/Characters/Ragdoll.cs index b135b5da1..0aa080fca 100644 --- a/Subsurface/Source/Characters/Ragdoll.cs +++ b/Subsurface/Source/Characters/Ragdoll.cs @@ -612,24 +612,19 @@ namespace Barotrauma } } //the limb has gone through the surface of the water - if (Math.Abs(limb.LinearVelocity.Y) > 3.0 && inWater != prevInWater) + if (Math.Abs(limb.LinearVelocity.Y) > 5.0f && inWater != prevInWater) { //create a splash particle GameMain.ParticleManager.CreateParticle("watersplash", new Vector2(limb.Position.X, limbHull.Surface), new Vector2(0.0f, Math.Abs(-limb.LinearVelocity.Y * 10.0f)), - 0.0f); - - //if (splash != null) splash.yLimits = ConvertUnits.ToSimUnits( - // new Vector2( - // limbHull.Rect.Y, - // limbHull.Rect.Y - limbHull.Rect.Height)); + 0.0f, limbHull); GameMain.ParticleManager.CreateParticle("bubbles", new Vector2(limb.Position.X, limbHull.Surface), limb.LinearVelocity*0.001f, - 0.0f); + 0.0f, limbHull); diff --git a/Subsurface/Source/Items/Components/Holdable/Propulsion.cs b/Subsurface/Source/Items/Components/Holdable/Propulsion.cs index 308db79e7..525f9adcc 100644 --- a/Subsurface/Source/Items/Components/Holdable/Propulsion.cs +++ b/Subsurface/Source/Items/Components/Holdable/Propulsion.cs @@ -89,7 +89,7 @@ namespace Barotrauma.Items.Components if (!string.IsNullOrWhiteSpace(particles)) { GameMain.ParticleManager.CreateParticle(particles, item.Position, - item.body.Rotation + ((item.body.Dir > 0.0f) ? 0.0f : MathHelper.Pi), 0.0f); + item.body.Rotation + ((item.body.Dir > 0.0f) ? 0.0f : MathHelper.Pi), 0.0f, item.CurrentHull); } return true; diff --git a/Subsurface/Source/Items/Components/Machines/Engine.cs b/Subsurface/Source/Items/Components/Machines/Engine.cs index 031a53101..d86d955fc 100644 --- a/Subsurface/Source/Items/Components/Machines/Engine.cs +++ b/Subsurface/Source/Items/Components/Machines/Engine.cs @@ -75,7 +75,8 @@ namespace Barotrauma.Items.Components for (int i = 0; i < 5; i++) { GameMain.ParticleManager.CreateParticle("bubbles", item.Position, - -currForce/5.0f + new Vector2(Rand.Range(-100.0f, 100.0f), Rand.Range(-50f, 50f))); + -currForce / 5.0f + new Vector2(Rand.Range(-100.0f, 100.0f), Rand.Range(-50f, 50f)), + 0.0f, item.CurrentHull); } } diff --git a/Subsurface/Source/Items/Components/Machines/Reactor.cs b/Subsurface/Source/Items/Components/Machines/Reactor.cs index e26b6e5f2..b708d2e21 100644 --- a/Subsurface/Source/Items/Components/Machines/Reactor.cs +++ b/Subsurface/Source/Items/Components/Machines/Reactor.cs @@ -164,7 +164,7 @@ namespace Barotrauma.Items.Components for (int i = 0; i < 10; i++) { var particle = GameMain.ParticleManager.CreateParticle("spark", item.Position, - baseVel + Rand.Vector(100.0f), 0.0f); + baseVel + Rand.Vector(100.0f), 0.0f, item.CurrentHull); if (particle != null) particle.Size *= Rand.Range(0.5f, 1.0f); } diff --git a/Subsurface/Source/Items/Components/Power/PowerTransfer.cs b/Subsurface/Source/Items/Components/Power/PowerTransfer.cs index 548f8a29e..62c650871 100644 --- a/Subsurface/Source/Items/Components/Power/PowerTransfer.cs +++ b/Subsurface/Source/Items/Components/Power/PowerTransfer.cs @@ -68,7 +68,7 @@ namespace Barotrauma.Items.Components for (int i = 0; i < 10; i++) { var particle = GameMain.ParticleManager.CreateParticle("spark", pt.item.Position, - baseVel + Rand.Vector(100.0f), 0.0f); + baseVel + Rand.Vector(100.0f), 0.0f, item.CurrentHull); if (particle != null) particle.Size *= Rand.Range(0.5f, 1.0f); } diff --git a/Subsurface/Source/Map/Explosion.cs b/Subsurface/Source/Map/Explosion.cs index 3c3e77a60..5c88f7e01 100644 --- a/Subsurface/Source/Map/Explosion.cs +++ b/Subsurface/Source/Map/Explosion.cs @@ -43,25 +43,26 @@ namespace Barotrauma public void Explode(Vector2 simPosition) { Vector2 displayPosition = ConvertUnits.ToDisplayUnits(simPosition); + + Hull hull = Hull.FindHull(displayPosition); if (shockwave) { GameMain.ParticleManager.CreateParticle("shockwave", displayPosition, - Vector2.Zero, 0.0f); + Vector2.Zero, 0.0f, hull); } - for (int i = 0; i < attack.Range * 10; i++) { if (sparks) { GameMain.ParticleManager.CreateParticle("spark", displayPosition, - Rand.Vector(Rand.Range(500.0f, 800.0f)), 0.0f); + Rand.Vector(Rand.Range(500.0f, 800.0f)), 0.0f, hull); } if (flames) { GameMain.ParticleManager.CreateParticle("explosionfire", displayPosition + Rand.Vector(50f), - Rand.Vector(Rand.Range(50f, 100.0f)), 0.0f); + Rand.Vector(Rand.Range(50f, 100.0f)), 0.0f, hull); } } @@ -80,8 +81,6 @@ namespace Barotrauma if (force == 0.0f && attack.Stun == 0.0f && attack.GetDamage(1.0f) == 0.0f) return; - //Hull hull = Hull.FindHull(displayPosition); - foreach (Character c in Character.CharacterList) { float dist = Vector2.Distance(c.SimPosition, simPosition); diff --git a/Subsurface/Source/Map/Gap.cs b/Subsurface/Source/Map/Gap.cs index 5f6eeb680..4fa897c26 100644 --- a/Subsurface/Source/Map/Gap.cs +++ b/Subsurface/Source/Map/Gap.cs @@ -254,7 +254,7 @@ namespace Barotrauma UpdateRoomToRoom(deltaTime); } - if (FlowForce.Length() > 150.0f && flowTargetHull != null && flowTargetHull.Volume < flowTargetHull.FullVolume) + if (LerpedFlowForce.Length() > 150.0f && flowTargetHull != null && flowTargetHull.Volume < flowTargetHull.FullVolume) { //UpdateFlowForce(); diff --git a/Subsurface/Source/Map/Hull.cs b/Subsurface/Source/Map/Hull.cs index 8d2a10cf4..5573385fa 100644 --- a/Subsurface/Source/Map/Hull.cs +++ b/Subsurface/Source/Map/Hull.cs @@ -271,7 +271,7 @@ namespace Barotrauma { GameMain.ParticleManager.CreateParticle("mist", new Vector2(rect.X + WaveWidth * i,surface + waveY[i]), - new Vector2(0.0f, -50.0f)); + new Vector2(0.0f, -50.0f), 0.0f, this); } waveY[i] = waveY[i] + waveVel[i]; diff --git a/Subsurface/Source/Particles/Particle.cs b/Subsurface/Source/Particles/Particle.cs index cfb65921d..9cacf2284 100644 --- a/Subsurface/Source/Particles/Particle.cs +++ b/Subsurface/Source/Particles/Particle.cs @@ -73,6 +73,9 @@ namespace Barotrauma.Particles spriteIndex = Rand.Int(prefab.Sprites.Count); + currentHull = Hull.FindHull(position, hullGuess); + if (currentHull == null) position = Submarine.Loaded == null ? position : position + Submarine.Loaded.Position; + this.position = position; prevPosition = position; @@ -102,8 +105,6 @@ namespace Barotrauma.Particles if (prefab.DeleteOnCollision || prefab.CollidesWithWalls) { - currentHull = Hull.FindHull(position, hullGuess); - hullGaps = currentHull==null ? new List() : currentHull.FindGaps(); //hullLimits = new List(); //hullLimits = FindLimits(position); @@ -253,7 +254,6 @@ namespace Barotrauma.Particles public void Draw(SpriteBatch spriteBatch) { drawPosition = Physics.Interpolate(prevPosition, position); - drawPosition.Y = -drawPosition.Y; float drawRotation = Physics.Interpolate(prevRotation, rotation); //drawPosition = ConvertUnits.ToDisplayUnits(drawPosition); @@ -263,10 +263,14 @@ namespace Barotrauma.Particles if (prefab.GrowTime>0.0f && totalLifeTime-lifeTime < prefab.GrowTime) { drawSize *= ((totalLifeTime - lifeTime) / prefab.GrowTime); - } - prefab.Sprites[spriteIndex].Draw(spriteBatch, drawPosition, color * alpha, + Vector2 screenSpacePos = currentHull == null && Submarine.Loaded != null ? drawPosition - Submarine.Loaded.Position : drawPosition; + screenSpacePos.Y = -screenSpacePos.Y; + + prefab.Sprites[spriteIndex].Draw(spriteBatch, + screenSpacePos, + color * alpha, prefab.Sprites[spriteIndex].origin, drawRotation, drawSize, SpriteEffects.None, prefab.Sprites[spriteIndex].Depth); diff --git a/Subsurface/Source/Particles/ParticleEmitter.cs b/Subsurface/Source/Particles/ParticleEmitter.cs index 99b97ab0b..0b9509020 100644 --- a/Subsurface/Source/Particles/ParticleEmitter.cs +++ b/Subsurface/Source/Particles/ParticleEmitter.cs @@ -51,14 +51,14 @@ namespace Barotrauma.Particles ParticleAmount = ToolBox.GetAttributeInt(element, "particleamount", 1); } - public void Emit(Vector2 position) + public void Emit(Vector2 position, Hull hullGuess = null) { for (int i = 0; ij~XH(niY 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