diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Door.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Door.cs index 51190dbd6..f4405e5ee 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Door.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Door.cs @@ -251,6 +251,31 @@ namespace Barotrauma.Items.Components return false; } + // TODO: use separate door variants and remove this? + private bool isWired = true; + private void SetWired(bool value) + { + if (isWired == value) { return; } + isWired = value; + if (isWired) + { + requiredItems.Clear(); + RelatedItem ri = new RelatedItem(new string[] { "crowbar" }, new string[] { }); + requiredItems.Add(RelatedItem.RelationType.Equipped, new List()); + requiredItems[RelatedItem.RelationType.Equipped].Add(ri); + Msg = "ItemMsgForceOpenCrowbar"; + ParseMsg(); + PickingTime = 10; + } + else + { + requiredItems.Clear(); + Msg = "ItemMsgOpen"; + ParseMsg(); + PickingTime = 0; + } + } + public override void Update(float deltaTime, Camera cam) { if (isBroken) @@ -262,6 +287,17 @@ namespace Barotrauma.Items.Components } return; } + if (item.Connections != null) + { + if (item.Connections.Any(ic => ic.Recipients.Any())) + { + SetWired(true); + } + else + { + SetWired(false); + } + } bool isClosing = false; if (!isStuck)