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