From 91d6c7b91f3993ea5dfa6f631fccc793d5b58071 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Tue, 24 Apr 2018 18:00:23 +0300 Subject: [PATCH 1/3] Fixed explosives being directly usable by characters, causing them to explode when left clicking while holding them due to 9dd9425c. See #385 --- .../Content/Items/Artifacts/artifacts.xml | 2 +- .../BarotraumaShared/Content/Items/Medical/medical.xml | 4 ++-- .../Content/Items/Weapons/depthcharge.xml | 4 ++-- .../Content/Items/Weapons/explosives.xml | 8 ++++---- .../BarotraumaShared/Content/Items/Weapons/railgun.xml | 4 ++-- .../BarotraumaShared/Content/Items/Weapons/weapons.xml | 4 ++-- .../Source/Items/Components/Holdable/Throwable.cs | 2 +- .../Source/Items/Components/ItemComponent.cs | 8 ++++++++ .../Source/Items/Components/Projectile.cs | 9 +-------- .../BarotraumaShared/Source/Items/Components/Rope.cs | 7 ++----- 10 files changed, 25 insertions(+), 27 deletions(-) diff --git a/Barotrauma/BarotraumaShared/Content/Items/Artifacts/artifacts.xml b/Barotrauma/BarotraumaShared/Content/Items/Artifacts/artifacts.xml index c84692683..b9dc385d5 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Artifacts/artifacts.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Artifacts/artifacts.xml @@ -179,7 +179,7 @@ - + diff --git a/Barotrauma/BarotraumaShared/Content/Items/Medical/medical.xml b/Barotrauma/BarotraumaShared/Content/Items/Medical/medical.xml index 83684b61a..ad09c940d 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Medical/medical.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Medical/medical.xml @@ -29,7 +29,7 @@ - + @@ -511,7 +511,7 @@ - + diff --git a/Barotrauma/BarotraumaShared/Content/Items/Weapons/depthcharge.xml b/Barotrauma/BarotraumaShared/Content/Items/Weapons/depthcharge.xml index c6ade8ce4..ed8ac06ac 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Weapons/depthcharge.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Weapons/depthcharge.xml @@ -49,7 +49,7 @@ - + @@ -80,7 +80,7 @@ - + diff --git a/Barotrauma/BarotraumaShared/Content/Items/Weapons/explosives.xml b/Barotrauma/BarotraumaShared/Content/Items/Weapons/explosives.xml index 84c56f6e6..f2c315e06 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Weapons/explosives.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Weapons/explosives.xml @@ -10,7 +10,7 @@ - + @@ -29,7 +29,7 @@ - + @@ -49,7 +49,7 @@ - + @@ -76,7 +76,7 @@ - + diff --git a/Barotrauma/BarotraumaShared/Content/Items/Weapons/railgun.xml b/Barotrauma/BarotraumaShared/Content/Items/Weapons/railgun.xml index 7200610b4..c1db65de7 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Weapons/railgun.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Weapons/railgun.xml @@ -87,7 +87,7 @@ - + @@ -120,7 +120,7 @@ - + diff --git a/Barotrauma/BarotraumaShared/Content/Items/Weapons/weapons.xml b/Barotrauma/BarotraumaShared/Content/Items/Weapons/weapons.xml index 2e6ef6e50..ec7ea9d76 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Weapons/weapons.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Weapons/weapons.xml @@ -17,7 +17,7 @@ - + @@ -102,7 +102,7 @@ - + diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/Throwable.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/Throwable.cs index 34c909508..13c66dde4 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/Throwable.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/Throwable.cs @@ -28,7 +28,7 @@ namespace Barotrauma.Items.Components public override bool Use(float deltaTime, Character character = null) { - return true; //We do the actual throwing in Aim because Use might be used by chems + return characterUsable || character == null; //We do the actual throwing in Aim because Use might be used by chems } public override bool SecondaryUse(float deltaTime, Character character = null) diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs index c855ab328..ba87a5f77 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs @@ -141,6 +141,14 @@ namespace Barotrauma.Items.Components get { return removeOnCombined; } set { removeOnCombined = value; } } + + //Can the "Use" action be triggered by characters or just other items/statuseffects + [Serialize(true, false)] + public bool CharacterUsable + { + get { return characterUsable; } + set { characterUsable = value; } + } public InputType PickKey { diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Projectile.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Projectile.cs index 6456e56fa..3d6e36af4 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Projectile.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Projectile.cs @@ -37,14 +37,7 @@ namespace Barotrauma.Items.Components get { return launchImpulse; } set { launchImpulse = value; } } - - [Serialize(false, false)] - public bool CharacterUsable - { - get { return characterUsable; } - set { characterUsable = value; } - } - + [Serialize(false, false)] //backwards compatibility, can stick to anything public bool DoesStick diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Rope.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Rope.cs index feb13df8a..4b73bf17e 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Rope.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Rope.cs @@ -73,13 +73,10 @@ namespace Barotrauma.Items.Components projectileAnchor.X = element.GetAttributeFloat("projectileanchorx", 0.0f); projectileAnchor.Y = element.GetAttributeFloat("projectileanchory", 0.0f); projectileAnchor = ConvertUnits.ToSimUnits(projectileAnchor); - - characterUsable = element.GetAttributeBool("characterusable", false); - + sprite = new Sprite(spritePath, new Vector2(0.5f,0.5f)); sectionLength = ConvertUnits.ToSimUnits(sprite.size.X); - - + Path ropePath = new Path(); ropePath.Add(item.body.SimPosition); ropePath.Add(item.body.SimPosition + new Vector2(length, 0.0f)); From 8cf26e2d7f2ce2a899e4f4a631baa567e67534e8 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Tue, 24 Apr 2018 18:02:53 +0300 Subject: [PATCH 2/3] Fixed null reference exception if a statuseffect removes an item when a round is not running. Closes #385 --- .../BarotraumaShared/Source/StatusEffects/StatusEffect.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Barotrauma/BarotraumaShared/Source/StatusEffects/StatusEffect.cs b/Barotrauma/BarotraumaShared/Source/StatusEffects/StatusEffect.cs index e1a6a160a..7f6db5d43 100644 --- a/Barotrauma/BarotraumaShared/Source/StatusEffects/StatusEffect.cs +++ b/Barotrauma/BarotraumaShared/Source/StatusEffects/StatusEffect.cs @@ -378,7 +378,7 @@ namespace Barotrauma { foreach (Item item in targets.FindAll(t => t is Item).Cast()) { - Entity.Spawner.AddToRemoveQueue(item); + Entity.Spawner?.AddToRemoveQueue(item); } } From 88eabef8af4c342c373780de601c804541bf4233 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Tue, 24 Apr 2018 20:58:42 +0300 Subject: [PATCH 3/3] Made characterusable default to false (as it did before 91d6c7b) --- .../BarotraumaShared/Source/Items/Components/ItemComponent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs index ba87a5f77..9bd033a11 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs @@ -143,7 +143,7 @@ namespace Barotrauma.Items.Components } //Can the "Use" action be triggered by characters or just other items/statuseffects - [Serialize(true, false)] + [Serialize(false, false)] public bool CharacterUsable { get { return characterUsable; }