From 08f1d05507d84c1d15b186beb108512518daa7c8 Mon Sep 17 00:00:00 2001 From: Regalis Date: Sat, 13 Feb 2016 13:09:27 +0200 Subject: [PATCH] Fuel rods can't be turned back to uranium/incendium if they've already been used, fixed level generation breaking with smaller subs --- Subsurface/Content/Items/Reactor/reactor.xml | 4 +-- Subsurface/Properties/AssemblyInfo.cs | 4 +-- .../Components/Machines/Deconstructor.cs | 6 +++-- Subsurface/Source/Items/ItemPrefab.cs | 23 +++++++++++++++--- Subsurface/Source/Map/Levels/Level.cs | 13 +++++++--- Subsurface/Source/Networking/GameClient.cs | 2 +- .../Source/Networking/GameServerSettings.cs | 2 +- Subsurface/changelog.txt | 13 ++++++++++ Subsurface_Solution.v12.suo | Bin 913920 -> 913920 bytes 9 files changed, 52 insertions(+), 15 deletions(-) diff --git a/Subsurface/Content/Items/Reactor/reactor.xml b/Subsurface/Content/Items/Reactor/reactor.xml index 597b35ba8..e2c291d3a 100644 --- a/Subsurface/Content/Items/Reactor/reactor.xml +++ b/Subsurface/Content/Items/Reactor/reactor.xml @@ -59,7 +59,7 @@ - + @@ -78,7 +78,7 @@ - + diff --git a/Subsurface/Properties/AssemblyInfo.cs b/Subsurface/Properties/AssemblyInfo.cs index 595743d0d..d100587cb 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.3.1.3")] -[assembly: AssemblyFileVersion("0.3.1.3")] +[assembly: AssemblyVersion("0.3.1.5")] +[assembly: AssemblyFileVersion("0.3.1.5")] diff --git a/Subsurface/Source/Items/Components/Machines/Deconstructor.cs b/Subsurface/Source/Items/Components/Machines/Deconstructor.cs index 49feba547..0b777ed80 100644 --- a/Subsurface/Source/Items/Components/Machines/Deconstructor.cs +++ b/Subsurface/Source/Items/Components/Machines/Deconstructor.cs @@ -58,9 +58,11 @@ namespace Barotrauma.Items.Components return; } - foreach (string deconstructProduct in targetItem.Prefab.DeconstructItems) + foreach (DeconstructItem deconstructProduct in targetItem.Prefab.DeconstructItems) { - var itemPrefab = ItemPrefab.list.FirstOrDefault(ip => ip.Name.ToLower() == deconstructProduct.ToLower()) as ItemPrefab; + if (deconstructProduct.RequireFullCondition && targetItem.Condition < 100.0f) continue; + + var itemPrefab = ItemPrefab.list.FirstOrDefault(ip => ip.Name.ToLower() == deconstructProduct.ItemPrefabName.ToLower()) as ItemPrefab; if (itemPrefab==null) { DebugConsole.ThrowError("Tried to deconstruct item ''"+targetItem.Name+"'' but couldn't find item prefab ''"+deconstructProduct+"''!"); diff --git a/Subsurface/Source/Items/ItemPrefab.cs b/Subsurface/Source/Items/ItemPrefab.cs index a10c81bbc..6f7d92597 100644 --- a/Subsurface/Source/Items/ItemPrefab.cs +++ b/Subsurface/Source/Items/ItemPrefab.cs @@ -9,6 +9,18 @@ using Microsoft.Xna.Framework.Input; namespace Barotrauma { + struct DeconstructItem + { + public readonly string ItemPrefabName; + public readonly bool RequireFullCondition; + + public DeconstructItem(string itemPrefabName, bool requireFullCondition) + { + ItemPrefabName = itemPrefabName; + RequireFullCondition = requireFullCondition; + } + } + class ItemPrefab : MapEntityPrefab { //static string contentFolder = "Content/Items/"; @@ -38,7 +50,7 @@ namespace Barotrauma get { return configFile; } } - public List DeconstructItems + public List DeconstructItems { get; private set; @@ -216,7 +228,7 @@ namespace Barotrauma Triggers = new List(); - DeconstructItems = new List(); + DeconstructItems = new List(); DeconstructTime = 1.0f; foreach (XElement subElement in element.Elements()) @@ -238,7 +250,12 @@ namespace Barotrauma foreach (XElement deconstructItem in subElement.Elements()) { - DeconstructItems.Add(ToolBox.GetAttributeString(deconstructItem, "name", "not found")); + + string deconstructItemName = ToolBox.GetAttributeString(deconstructItem, "name", "not found"); + bool requireFullCondition = ToolBox.GetAttributeBool(deconstructItem, "requirefullcondition", false); + + DeconstructItems.Add(new DeconstructItem(deconstructItemName, requireFullCondition)); + } break; diff --git a/Subsurface/Source/Map/Levels/Level.cs b/Subsurface/Source/Map/Levels/Level.cs index 70c495875..7c7f34af5 100644 --- a/Subsurface/Source/Map/Levels/Level.cs +++ b/Subsurface/Source/Map/Levels/Level.cs @@ -148,13 +148,12 @@ namespace Barotrauma Rand.SetSyncedSeed(ToolBox.StringToInt(seed)); - float minWidth = Submarine.Loaded == null ? 3000.0f : Math.Max(Submarine.Borders.Width, Submarine.Borders.Height); + float minWidth = Submarine.Loaded == null ? 0.0f : Math.Max(Submarine.Borders.Width, Submarine.Borders.Height); + minWidth = Math.Max(minWidth, 3500.0f); startPosition = new Vector2((int)minWidth * 2, Rand.Range((int)minWidth * 2, borders.Height - (int)minWidth * 2, false)); endPosition = new Vector2(borders.Width - (int)minWidth * 2, Rand.Range((int)minWidth * 2, borders.Height - (int)minWidth * 2, false)); - - - + List pathNodes = new List(); Rectangle pathBorders = borders;// new Rectangle((int)minWidth, (int)minWidth, borders.Width - (int)minWidth * 2, borders.Height - (int)minWidth); pathBorders.Inflate(-minWidth*2, -minWidth*2); @@ -871,7 +870,10 @@ namespace Barotrauma #if DEBUG DebugConsole.ThrowError("Invalid right normal"); #endif + GameMain.World.RemoveBody(cell.body); + cell.body = null; leftNormal = Vector2.UnitX; + break; } @@ -891,7 +893,10 @@ namespace Barotrauma #if DEBUG DebugConsole.ThrowError("Invalid right normal"); #endif + GameMain.World.RemoveBody(cell.body); + cell.body = null; rightNormal = Vector2.UnitX; + break; } diff --git a/Subsurface/Source/Networking/GameClient.cs b/Subsurface/Source/Networking/GameClient.cs index 619822fb2..e523df138 100644 --- a/Subsurface/Source/Networking/GameClient.cs +++ b/Subsurface/Source/Networking/GameClient.cs @@ -602,7 +602,7 @@ namespace Barotrauma.Networking gameStarted = true; - endRoundButton.Visible = Voting.AllowEndVoting; + endRoundButton.Visible = Voting.AllowEndVoting && myCharacter != null; GameMain.GameScreen.Select(); diff --git a/Subsurface/Source/Networking/GameServerSettings.cs b/Subsurface/Source/Networking/GameServerSettings.cs index da5013140..ea7640a3c 100644 --- a/Subsurface/Source/Networking/GameServerSettings.cs +++ b/Subsurface/Source/Networking/GameServerSettings.cs @@ -85,7 +85,7 @@ namespace Barotrauma.Networking get { return allowSpectating; } } - public float EndVoteRequiredRatio; + public float EndVoteRequiredRatio = 0.5f; private void CreateSettingsFrame() { diff --git a/Subsurface/changelog.txt b/Subsurface/changelog.txt index 4b18426f9..8fc87b287 100644 --- a/Subsurface/changelog.txt +++ b/Subsurface/changelog.txt @@ -1,3 +1,16 @@ +--------------------------------------------------------------------------------------------------------- +v0.3.1.5 +--------------------------------------------------------------------------------------------------------- + +- fixed projectiles/weapons not colliding with characters + +--------------------------------------------------------------------------------------------------------- +v0.3.1.4 +--------------------------------------------------------------------------------------------------------- + +- fixed items ''floating'' in some of the custom subs +- fuel rods can't be turned back to uranium/incendium bars if they've been used + --------------------------------------------------------------------------------------------------------- v0.3.1.3 --------------------------------------------------------------------------------------------------------- diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index bf165a2e768552cf4481a3975d2b319eb0b2e22d..614a01d492532beb31f8ca8d5f71b9c1a001d7d8 100644 GIT binary patch delta 5886 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%0DvA9fJfgMj!$B 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