From 08c5117e8fe3d867d47ef865a6ea010a2019f1f3 Mon Sep 17 00:00:00 2001 From: Regalis Date: Tue, 4 Aug 2015 23:49:08 +0300 Subject: [PATCH] v0.1.1 --- .../Content/Items/Clothes/captainLegs.png | Bin 4961 -> 5634 bytes Subsurface/Source/DebugConsole.cs | 9 ++++- Subsurface/Source/Screens/MainMenu.cs | 4 +-- Subsurface/Source/Screens/NetLobbyScreen.cs | 8 ++--- Subsurface/Subsurface.csproj | 3 ++ Subsurface/changelog.txt | 33 ++++++++++++++++++ Subsurface/readme.txt | 16 ++++----- Subsurface_Solution.v12.suo | Bin 585216 -> 581632 bytes 8 files changed, 58 insertions(+), 15 deletions(-) create mode 100644 Subsurface/changelog.txt diff --git a/Subsurface/Content/Items/Clothes/captainLegs.png b/Subsurface/Content/Items/Clothes/captainLegs.png index 6b327f6b377930e6aa200377af8e9ccc4da9ae95..4c22114e8211a8f8be74442b35a9b75c8c0ce5d2 100644 GIT binary patch delta 5584 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 diff --git a/Subsurface/Source/DebugConsole.cs b/Subsurface/Source/DebugConsole.cs index 9eb9a94c1..bd98b5e8a 100644 --- a/Subsurface/Source/DebugConsole.cs +++ b/Subsurface/Source/DebugConsole.cs @@ -252,7 +252,14 @@ namespace Subsurface break; case "savemap": if (commands.Length < 2) break; - Submarine.SaveCurrent("Content/SavedMaps/" + string.Join(" ", commands.Skip(1))+".gz"); + + string fileName = string.Join(" ", commands.Skip(1)); + if (fileName.Contains("../")) + { + DebugConsole.ThrowError("Illegal symbols in filename (../)"); + return; + } + Submarine.SaveCurrent("Content/SavedMaps/" + fileName +".gz"); NewMessage("map saved", Color.Green); break; case "loadmap": diff --git a/Subsurface/Source/Screens/MainMenu.cs b/Subsurface/Source/Screens/MainMenu.cs index 8ea5324b3..7383741ff 100644 --- a/Subsurface/Source/Screens/MainMenu.cs +++ b/Subsurface/Source/Screens/MainMenu.cs @@ -148,7 +148,7 @@ namespace Subsurface new GUITextBlock(new Rectangle(0, 0, 0, 30), "Join Server", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); - new GUITextBlock(new Rectangle(0, 30, 0, 30), "Name:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); + new GUITextBlock(new Rectangle(0, 30, 0, 30), "Your Name:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); clientNameBox = new GUITextBox(new Rectangle(0, 60, 200, 30), Color.White, Color.Black, Alignment.CenterX, Alignment.CenterX, null, menuTabs[(int)Tabs.JoinServer]); new GUITextBlock(new Rectangle(0, 100, 0, 30), "Server IP:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.JoinServer]); @@ -164,7 +164,7 @@ namespace Subsurface new GUITextBlock(new Rectangle(0, 0, 0, 30), "Host Server", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.HostServer]); - new GUITextBlock(new Rectangle(0, 30, 0, 30), "Name:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.HostServer]); + new GUITextBlock(new Rectangle(0, 30, 0, 30), "Server Name:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.HostServer]); serverNameBox = new GUITextBox(new Rectangle(0, 60, 200, 30), Color.White, Color.Black, Alignment.CenterX, Alignment.CenterX, null, menuTabs[(int)Tabs.HostServer]); new GUITextBlock(new Rectangle(0, 100, 0, 30), "Server port:", GUI.style, Alignment.CenterX, Alignment.CenterX, menuTabs[(int)Tabs.HostServer]); diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs index 7324cebc4..e70fef24d 100644 --- a/Subsurface/Source/Screens/NetLobbyScreen.cs +++ b/Subsurface/Source/Screens/NetLobbyScreen.cs @@ -149,7 +149,7 @@ namespace Subsurface int columnX = 0; new GUITextBlock(new Rectangle(columnX, 120, columnWidth, 30), "Selected submarine:", GUI.style, infoFrame); - subList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, 200), Color.White, GUI.style, infoFrame); + subList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, infoFrame.Rect.Height - 150 - 80), Color.White, GUI.style, infoFrame); subList.OnSelected = SelectMap; if (Submarine.SavedSubmarines.Count > 0) @@ -176,7 +176,7 @@ namespace Subsurface //gamemode ------------------------------------------------------------------ new GUITextBlock(new Rectangle(columnX, 120, 0, 30), "Selected game mode: ", GUI.style, infoFrame); - modeList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, 200), GUI.style, infoFrame); + modeList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, infoFrame.Rect.Height - 150 - 80), GUI.style, infoFrame); foreach (GameModePreset mode in GameModePreset.list) { @@ -297,11 +297,11 @@ namespace Subsurface GUITextBlock jobText = new GUITextBlock(new Rectangle(0,0,0,20), job.Name, GUI.style, Alignment.Left, Alignment.Right, jobList); jobText.UserData = job; - GUIButton upButton = new GUIButton(new Rectangle(0, 0, 20, 20), "u", GUI.style, jobText); + GUIButton upButton = new GUIButton(new Rectangle(0, 0, 15, 15), "u", GUI.style, jobText); upButton.UserData = -1; upButton.OnClicked += ChangeJobPreference; - GUIButton downButton = new GUIButton(new Rectangle(25, 0, 20, 20), "d", GUI.style, jobText); + GUIButton downButton = new GUIButton(new Rectangle(25, 0, 15, 15), "d", GUI.style, jobText); downButton.UserData = 1; downButton.OnClicked += ChangeJobPreference; } diff --git a/Subsurface/Subsurface.csproj b/Subsurface/Subsurface.csproj index 11e83d44d..25c8a0204 100644 --- a/Subsurface/Subsurface.csproj +++ b/Subsurface/Subsurface.csproj @@ -234,6 +234,9 @@ + + PreserveNewest + PreserveNewest diff --git a/Subsurface/changelog.txt b/Subsurface/changelog.txt new file mode 100644 index 000000000..61b893645 --- /dev/null +++ b/Subsurface/changelog.txt @@ -0,0 +1,33 @@ + +--------------------------------------------------------------------------------------------------------- +v0.1.1 +--------------------------------------------------------------------------------------------------------- + +Multiplayer: + - player names are shown + - assigning jobs and selecting job preferences works now (jobs are assigned when the round starts) + - a menu that shows the crew members and their jobs and skills + - reduced lag spikes + - fixed a bug that caused disconnected players to stay in the player list + - server admin can see which player is the traitor + +Items: + - plasma cutter / welding tool bugfixes and some light & sound effects + - stun grenades, detonators and c4 blocks work now + - captain's uniform + - items can be placed inside railgun shells (explosives for example) + - buttons can be attached and detached + - on-screen message when trying to use a button without the right ID card + - wire sprites don't overlap and "flicker" on top of each other anymore + - trying to set the color of a lightcomponent to an invalid value doesn't crash the game anymore + +Submarine: + - some signs on the walls of Aegir to make navigation a bit easier + - moved the railgun and changed the rotation limits to increase it's area of effect while preventing + shooting at the windows + - fixed waypoint selection bug in submarine editor + - the ".gz" extension is automatically added when saving a map + +Other: + - decreased fall/impact damage + - dead characters can be looted diff --git a/Subsurface/readme.txt b/Subsurface/readme.txt index 716523cd8..58e9c8186 100644 --- a/Subsurface/readme.txt +++ b/Subsurface/readme.txt @@ -4,16 +4,16 @@ www.undertowgames.com/subsurface Copyright © Undertow Games 2015 Controls: -WASD - move -Shift - run -E - use/activate items and devices -Right click - aim with equipped item -Left click - use equipped item -Tab - select/deselect the chat box in multiplayer mode -F3 - open/close console +WASD - move +Shift - run +E - use/activate items and devices +Right click - aim with equipped item +Left click - use equipped item +Tab - select/deselect the chat box in multiplayer mode +F3 - open/close console See the wiki for more detailed info and instructions: -http://subsurface.wikia.com/wiki/Subsurface_Wiki +http://subsurface.gamepedia.com ------------------------------------------------------------------------ diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index 257584790bc71f8cebcf3d45441126b0c2f136a2..73e957d4233549ca86ec5f6f007454b364ce7917 100644 GIT binary patch delta 15156 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 Ay8r+H delta 11774 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 JGkibte*