diff --git a/Launcher2/LauncherMain.cs b/Launcher2/LauncherMain.cs index 41c25d3a5..3bff62bbc 100644 --- a/Launcher2/LauncherMain.cs +++ b/Launcher2/LauncherMain.cs @@ -168,7 +168,7 @@ namespace Launcher2 displayModeDD.SelectItem(settings.WindowMode); - displayModeDD.OnSelected = (guiComponent) => { settings.WindowMode = (WindowMode)guiComponent.UserData; return true; }; + displayModeDD.OnSelected = (guiComponent, userData) => { settings.WindowMode = (WindowMode)guiComponent.UserData; return true; }; //var fullScreenTick = new GUITickBox(new Rectangle(x,y+150,20,20), "Fullscreen", Alignment.TopLeft, guiRoot); //fullScreenTick.OnSelected = ToggleFullScreen; diff --git a/Subsurface/Source/Items/Components/DockingPort.cs b/Subsurface/Source/Items/Components/DockingPort.cs index e67c8725f..410c3a656 100644 --- a/Subsurface/Source/Items/Components/DockingPort.cs +++ b/Subsurface/Source/Items/Components/DockingPort.cs @@ -252,9 +252,10 @@ namespace Barotrauma.Items.Components wire.RemoveConnection(item); wire.RemoveConnection(dockingTarget.item); - powerConnection.AddLink(4, wire); + + powerConnection.TryAddLink(wire); wire.Connect(powerConnection, false); - recipient.AddLink(4, wire); + recipient.TryAddLink(wire); wire.Connect(recipient, false); } diff --git a/Subsurface/Source/Items/Components/Machines/Radar.cs b/Subsurface/Source/Items/Components/Machines/Radar.cs index 7c23f8b02..4db8c1f8e 100644 --- a/Subsurface/Source/Items/Components/Machines/Radar.cs +++ b/Subsurface/Source/Items/Components/Machines/Radar.cs @@ -282,7 +282,8 @@ namespace Barotrauma.Items.Components foreach (Submarine sub in Submarine.Loaded) { if (item.Submarine == sub || sub.DockedTo.Contains(item.Submarine)) continue; - + if (sub.WorldPosition.Y > Level.Loaded.Size.Y) continue; + DrawMarker(spriteBatch, sub.Name, sub.WorldPosition - item.WorldPosition, displayScale, center, (rect.Width * 0.45f)); } diff --git a/Subsurface/Source/Items/Components/Signal/Connection.cs b/Subsurface/Source/Items/Components/Signal/Connection.cs index 8325a5b8b..68138016d 100644 --- a/Subsurface/Source/Items/Components/Signal/Connection.cs +++ b/Subsurface/Source/Items/Components/Signal/Connection.cs @@ -140,10 +140,21 @@ namespace Barotrauma.Items.Components return -1; } + public void TryAddLink(Wire wire) + { + for (int i = 0; i < MaxLinked; i++) + { + if (Wires[i] == null) + { + Wires[i] = wire; + UpdateRecipients(); + return; + } + } + } + public void AddLink(int index, Wire wire) { - //linked[index] = connectedItem; - //recipient[index] = otherConnection; Wires[index] = wire; UpdateRecipients(); } @@ -459,6 +470,7 @@ namespace Barotrauma.Items.Components { if (wireId == null) return; + for (int i = 0; i < MaxLinked; i++) { if (wireId[i] == 0) continue; diff --git a/Subsurface/Source/Map/Levels/LevelRenderer.cs b/Subsurface/Source/Map/Levels/LevelRenderer.cs index 54c8b7870..22e4a433a 100644 --- a/Subsurface/Source/Map/Levels/LevelRenderer.cs +++ b/Subsurface/Source/Map/Levels/LevelRenderer.cs @@ -186,7 +186,9 @@ namespace Barotrauma Vector2.Zero, SpriteEffects.None, 0.0f); - GUI.DrawRectangle(spriteBatch, new Rectangle((int)(MathUtils.Round(pos.X, 512.0f)), (int)-GameMain.GameScreen.Cam.WorldView.Y, width, (int)(GameMain.GameScreen.Cam.WorldView.Y - level.Size.Y)), Color.Black, true ); + GUI.DrawRectangle(spriteBatch, + new Rectangle((int)(MathUtils.Round(pos.X, 512.0f)), (int)-GameMain.GameScreen.Cam.WorldView.Y, width, (int)(GameMain.GameScreen.Cam.WorldView.Y - level.Size.Y)+10), + Color.Black, true ); //background.DrawTiled(spriteBatch, // (backgroundPos.Y < 0) ? new Vector2(0.0f, -backgroundPos.Y) : Vector2.Zero, diff --git a/Subsurface/Source/Networking/RespawnManager.cs b/Subsurface/Source/Networking/RespawnManager.cs index c53e9dd14..84b9f887f 100644 --- a/Subsurface/Source/Networking/RespawnManager.cs +++ b/Subsurface/Source/Networking/RespawnManager.cs @@ -182,7 +182,7 @@ namespace Barotrauma.Networking private void UpdateTransporting(float deltaTime) { - //shuttleTransportTimer -= deltaTime; + shuttleTransportTimer -= deltaTime; if (shuttleReturnTimer + deltaTime > 15.0f && shuttleReturnTimer <= 15.0f && networkMember.Character != null && @@ -401,7 +401,8 @@ namespace Barotrauma.Networking var waypoints = WayPoint.SelectCrewSpawnPoints(characterInfos, respawnShuttle); 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 oxyPrefab = ItemPrefab.list.Find(ip => ip.Name == "Oxygen Tank") as ItemPrefab; + ItemPrefab scooterPrefab = ItemPrefab.list.Find(ip => ip.Name == "Underwater Scooter") as ItemPrefab; var cargoSp = WayPoint.WayPointList.Find(wp => wp.Submarine == respawnShuttle && wp.SpawnType == SpawnType.Cargo); @@ -428,25 +429,25 @@ namespace Barotrauma.Networking { Vector2 pos = cargoSp == null ? character.Position : cargoSp.Position; - var divingSuit = new Item(divingSuitPrefab, pos, respawnShuttle); - var oxyTank = new Item(oxyPrefab, pos, respawnShuttle); + 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); } - character.GiveJobItems(waypoints[i]); - GameMain.GameSession.CrewManager.characters.Add(character); } - server.SendRespawnManagerMsg(spawnedCharacters, spawnedItems); } diff --git a/Subsurface/Source/Screens/EditMapScreen.cs b/Subsurface/Source/Screens/EditMapScreen.cs index 5d267449c..10cd40566 100644 --- a/Subsurface/Source/Screens/EditMapScreen.cs +++ b/Subsurface/Source/Screens/EditMapScreen.cs @@ -465,6 +465,7 @@ namespace Barotrauma { var shuttleText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "Shuttle", GUI.Style, Alignment.Left, Alignment.CenterY | Alignment.Right, textBlock, false, GUI.SmallFont); shuttleText.TextColor = textBlock.TextColor * 0.8f; + shuttleText.ToolTip = textBlock.ToolTip; } } diff --git a/Subsurface/Source/Screens/MainMenuScreen.cs b/Subsurface/Source/Screens/MainMenuScreen.cs index 15512548f..b51b1b2a0 100644 --- a/Subsurface/Source/Screens/MainMenuScreen.cs +++ b/Subsurface/Source/Screens/MainMenuScreen.cs @@ -112,6 +112,7 @@ namespace Barotrauma var shuttleText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "Shuttle", GUI.Style, Alignment.Left, Alignment.CenterY | Alignment.Right, textBlock, false, GUI.SmallFont); shuttleText.TextColor = textBlock.TextColor * 0.8f; + shuttleText.ToolTip = textBlock.ToolTip; } } if (Submarine.SavedSubmarines.Count > 0) subList.Select(Submarine.SavedSubmarines[0]); diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs index a5ecaaa8d..b65822043 100644 --- a/Subsurface/Source/Screens/NetLobbyScreen.cs +++ b/Subsurface/Source/Screens/NetLobbyScreen.cs @@ -687,11 +687,11 @@ namespace Barotrauma } } - if (sub.HasTag(SubmarineTag.Shuttle)) { var shuttleText = new GUITextBlock(new Rectangle(0, 0, 0, 25), "Shuttle", GUI.Style, Alignment.Left, Alignment.CenterY | Alignment.Right, subTextBlock, false, GUI.SmallFont); shuttleText.TextColor = subTextBlock.TextColor * 0.8f; + shuttleText.ToolTip = subTextBlock.ToolTip; } }