diff --git a/Subsurface/Content/Characters/Moloch/moloch.xml b/Subsurface/Content/Characters/Moloch/moloch.xml index d8be447a5..6fb293ffc 100644 --- a/Subsurface/Content/Characters/Moloch/moloch.xml +++ b/Subsurface/Content/Characters/Moloch/moloch.xml @@ -11,7 +11,7 @@ - + diff --git a/Subsurface/Properties/AssemblyInfo.cs b/Subsurface/Properties/AssemblyInfo.cs index f99f140e4..558d722cc 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.4.1.6")] -[assembly: AssemblyFileVersion("0.4.1.6")] +[assembly: AssemblyVersion("0.5.0.0")] +[assembly: AssemblyFileVersion("0.5.0.0")] diff --git a/Subsurface/Source/Networking/GameServerSettings.cs b/Subsurface/Source/Networking/GameServerSettings.cs index c52151942..2a3bbc0d9 100644 --- a/Subsurface/Source/Networking/GameServerSettings.cs +++ b/Subsurface/Source/Networking/GameServerSettings.cs @@ -1,6 +1,7 @@ using Microsoft.Xna.Framework; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using System.Xml; @@ -210,7 +211,10 @@ namespace Barotrauma.Networking private void LoadSettings() { XDocument doc = null; - doc = ToolBox.TryLoadXml(SettingsFile); + if (File.Exists(SettingsFile)) + { + doc = ToolBox.TryLoadXml(SettingsFile); + } if (doc == null || doc.Root == null) { @@ -379,7 +383,7 @@ namespace Barotrauma.Networking respawnDurationSlider.ToolTip = minRespawnText.ToolTip; respawnDurationSlider.UserData = respawnDurationText; respawnDurationSlider.Step = 0.1f; - respawnDurationSlider.BarScroll = MinRespawnRatio; + respawnDurationSlider.BarScroll = MaxTransportTime <= 0.0f ? 1.0f : (MaxTransportTime - 60.0f) / 600.0f; respawnDurationSlider.OnMoved = (GUIScrollBar scrollBar, float barScroll) => { GUITextBlock txt = scrollBar.UserData as GUITextBlock; @@ -397,7 +401,7 @@ namespace Barotrauma.Networking return true; }; - respawnDurationSlider.OnMoved(respawnDurationSlider, (MaxTransportTime - 60.0f)/600.0f); + respawnDurationSlider.OnMoved(respawnDurationSlider, respawnDurationSlider.BarScroll); y += 40; diff --git a/Subsurface/Source/Networking/RespawnManager.cs b/Subsurface/Source/Networking/RespawnManager.cs index 84b9f887f..978915981 100644 --- a/Subsurface/Source/Networking/RespawnManager.cs +++ b/Subsurface/Source/Networking/RespawnManager.cs @@ -402,7 +402,8 @@ namespace Barotrauma.Networking ItemPrefab divingSuitPrefab = ItemPrefab.list.Find(ip => ip.Name == "Diving Suit") as ItemPrefab; ItemPrefab oxyPrefab = ItemPrefab.list.Find(ip => ip.Name == "Oxygen Tank") as ItemPrefab; - ItemPrefab scooterPrefab = ItemPrefab.list.Find(ip => ip.Name == "Underwater Scooter") as ItemPrefab; + ItemPrefab scooterPrefab = ItemPrefab.list.Find(ip => ip.Name == "Underwater Scooter") as ItemPrefab; + ItemPrefab batteryPrefab = ItemPrefab.list.Find(ip => ip.Name == "Battery Cell") as ItemPrefab; var cargoSp = WayPoint.WayPointList.Find(wp => wp.Submarine == respawnShuttle && wp.SpawnType == SpawnType.Cargo); @@ -425,25 +426,33 @@ namespace Barotrauma.Networking spawnedCharacters.Add(character); + Vector2 pos = cargoSp == null ? character.Position : cargoSp.Position; + if (divingSuitPrefab != null && oxyPrefab != null) { - Vector2 pos = cargoSp == null ? character.Position : cargoSp.Position; var divingSuit = new Item(divingSuitPrefab, pos, respawnShuttle); var oxyTank = new Item(oxyPrefab, pos, respawnShuttle); - var scooter = new Item(scooterPrefab, pos, respawnShuttle); divingSuit.Combine(oxyTank); spawnedItems.Add(divingSuit); spawnedItems.Add(oxyTank); - spawnedItems.Add(scooter); - - Item.Spawner.AddToSpawnedList(divingSuit); - Item.Spawner.AddToSpawnedList(oxyTank); - Item.Spawner.AddToSpawnedList(scooter); } + if (scooterPrefab != null && batteryPrefab != null) + { + var scooter = new Item(scooterPrefab, pos, respawnShuttle); + var battery = new Item(batteryPrefab, pos, respawnShuttle); + + scooter.Combine(battery); + + spawnedItems.Add(scooter); + spawnedItems.Add(battery); + } + + spawnedItems.ForEach(s => Item.Spawner.AddToSpawnedList(s)); + character.GiveJobItems(waypoints[i]); GameMain.GameSession.CrewManager.characters.Add(character); } diff --git a/Subsurface/Submarines/Aegir Mark II.sub b/Subsurface/Submarines/Aegir Mark II.sub deleted file mode 100644 index db54bb6e3..000000000 Binary files a/Subsurface/Submarines/Aegir Mark II.sub and /dev/null differ diff --git a/Subsurface/Submarines/Aegir Mark III.sub b/Subsurface/Submarines/Aegir Mark III.sub new file mode 100644 index 000000000..1bd371c82 Binary files /dev/null and b/Subsurface/Submarines/Aegir Mark III.sub differ diff --git a/Subsurface/Submarines/Nehalennia.sub b/Subsurface/Submarines/Nehalennia.sub index b44a0dedb..5eff334a3 100644 Binary files a/Subsurface/Submarines/Nehalennia.sub and b/Subsurface/Submarines/Nehalennia.sub differ diff --git a/Subsurface/Submarines/Shuttle Mark I.sub b/Subsurface/Submarines/Shuttle Mark I.sub deleted file mode 100644 index c6786e623..000000000 Binary files a/Subsurface/Submarines/Shuttle Mark I.sub and /dev/null differ diff --git a/Subsurface/Submarines/The Blind Carp.sub b/Subsurface/Submarines/The Blind Carp.sub index d76e98cf3..1a91a0560 100644 Binary files a/Subsurface/Submarines/The Blind Carp.sub and b/Subsurface/Submarines/The Blind Carp.sub differ diff --git a/Subsurface/Submarines/The Nibbler.sub b/Subsurface/Submarines/The Nibbler.sub index c28715fd1..d8d82201a 100644 Binary files a/Subsurface/Submarines/The Nibbler.sub and b/Subsurface/Submarines/The Nibbler.sub differ diff --git a/Subsurface/Submarines/Vellamo.sub b/Subsurface/Submarines/Vellamo.sub index 78b90643e..41789877e 100644 Binary files a/Subsurface/Submarines/Vellamo.sub and b/Subsurface/Submarines/Vellamo.sub differ diff --git a/Subsurface/changelog.txt b/Subsurface/changelog.txt index 4a08e6ad6..e2cb80b9a 100644 --- a/Subsurface/changelog.txt +++ b/Subsurface/changelog.txt @@ -1,9 +1,9 @@ --------------------------------------------------------------------------------------------------------- -v0.4.2.0 +v0.5.0.0 --------------------------------------------------------------------------------------------------------- Support for multiple submarines (no full-fledged submarine vs submarine battles yet, but they're coming -up in future updates!): +in future updates!): - Submarine files can be "merged", i.e. submarines can consist of multiple separate parts which can be docked into each other - the multiplayer mode has a "respawn shuttle" which transports respawned players from the entrance @@ -14,7 +14,7 @@ up in future updates!): Multiplayer: - fixed a bunch of bugs that caused entity IDs not to match between the clients and the server (which caused severe syncing issues) - - fixed monster inventory syncing (although atm husks are the only monsters with an inventory) + - fixed monster inventory syncing (i.e. husk inventory syncing) - fixed server description box not being synced with clients - search bar for server logs - more server options @@ -34,19 +34,24 @@ Items: - item search bar in the submarine editor - fixed cargo items spawning in incorrect positions (which occasionally caused some serious problems if the item happened to be a crate full of nitroglycerin) + - flares burn longer + - fixed flashes from explosions/sparks/flares occasionally ''staying on'' + - cameras: can be connected to a railgun controller (or any other selectable controller) to remotely + view rooms or areas around the sub +Submarines: + - the mass of a submarine depends on its size - larger submarines require more force to move around + (custom subs may need some modifications to get the top speeds of the smaller/larger subs back to a + steerable level) + - changes to depth damage logic: structures with more health need more pressure before they start taking + damage (i.e. submarines with thicker walls and no windows can go deeper) -- the mass of a submarine depends on its size - larger submarines require more force to move around -(custom subs may need some modifications to get the top speeds of the smaller/larger subs back to a -steerable level) - -- changes to depth damage logic: structures with more health need more pressure before they start taking -damage (i.e. submarines with thicker walls and no windows can go deeper) -- fixed flashes from explosions/sparks/flares occasionally ''staying on'' -- NPCs won't close doors/hatches on themselves and are better at handling stairs/ladders -- pathfinding bugfixes -- stunned characters can't move items in their inventory -- characters can run while grabbing/dragging someone +Misc: + - stunned characters can't move items in their inventory + - characters can run while grabbing/dragging someone + - fixed a bug that made it impossible to spawn characters through the console in the Linux version + - NPCs won't close doors/hatches on themselves and are better at handling stairs/ladders + - pathfinding bugfixes --------------------------------------------------------------------------------------------------------- @@ -532,58 +537,58 @@ v0.3 --------------------------------------------------------------------------------------------------------- Multiplayer: -- a summary screen which shows some details about the previous round -- no separate traitor mode: they can be enabled for any game mode -- an option to randomize whether there is a traitor or not -- larger chatbox -- a ton of syncing bugfixes and optimization + - a summary screen which shows some details about the previous round + - no separate traitor mode: they can be enabled for any game mode + - an option to randomize whether there is a traitor or not + - larger chatbox + - a ton of syncing bugfixes and optimization Items: -- fabricators, which can be used for crafting items out of raw materials or other items -- deconstructors, which break items down to their basic components/materials -- a bunch of new sprites -- there are some artifacts scattered around every level regardless of the quest, and they can be collected -and used as a source of useful raw materials for the fabricator -- added hatches (which are basically doors rotated by 90 degrees) -- characters can't get stuck inside doors anymore -- stairs are easier to climb (less tripping down!) -- navigation terminals have a ''default ballast level'' setting which determines how much water there -should be in the ballast tanks when not steering in any direction -- ladders can be climbed with a diving suit on, just very slowly -- ladder climbing animation now works properly even when holding an item -- items have a short description which can be read by hovering the mouse over the inventory slots -- if the reactor is connected to multiple junction boxes, automatic temperature control will adjust -the power output to the highest load instead of the sum of the loads -- reactor state is saved (it will stay running when between levels) -- using a stun baton while running won't make the character trip anymore + - fabricators, which can be used for crafting items out of raw materials or other items + - deconstructors, which break items down to their basic components/materials + - a bunch of new sprites + - there are some artifacts scattered around every level regardless of the quest, and they can be collected + and used as a source of useful raw materials for the fabricator + - added hatches (which are basically doors rotated by 90 degrees) + - characters can't get stuck inside doors anymore + - stairs are easier to climb (less tripping down!) + - navigation terminals have a ''default ballast level'' setting which determines how much water there + should be in the ballast tanks when not steering in any direction + - ladders can be climbed with a diving suit on, just very slowly + - ladder climbing animation now works properly even when holding an item + - items have a short description which can be read by hovering the mouse over the inventory slots + - if the reactor is connected to multiple junction boxes, automatic temperature control will adjust + the power output to the highest load instead of the sum of the loads + - reactor state is saved (it will stay running when between levels) + - using a stun baton while running won't make the character trip anymore Submarines: -- a new sub, Nehalennia -- the collider of the submarine now matches the shape of the hull -- the airlock pumps in each sub are set to pump water out instead of just turning the pump on when pressing -the button outside the airlock + - a new sub, Nehalennia + - the collider of the submarine now matches the shape of the hull + - the airlock pumps in each sub are set to pump water out instead of just turning the pump on when pressing + the button outside the airlock Submarine editor: -- items/structures are sorted by category in alphabetical order -- tickboxes for hiding hulls, gaps, waypoints and links between items -- a list of the most recently used items/structures -- placed wires are much easier to move around -- more accurate staircase selecting (the ''bounding box'' of the staircase won't prevent selecting items that -are behind it anymore) -- visible indicators for railgun rotation limits + - items/structures are sorted by category in alphabetical order + - tickboxes for hiding hulls, gaps, waypoints and links between items + - a list of the most recently used items/structures + - placed wires are much easier to move around + - more accurate staircase selecting (the ''bounding box'' of the staircase won't prevent selecting items that + are behind it anymore) + - visible indicators for railgun rotation limits Crew: -- the crew members not controlled by the player now have an AI: they can take orders, do some basic tasks -and avoid various hazards -- fixed equipped items disappearing when loading the game -- bodies can be dragged up stairs + - the crew members not controlled by the player now have an AI: they can take orders, do some basic tasks + and avoid various hazards + - fixed equipped items disappearing when loading the game + - bodies can be dragged up stairs Misc: -- two new monsters -- improved UI graphics -- better looking cavern walls -- major optimization to light/shadow rendering -- some new quests (which are now called ''missions'') + - two new monsters + - improved UI graphics + - better looking cavern walls + - major optimization to light/shadow rendering + - some new quests (which are now called ''missions'') --------------------------------------------------------------------------------------------------------- v0.2.6.2