From 325bf0c66b144e821f921975df008a57c1adb96e Mon Sep 17 00:00:00 2001 From: Regalis11 Date: Fri, 1 Jan 2016 22:24:47 +0200 Subject: [PATCH] WIP item grouping in store screen, endworm event --- .vs/Subsurface_Solution/v14/.suo | Bin 750592 -> 773120 bytes Subsurface/Content/InfoTexts.xml | 2 +- Subsurface/Content/Missions.xml | 13 +++++- Subsurface/Content/randomevents.xml | 8 ++++ .../Source/Characters/Animation/Ragdoll.cs | 12 +++--- Subsurface/Source/Characters/CharacterHUD.cs | 26 +++++++----- Subsurface/Source/GUI/GUI.cs | 32 ++++++++++----- Subsurface/Source/Screens/LobbyScreen.cs | 38 ++++++++++++++---- 8 files changed, 94 insertions(+), 37 deletions(-) diff --git a/.vs/Subsurface_Solution/v14/.suo b/.vs/Subsurface_Solution/v14/.suo index 4eb89efd5db3d5d6afb00107fe719f5439d16e69..15cdce81cec7d2200e66996bedf326a01bda83fd 100644 GIT binary patch delta 11671 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 NrCP4_@MPKo{tI)i<$eGF delta 12854 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¦zAp_WzEmcam*X$Fw>5*hg+b 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 BCldew diff --git a/Subsurface/Content/InfoTexts.xml b/Subsurface/Content/InfoTexts.xml index f22898e21..5b0635aa3 100644 --- a/Subsurface/Content/InfoTexts.xml +++ b/Subsurface/Content/InfoTexts.xml @@ -16,7 +16,7 @@ You have bled out. You have drowned. You have suffocated. - You have been crushed by water pressure. + You have been crushed by water pressure. You have burned to death. \ No newline at end of file diff --git a/Subsurface/Content/Missions.xml b/Subsurface/Content/Missions.xml index 8d15fabde..811751a17 100644 --- a/Subsurface/Content/Missions.xml +++ b/Subsurface/Content/Missions.xml @@ -46,13 +46,24 @@ + + + + \ No newline at end of file diff --git a/Subsurface/Content/randomevents.xml b/Subsurface/Content/randomevents.xml index 653076aa8..660868cdb 100644 --- a/Subsurface/Content/randomevents.xml +++ b/Subsurface/Content/randomevents.xml @@ -33,5 +33,13 @@ difficulty="5" minamount="1" maxamount="1" musictype="monster"/> + + \ No newline at end of file diff --git a/Subsurface/Source/Characters/Animation/Ragdoll.cs b/Subsurface/Source/Characters/Animation/Ragdoll.cs index c07551fce..85bf2a188 100644 --- a/Subsurface/Source/Characters/Animation/Ragdoll.cs +++ b/Subsurface/Source/Characters/Animation/Ragdoll.cs @@ -340,17 +340,17 @@ namespace Barotrauma } } - if (targetMovement.Y >= 0.0f && lowestLimb.SimPosition.Y > ConvertUnits.ToSimUnits(structure.Rect.Y - Submarine.GridSize.Y * 8.0f)) - { - //stairs = null; - //return false; - } + //if (targetMovement.Y >= 0.0f && lowestLimb.SimPosition.Y > ConvertUnits.ToSimUnits(structure.Rect.Y - Submarine.GridSize.Y * 8.0f)) + //{ + // //stairs = null; + // //return false; + //} Limb limb = f1.Body.UserData as Limb; if (limb != null)// && (limb.type == LimbType.LeftFoot || limb.type == LimbType.RightFoot)) { if (contact.Manifold.LocalNormal.Y >= 0.0f) - { + { if (limb.SimPosition.Y < lowestLimb.SimPosition.Y+0.2f) { stairs = structure; diff --git a/Subsurface/Source/Characters/CharacterHUD.cs b/Subsurface/Source/Characters/CharacterHUD.cs index 6ffbf8868..ce05b96c6 100644 --- a/Subsurface/Source/Characters/CharacterHUD.cs +++ b/Subsurface/Source/Characters/CharacterHUD.cs @@ -58,11 +58,12 @@ namespace Barotrauma startPos = cam.WorldToScreen(startPos); Vector2 textPos = startPos; + textPos -= new Vector2(GUI.Font.MeasureString(character.ClosestCharacter.Info.Name).X / 2, 20); - float stringWidth = GUI.Font.MeasureString(character.ClosestCharacter.Info.Name).X; - textPos -= new Vector2(stringWidth / 2, 20); - spriteBatch.DrawString(GUI.Font, character.ClosestCharacter.Info.Name, textPos, Color.Black); - spriteBatch.DrawString(GUI.Font, character.ClosestCharacter.Info.Name, textPos + new Vector2(1, -1), Color.Orange); + GUI.DrawString(spriteBatch, textPos, character.ClosestCharacter.Info.Name, Color.Orange, Color.Black, 2); + + //spriteBatch.DrawString(GUI.Font, character.ClosestCharacter.Info.Name, textPos, Color.Black); + //spriteBatch.DrawString(GUI.Font, character.ClosestCharacter.Info.Name, textPos + new Vector2(1, -1), Color.Orange); } else if (character.SelectedCharacter == null && character.ClosestItem != null && character.SelectedConstruction == null) { @@ -71,19 +72,24 @@ namespace Barotrauma startPos = cam.WorldToScreen(startPos); Vector2 textPos = startPos; + textPos -= new Vector2(GUI.Font.MeasureString(character.ClosestItem.Name).X / 2, 20); + //spriteBatch.DrawString(GUI.Font, character.ClosestItem.Prefab.Name, textPos, Color.Black); + //GUI.DrawRectangle(spriteBatch, textPos-Vector2.One*2.0f, textSize+Vector2.One*4.0f, Color.Black * 0.7f, true); + //spriteBatch.DrawString(GUI.Font, character.ClosestItem.Prefab.Name, textPos, Color.Orange); + + GUI.DrawString(spriteBatch, textPos, character.ClosestItem.Name, Color.Orange, Color.Black * 0.7f, 2); - float stringWidth = GUI.Font.MeasureString(character.ClosestItem.Prefab.Name).X; - textPos -= new Vector2(stringWidth / 2, 20); - spriteBatch.DrawString(GUI.Font, character.ClosestItem.Prefab.Name, textPos, Color.Black); - spriteBatch.DrawString(GUI.Font, character.ClosestItem.Prefab.Name, textPos + new Vector2(1, -1), Color.Orange); textPos.Y += 50.0f; foreach (ColoredText coloredText in character.ClosestItem.GetHUDTexts(character)) { textPos.X = startPos.X - GUI.Font.MeasureString(coloredText.Text).X / 2; - spriteBatch.DrawString(GUI.Font, coloredText.Text, textPos, Color.Black); - spriteBatch.DrawString(GUI.Font, coloredText.Text, textPos + new Vector2(1, -1), coloredText.Color); + GUI.DrawString(spriteBatch, textPos, coloredText.Text, coloredText.Color, Color.Black*0.7f, 2); + + //spriteBatch.DrawString(GUI.Font, coloredText.Text, textPos, Color.Black); + //GUI.DrawRectangle(spriteBatch, textPos - Vector2.One * 2.0f, textSize + Vector2.One * 4.0f, Color.Black * 0.7f, true); + //spriteBatch.DrawString(GUI.Font, coloredText.Text, textPos, coloredText.Color); textPos.Y += 25; } diff --git a/Subsurface/Source/GUI/GUI.cs b/Subsurface/Source/GUI/GUI.cs index 45bc4b489..41bb503cb 100644 --- a/Subsurface/Source/GUI/GUI.cs +++ b/Subsurface/Source/GUI/GUI.cs @@ -15,7 +15,7 @@ namespace Barotrauma Center = (CenterX | CenterY), BottomRight = (Bottom | Right), BottomLeft = (Bottom | Left), BottomCenter = (CenterX | Bottom) } - + public class GUI { public static GUIStyle Style; @@ -42,7 +42,7 @@ namespace Barotrauma GUI.SmallFont = ToolBox.TryLoadFont("SmallFont", content); GUI.LargeFont = ToolBox.TryLoadFont("LargeFont", content); - cursor = new Sprite("Content/UI/cursor.png" ,Vector2.Zero); + cursor = new Sprite("Content/UI/cursor.png", Vector2.Zero); } public static bool PauseMenuOpen @@ -63,7 +63,7 @@ namespace Barotrauma // create 1x1 texture for line drawing t = new Texture2D(graphicsDevice, 1, 1); t.SetData(new Color[] { Color.White });// fill the texture with white - + Style = new GUIStyle("Content/UI/style.xml"); } @@ -75,18 +75,18 @@ namespace Barotrauma if (pauseMenuOpen) { - pauseMenu = new GUIFrame(new Rectangle(0,0,200,300), null, Alignment.Center, Style); + pauseMenu = new GUIFrame(new Rectangle(0, 0, 200, 300), null, Alignment.Center, Style); int y = 0; var button = new GUIButton(new Rectangle(0, y, 0, 30), "Resume", Alignment.CenterX, GUI.Style, pauseMenu); button.OnClicked = TogglePauseMenu; y += 60; - - if (Screen.Selected == GameMain.GameScreen && GameMain.GameSession !=null) + + if (Screen.Selected == GameMain.GameScreen && GameMain.GameSession != null) { SinglePlayerMode spMode = GameMain.GameSession.gameMode as SinglePlayerMode; - if (spMode!=null) + if (spMode != null) { button = new GUIButton(new Rectangle(0, y, 0, 30), "Load previous", Alignment.CenterX, GUI.Style, pauseMenu); button.OnClicked += TogglePauseMenu; @@ -95,7 +95,7 @@ namespace Barotrauma y += 60; } } - + if (Screen.Selected == GameMain.LobbyScreen) { SinglePlayerMode spMode = GameMain.GameSession.gameMode as SinglePlayerMode; @@ -111,7 +111,7 @@ namespace Barotrauma } - button = new GUIButton(new Rectangle(0, y, 0, 30), "Quit", Alignment.CenterX, GUI.Style, pauseMenu); + button = new GUIButton(new Rectangle(0, y, 0, 30), "Quit", Alignment.CenterX, GUI.Style, pauseMenu); button.OnClicked += QuitClicked; button.OnClicked += TogglePauseMenu; } @@ -132,7 +132,7 @@ namespace Barotrauma SaveUtil.SaveGame(GameMain.GameSession.SaveFile); } - if (GameMain.NetworkMember!=null) + if (GameMain.NetworkMember != null) { GameMain.NetworkMember.Disconnect(); GameMain.NetworkMember = null; @@ -149,7 +149,7 @@ namespace Barotrauma Vector2 edge = end - start; // calculate angle to rotate line float angle = (float)Math.Atan2(edge.Y, edge.X); - + sb.Draw(t, new Rectangle(// rectangle defines shape of line and position of start of line (int)start.X, @@ -163,6 +163,16 @@ namespace Barotrauma SpriteEffects.None, depth); } + + public static void DrawString(SpriteBatch sb, Vector2 pos, string text, Color color, Color? backgroundColor=null, int backgroundPadding=0, SpriteFont font = null) + { + if (font == null) font = GUI.Font; + sb.DrawString(font, text, pos, color); + if (backgroundColor == null) return; + + Vector2 textSize = font.MeasureString(text); + DrawRectangle(sb, pos - Vector2.One*backgroundPadding, textSize + Vector2.One * 2.0f * backgroundPadding, (Color)backgroundColor, true); + } public static void DrawRectangle(SpriteBatch sb, Vector2 start, Vector2 size, Color clr, bool isFilled = false, float depth = 0.0f) { diff --git a/Subsurface/Source/Screens/LobbyScreen.cs b/Subsurface/Source/Screens/LobbyScreen.cs index 1e0d3d971..f0285b0db 100644 --- a/Subsurface/Source/Screens/LobbyScreen.cs +++ b/Subsurface/Source/Screens/LobbyScreen.cs @@ -19,7 +19,8 @@ namespace Barotrauma private GUIListBox characterList, hireList; - private GUIListBox selectedItemList, itemList; + private GUIListBox selectedItemList; + private GUIListBox[] storeItemLists; private SinglePlayerMode gameMode; @@ -135,18 +136,27 @@ namespace Barotrauma var costText = new GUITextBlock(new Rectangle(0, 0, 100, 25), "Cost: ", GUI.Style, Alignment.BottomLeft, Alignment.TopLeft, bottomPanel[(int)PanelTab.Store]); costText.TextGetter = CostTextGetter; - buyButton = new GUIButton(new Rectangle(sellColumnWidth+20, 0, 100, 25), "Buy", Alignment.Bottom, GUI.Style, bottomPanel[(int)PanelTab.Store]); + buyButton = new GUIButton(new Rectangle(sellColumnWidth + 20, 0, 100, 25), "Buy", Alignment.Bottom, GUI.Style, bottomPanel[(int)PanelTab.Store]); buyButton.OnClicked = BuyItems; - itemList = new GUIListBox(new Rectangle(0, 0, sellColumnWidth, 400), Color.White * 0.7f, Alignment.TopRight, GUI.Style, bottomPanel[(int)PanelTab.Store]); - itemList.OnSelected = SelectItem; - - foreach (MapEntityPrefab ep in MapEntityPrefab.list) + + storeItemLists = new GUIListBox[Enum.GetValues(typeof(MapEntityCategory)).Length]; + + foreach (MapEntityCategory category in Enum.GetValues(typeof(MapEntityCategory))) { - if (ep.Price == 0) continue; + storeItemLists[(int)category] = new GUIListBox(new Rectangle(0, 0, sellColumnWidth, 400), Color.White * 0.7f, Alignment.TopRight, GUI.Style, bottomPanel[(int)PanelTab.Store]); + storeItemLists[(int)category].OnSelected = SelectItem; + storeItemLists[(int)category].UserData = category; + bottomPanel[(int)PanelTab.Store].RemoveChild(storeItemLists[(int)category]); - CreateItemFrame(ep, itemList); + foreach (MapEntityPrefab ep in MapEntityPrefab.list) + { + if (ep.Price == 0 || ep.Category != category) continue; + + CreateItemFrame(ep, storeItemLists[(int)category]); + } } + } public override void Select() @@ -413,6 +423,18 @@ namespace Barotrauma return true; } + private bool SelectItemCategory(GUIButton button, object selection) + { + + if (!(selection is MapEntityCategory)) return false; + var existingList = bottomPanel[(int)PanelTab.Store].children.Find(c => c.UserData is MapEntityCategory); + if (existingList != null) bottomPanel[(int)PanelTab.Store].RemoveChild(existingList); + + bottomPanel[(int)PanelTab.Store].AddChild(storeItemLists[(int)selection]); + + return true; + } + private string GetMoney() { return "Money: " + ((GameMain.GameSession == null) ? "0" : string.Format(CultureInfo.InvariantCulture, "{0:N0}", CrewManager.Money)) + " credits";