diff --git a/Barotrauma/BarotraumaClient/LinuxClient.csproj b/Barotrauma/BarotraumaClient/LinuxClient.csproj
index f0d80d9ee..411dec235 100644
--- a/Barotrauma/BarotraumaClient/LinuxClient.csproj
+++ b/Barotrauma/BarotraumaClient/LinuxClient.csproj
@@ -192,6 +192,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
diff --git a/Barotrauma/BarotraumaClient/Properties/AssemblyInfo.cs b/Barotrauma/BarotraumaClient/Properties/AssemblyInfo.cs
index 5e2918897..b67af8559 100644
--- a/Barotrauma/BarotraumaClient/Properties/AssemblyInfo.cs
+++ b/Barotrauma/BarotraumaClient/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.8.10.0")]
-[assembly: AssemblyFileVersion("0.8.10.0")]
+[assembly: AssemblyVersion("0.8.9.10")]
+[assembly: AssemblyFileVersion("0.8.9.10")]
diff --git a/Barotrauma/BarotraumaClient/Source/Fonts/ScalableFont.cs b/Barotrauma/BarotraumaClient/Source/Fonts/ScalableFont.cs
index 7a63b7cb6..132950a07 100644
--- a/Barotrauma/BarotraumaClient/Source/Fonts/ScalableFont.cs
+++ b/Barotrauma/BarotraumaClient/Source/Fonts/ScalableFont.cs
@@ -279,7 +279,7 @@ namespace Barotrauma
if (text[i] == '\n')
{
currentLineX = 0.0f;
- retVal.Y += baseHeight * 1.8f;
+ retVal.Y += baseHeight * 18 / 10;
continue;
}
uint charIndex = text[i];
diff --git a/Barotrauma/BarotraumaClient/Source/GUI/GUIMessageBox.cs b/Barotrauma/BarotraumaClient/Source/GUI/GUIMessageBox.cs
index 0c091c992..ec9c026e6 100644
--- a/Barotrauma/BarotraumaClient/Source/GUI/GUIMessageBox.cs
+++ b/Barotrauma/BarotraumaClient/Source/GUI/GUIMessageBox.cs
@@ -41,22 +41,33 @@ namespace Barotrauma
InnerFrame = new GUIFrame(new RectTransform(new Point(width, height), RectTransform, Anchor.Center) { IsFixedSize = false }, style: null);
GUI.Style.Apply(InnerFrame, "", this);
+ InnerFrame = new GUIFrame(new RectTransform(new Point(width, height), RectTransform, Anchor.Center) { IsFixedSize = false }, style: null);
+ GUI.Style.Apply(InnerFrame, "", this);
+
Content = new GUILayoutGroup(new RectTransform(new Vector2(0.9f, 0.85f), InnerFrame.RectTransform, Anchor.Center)) { AbsoluteSpacing = 5 };
Tag = tag;
-
+
+ if (height == 0)
+ {
+ string wrappedText = ToolBox.WrapText(text, Content.Rect.Width, GUI.Font);
+ string[] lines = wrappedText.Split('\n');
+ foreach (string line in lines)
+ {
+ height += (int)GUI.Font.MeasureString(line).Y;
+ }
+ height += string.IsNullOrWhiteSpace(headerText) ? 220 : 220 - headerHeight;
+ }
+ InnerFrame.RectTransform.NonScaledSize = new Point(InnerFrame.Rect.Width, height);
+
Header = new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.0f), Content.RectTransform),
headerText, textAlignment: Alignment.Center, wrap: true);
- GUI.Style.Apply(Header, "", this);
- Header.RectTransform.MinSize = new Point(0, Header.Rect.Height);
+ GUI.Style.Apply(Header, "", this);
- if (!string.IsNullOrWhiteSpace(text))
+ if (height == 0)
{
Text = new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.0f), Content.RectTransform),
text, textAlignment: textAlignment, wrap: true);
GUI.Style.Apply(Text, "", this);
- Text.RectTransform.NonScaledSize = Text.RectTransform.MinSize = Text.RectTransform.MaxSize =
- new Point(Text.Rect.Width, Text.Rect.Height);
- Text.RectTransform.IsFixedSize = true;
}
var buttonContainer = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 0.15f), Content.RectTransform, Anchor.BottomCenter, maxSize: new Point(1000, 50)),
@@ -65,22 +76,7 @@ namespace Barotrauma
AbsoluteSpacing = 5,
IgnoreLayoutGroups = true
};
- buttonContainer.RectTransform.NonScaledSize = buttonContainer.RectTransform.MinSize = buttonContainer.RectTransform.MaxSize =
- new Point(buttonContainer.Rect.Width, (int)(30 * GUI.Scale));
- buttonContainer.RectTransform.IsFixedSize = true;
-
- if (height == 0)
- {
- height += Header.Rect.Height + Content.AbsoluteSpacing;
- height += (Text == null ? 0 : Text.Rect.Height) + Content.AbsoluteSpacing;
- height += buttonContainer.Rect.Height;
-
- InnerFrame.RectTransform.NonScaledSize =
- new Point(InnerFrame.Rect.Width, (int)Math.Max(height / Content.RectTransform.RelativeSize.Y, height + 50));
- Content.RectTransform.NonScaledSize =
- new Point(Content.Rect.Width, height);
- }
-
+
Buttons = new List(buttons.Length);
for (int i = 0; i < buttons.Length; i++)
{
diff --git a/Barotrauma/BarotraumaClient/Source/GameMain.cs b/Barotrauma/BarotraumaClient/Source/GameMain.cs
index b2e3fa53a..98c572132 100644
--- a/Barotrauma/BarotraumaClient/Source/GameMain.cs
+++ b/Barotrauma/BarotraumaClient/Source/GameMain.cs
@@ -717,7 +717,7 @@ namespace Barotrauma
PerformanceCounter.DrawTimeGraph.Update(sw.ElapsedTicks / (float)TimeSpan.TicksPerMillisecond);
}
- public void ShowCampaignDisclaimer(Action onContinue)
+ public void ShowCampaignDisclaimer()
{
var msgBox = new GUIMessageBox(TextManager.Get("CampaignDisclaimerTitle"), TextManager.Get("CampaignDisclaimerText"),
new string[] { TextManager.Get("CampaignRoadMapTitle"), TextManager.Get("OK") });
@@ -726,15 +726,13 @@ namespace Barotrauma
{
var roadMap = new GUIMessageBox(TextManager.Get("CampaignRoadMapTitle"), TextManager.Get("CampaignRoadMapText"),
new string[] { TextManager.Get("Back"), TextManager.Get("OK") });
+ roadMap.Buttons[0].OnClicked = (_, __) => { ShowCampaignDisclaimer(); return true; };
roadMap.Buttons[0].OnClicked += roadMap.Close;
- roadMap.Buttons[0].OnClicked += (_, __) => { ShowCampaignDisclaimer(onContinue); return true; };
roadMap.Buttons[1].OnClicked += roadMap.Close;
- roadMap.Buttons[1].OnClicked += (_, __) => { onContinue?.Invoke(); return true; };
return true;
};
msgBox.Buttons[0].OnClicked += msgBox.Close;
msgBox.Buttons[1].OnClicked += msgBox.Close;
- msgBox.Buttons[1].OnClicked += (_, __) => { onContinue?.Invoke(); return true; };
Config.CampaignDisclaimerShown = true;
Config.SaveNewPlayerConfig();
@@ -744,13 +742,12 @@ namespace Barotrauma
{
var msgBox = new GUIMessageBox(TextManager.Get("EditorDisclaimerTitle"), TextManager.Get("EditorDisclaimerText"));
var linkHolder = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 0.25f), msgBox.Content.RectTransform)) { Stretch = true, RelativeSpacing = 0.025f };
- linkHolder.RectTransform.MaxSize = new Point(int.MaxValue, linkHolder.Rect.Height);
List> links = new List>()
- {
- new Pair(TextManager.Get("EditorDisclaimerWikiLink"),TextManager.Get("EditorDisclaimerWikiUrl")),
- new Pair(TextManager.Get("EditorDisclaimerDiscordLink"),TextManager.Get("EditorDisclaimerDiscordUrl")),
- new Pair(TextManager.Get("EditorDisclaimerForumLink"),TextManager.Get("EditorDisclaimerForumUrl")),
- };
+ {
+ new Pair(TextManager.Get("EditorDisclaimerWikiLink"),TextManager.Get("EditorDisclaimerWikiUrl")),
+ new Pair(TextManager.Get("EditorDisclaimerDiscordLink"),TextManager.Get("EditorDisclaimerDiscordUrl")),
+ new Pair(TextManager.Get("EditorDisclaimerForumLink"),TextManager.Get("EditorDisclaimerForumUrl")),
+ };
foreach (var link in links)
{
new GUIButton(new RectTransform(new Vector2(1.0f, 0.2f), linkHolder.RectTransform), link.First, style: "MainMenuGUIButton", textAlignment: Alignment.Left)
@@ -770,6 +767,19 @@ namespace Barotrauma
Config.SaveNewPlayerConfig();
}
+ // ToDo: Move texts/links to localization, when possible.
+ public void ShowBugReporter()
+ {
+ var msgBox = new GUIMessageBox("", "");
+ var linkHolder = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 0.5f), msgBox.Content.RectTransform)) { Stretch = true, RelativeSpacing = 0.05f };
+
+ msgBox.Text.RectTransform.MaxSize = new Point(int.MaxValue, msgBox.Text.Rect.Height);
+ linkHolder.RectTransform.MaxSize = new Point(int.MaxValue, linkHolder.Rect.Height);
+ msgBox.RectTransform.MinSize = new Point(0, msgBox.Rect.Height + linkHolder.Rect.Height + msgBox.Buttons.First().Rect.Height * 8);
+ Config.EditorDisclaimerShown = true;
+ Config.SaveNewPlayerConfig();
+ }
+
// ToDo: Move texts/links to localization, when possible.
public void ShowBugReporter()
{
diff --git a/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/Tutorials/Tutorial.cs b/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/Tutorials/Tutorial.cs
index 0eb1d1d0c..73e202639 100644
--- a/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/Tutorials/Tutorial.cs
+++ b/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/Tutorials/Tutorial.cs
@@ -382,12 +382,14 @@ namespace Barotrauma.Tutorials
};
string objectiveText = TextManager.ParseInputTypes(objectiveTranslated);
- int yOffset = (int)((GUI.ObjectiveNameFont.MeasureString(objectiveText).Y / 2f + 5));
+ int yOffset = (int)((GUI.ObjectiveNameFont.MeasureString(objectiveText).Y / 2f + 5) * GUI.Scale);
segment.LinkedTitle = new GUITextBlock(new RectTransform(new Point((int)GUI.ObjectiveNameFont.MeasureString(objectiveText).X, yOffset), segment.ReplayButton.RectTransform, Anchor.CenterRight, Pivot.BottomRight) { AbsoluteOffset = new Point((int)(-10 * GUI.Scale), 0) },
objectiveText, textColor: Color.White, font: GUI.ObjectiveTitleFont, textAlignment: Alignment.CenterRight);
segment.LinkedText = new GUITextBlock(new RectTransform(new Point(replayButtonSize.X, yOffset), segment.ReplayButton.RectTransform, Anchor.Center, Pivot.TopCenter) { AbsoluteOffset = new Point((int)(10 * GUI.Scale), 0) },
TextManager.ParseInputTypes(segment.Objective), textColor: new Color(4, 180, 108), font: GUI.ObjectiveNameFont, textAlignment: Alignment.CenterRight);
-
+
+ segment.LinkedTitle.TextScale = segment.LinkedText.TextScale = GUI.Scale;
+
segment.LinkedTitle.Color = segment.LinkedTitle.HoverColor = segment.LinkedTitle.PressedColor = segment.LinkedTitle.SelectedColor = Color.Transparent;
segment.LinkedText.Color = segment.LinkedText.HoverColor = segment.LinkedText.PressedColor = segment.LinkedText.SelectedColor = Color.Transparent;
segment.ReplayButton.Color = segment.ReplayButton.HoverColor = segment.ReplayButton.PressedColor = segment.ReplayButton.SelectedColor = Color.Transparent;
@@ -482,10 +484,11 @@ namespace Barotrauma.Tutorials
protected GUIComponent CreateInfoFrame(string title, string text, int width = 300, int height = 80, string anchorStr = "", bool hasButton = false, Action callback = null, Action showVideo = null)
{
if (hasButton) height += 60;
-
- string wrappedText = ToolBox.WrapText(text, width, GUI.Font);
- height += (int)(GUI.Font.MeasureString(wrappedText).Y + 50);
+ float textScale = GUI.Scale;
+ string wrappedText = ToolBox.WrapText(text, width, GUI.Font, textScale);
+
+ height += (int)(GUI.Font.MeasureString(wrappedText).Y * textScale + 50);
if (title.Length > 0)
{
height += 35;
@@ -506,18 +509,17 @@ namespace Barotrauma.Tutorials
var infoContent = new GUILayoutGroup(new RectTransform(new Vector2(0.9f, 0.8f), infoBlock.RectTransform, Anchor.Center))
{
Stretch = true,
- AbsoluteSpacing = 5
+ RelativeSpacing = 0.02f
};
if (title.Length > 0)
{
- var titleBlock = new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.0f), infoContent.RectTransform),
+ var titleBlock = new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.3f), infoContent.RectTransform),
title, font: GUI.VideoTitleFont, textAlignment: Alignment.Center, textColor: new Color(253, 174, 0));
- titleBlock.RectTransform.IsFixedSize = true;
+ titleBlock.TextScale = textScale;
}
- var textBlock = new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.0f), infoContent.RectTransform), text, wrap: true);
- textBlock.RectTransform.IsFixedSize = true;
+ var textBlock = new GUITextBlock(new RectTransform(new Vector2(1.0f, 1.0f), infoContent.RectTransform), text, wrap: true);
infoBoxClosedCallback = callback;
@@ -528,7 +530,6 @@ namespace Barotrauma.Tutorials
Stretch = true,
RelativeSpacing = 0.1f
};
- buttonContainer.RectTransform.IsFixedSize = true;
if (showVideo != null)
{
@@ -550,8 +551,6 @@ namespace Barotrauma.Tutorials
};
}
- infoBlock.RectTransform.NonScaledSize = new Point(infoBlock.Rect.Width, (int)(infoContent.Children.Sum(c => c.Rect.Height + infoContent.AbsoluteSpacing) / infoContent.RectTransform.RelativeSize.Y));
-
GUI.PlayUISound(GUISoundType.UIMessage);
return background;
diff --git a/Barotrauma/BarotraumaClient/Source/Map/ItemAssemblyPrefab.cs b/Barotrauma/BarotraumaClient/Source/Map/ItemAssemblyPrefab.cs
index 02184babd..7c8bfc1e6 100644
--- a/Barotrauma/BarotraumaClient/Source/Map/ItemAssemblyPrefab.cs
+++ b/Barotrauma/BarotraumaClient/Source/Map/ItemAssemblyPrefab.cs
@@ -22,7 +22,7 @@ namespace Barotrauma
drawRect = new Rectangle(
(int)(drawRect.X * scale) + drawArea.Center.X, -((int)((drawRect.Y - drawRect.Height) * scale) + drawArea.Center.Y),
(int)(drawRect.Width * scale), (int)(drawRect.Height * scale));
- entity.First.DrawPlacing(spriteBatch, drawRect, entity.First.Scale * scale);
+ entity.First.DrawPlacing(spriteBatch, drawRect, scale);
}
}
@@ -34,7 +34,7 @@ namespace Barotrauma
{
Rectangle drawRect = entity.Second;
drawRect.Location += Submarine.MouseToWorldGrid(cam, Submarine.MainSub).ToPoint();
- entity.First.DrawPlacing(spriteBatch, drawRect, entity.First.Scale);
+ entity.First.DrawPlacing(spriteBatch, drawRect);
}
}
diff --git a/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs
index 94bb1bd2c..72130eaf9 100644
--- a/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs
+++ b/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs
@@ -397,12 +397,6 @@ namespace Barotrauma
switch (selectedTab)
{
case Tab.NewGame:
- if (!GameMain.Config.CampaignDisclaimerShown)
- {
- selectedTab = 0;
- GameMain.Instance.ShowCampaignDisclaimer(() => { SelectTab(null, Tab.NewGame); });
- return true;
- }
campaignSetupUI.CreateDefaultSaveName();
campaignSetupUI.RandomizeSeed();
campaignSetupUI.UpdateSubList(Submarine.SavedSubmarines);
@@ -421,12 +415,6 @@ namespace Barotrauma
case Tab.HostServer:
break;
case Tab.Tutorials:
- if (!GameMain.Config.CampaignDisclaimerShown)
- {
- selectedTab = 0;
- GameMain.Instance.ShowCampaignDisclaimer(() => { SelectTab(null, Tab.Tutorials); });
- return true;
- }
UpdateTutorialList();
break;
case Tab.CharacterEditor:
diff --git a/Barotrauma/BarotraumaClient/libvlc.so b/Barotrauma/BarotraumaClient/libvlc.so
new file mode 100644
index 000000000..220fee7d3
Binary files /dev/null and b/Barotrauma/BarotraumaClient/libvlc.so differ
diff --git a/Barotrauma/BarotraumaServer/Properties/AssemblyInfo.cs b/Barotrauma/BarotraumaServer/Properties/AssemblyInfo.cs
index 1c7c140ff..bbde03313 100644
--- a/Barotrauma/BarotraumaServer/Properties/AssemblyInfo.cs
+++ b/Barotrauma/BarotraumaServer/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.8.10.0")]
-[assembly: AssemblyFileVersion("0.8.10.0")]
+[assembly: AssemblyVersion("0.8.9.10")]
+[assembly: AssemblyFileVersion("0.8.9.10")]
diff --git a/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml b/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml
index 6cb28c845..c5985f21c 100644
--- a/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml
+++ b/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml
@@ -74,11 +74,14 @@
+
+
+
diff --git a/Barotrauma/BarotraumaShared/SharedContent.projitems b/Barotrauma/BarotraumaShared/SharedContent.projitems
index 0cfdcd61a..3bb1ba556 100644
--- a/Barotrauma/BarotraumaShared/SharedContent.projitems
+++ b/Barotrauma/BarotraumaShared/SharedContent.projitems
@@ -3332,7 +3332,7 @@
Never
- Never
+ PreserveNewest
PreserveNewest
diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/IndoorsSteeringManager.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/IndoorsSteeringManager.cs
index e264c0f05..2d3de2875 100644
--- a/Barotrauma/BarotraumaShared/Source/Characters/AI/IndoorsSteeringManager.cs
+++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/IndoorsSteeringManager.cs
@@ -224,7 +224,7 @@ namespace Barotrauma
}
//only humanoids can climb ladders
- if (!character.AnimController.InWater && character.AnimController is HumanoidAnimController && IsNextLadderSameAsCurrent)
+ if (character.AnimController is HumanoidAnimController && IsNextLadderSameAsCurrent)
{
if (character.SelectedConstruction != currentPath.CurrentNode.Ladders.Item &&
currentPath.CurrentNode.Ladders.Item.IsInsideTrigger(character.WorldPosition))
@@ -234,7 +234,7 @@ namespace Barotrauma
}
var collider = character.AnimController.Collider;
- if (character.IsClimbing && !character.AnimController.InWater)
+ if (character.IsClimbing)
{
Vector2 diff = currentPath.CurrentNode.SimPosition - pos;
bool nextLadderSameAsCurrent = IsNextLadderSameAsCurrent;
@@ -278,12 +278,6 @@ namespace Barotrauma
}
else if (character.AnimController.InWater)
{
- // If the character is underwater, we don't need the ladders anymore
- if (character.IsClimbing)
- {
- character.AnimController.Anim = AnimController.Animation.None;
- character.SelectedConstruction = null;
- }
if (Vector2.DistanceSquared(pos, currentPath.CurrentNode.SimPosition) < MathUtils.Pow(collider.radius * 3, 2))
{
currentPath.SkipToNextNode();
diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/RepairTool.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/RepairTool.cs
index 188d307c5..38953e28a 100644
--- a/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/RepairTool.cs
+++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Holdable/RepairTool.cs
@@ -293,35 +293,10 @@ namespace Barotrauma.Items.Components
//steer closer if almost in range
if (dist > Range)
{
- Vector2 standPos = new Vector2(Math.Sign(-fromItemToLeak.X), Math.Sign(-fromItemToLeak.Y)) / 2;
- if (!character.AnimController.InWater)
- {
- if (leak.IsHorizontal)
- {
- standPos.X *= 2;
- standPos.Y = 0;
- }
- else
- {
- standPos.X = 0;
- }
- }
- if (character.AIController.SteeringManager is IndoorsSteeringManager indoorSteering)
- {
- if (indoorSteering.CurrentPath != null && !indoorSteering.IsPathDirty && indoorSteering.CurrentPath.Unreachable)
- {
- Vector2 dir = Vector2.Normalize(standPos - character.WorldPosition);
- character.AIController.SteeringManager.SteeringManual(deltaTime, dir / 2);
- }
- else
- {
- character.AIController.SteeringManager.SteeringSeek(standPos);
- }
- }
- else
- {
- character.AIController.SteeringManager.SteeringSeek(standPos);
- }
+ Vector2 standPos = leak.IsHorizontal ? new Vector2(Math.Sign(-fromItemToLeak.X), 0.0f) : new Vector2(0.0f, Math.Sign(-fromItemToLeak.Y) * 0.5f);
+ standPos = leak.WorldPosition + standPos * Range;
+ Vector2 dir = Vector2.Normalize(standPos - character.WorldPosition);
+ character.AIController.SteeringManager.SteeringManual(deltaTime, dir / 2);
}
else
{
@@ -330,29 +305,30 @@ namespace Barotrauma.Items.Components
// Too close -> steer away
character.AIController.SteeringManager.SteeringManual(deltaTime, Vector2.Normalize(character.SimPosition - leak.SimPosition) / 2);
}
- else if (dist <= Range)
- {
- // In range
- character.AIController.SteeringManager.Reset();
- }
else
{
- return false;
+ character.AIController.SteeringManager.Reset();
}
}
+
sinTime += deltaTime;
character.CursorPosition = leak.Position + VectorExtensions.Forward(Item.body.TransformedRotation + (float)Math.Sin(sinTime), dist);
if (item.RequireAimToUse)
{
character.SetInput(InputType.Aim, false, true);
}
+
// Press the trigger only when the tool is approximately facing the target.
- var angle = VectorExtensions.Angle(VectorExtensions.Forward(item.body.TransformedRotation), fromItemToLeak);
- if (angle < MathHelper.PiOver4)
+ // If the character is climbing, ignore the check, because we cannot aim while climbing.
+ if (VectorExtensions.Angle(VectorExtensions.Forward(item.body.TransformedRotation), fromItemToLeak) < MathHelper.PiOver4)
{
character.SetInput(InputType.Shoot, false, true);
Use(deltaTime, character);
}
+ else
+ {
+ sinTime -= deltaTime * 2;
+ }
bool leakFixed = (leak.Open <= 0.0f || leak.Removed) &&
(leak.ConnectedWall == null || leak.ConnectedWall.Sections.Average(s => s.damage) < 1);
diff --git a/Barotrauma/BarotraumaShared/Submarines/Dugong.sub b/Barotrauma/BarotraumaShared/Submarines/Dugong.sub
index cce7eff49..a745d1cf6 100644
Binary files a/Barotrauma/BarotraumaShared/Submarines/Dugong.sub and b/Barotrauma/BarotraumaShared/Submarines/Dugong.sub differ
diff --git a/Barotrauma/BarotraumaShared/Submarines/Humpback.sub b/Barotrauma/BarotraumaShared/Submarines/Humpback.sub
index 028008485..c57bc40b9 100644
Binary files a/Barotrauma/BarotraumaShared/Submarines/Humpback.sub and b/Barotrauma/BarotraumaShared/Submarines/Humpback.sub differ
diff --git a/Barotrauma/BarotraumaShared/Submarines/Orca.sub b/Barotrauma/BarotraumaShared/Submarines/Orca.sub
index 75badce72..1884e59b0 100644
Binary files a/Barotrauma/BarotraumaShared/Submarines/Orca.sub and b/Barotrauma/BarotraumaShared/Submarines/Orca.sub differ
diff --git a/Barotrauma/BarotraumaShared/Submarines/Typhon.sub b/Barotrauma/BarotraumaShared/Submarines/Typhon.sub
index a689efd8d..b43126315 100644
Binary files a/Barotrauma/BarotraumaShared/Submarines/Typhon.sub and b/Barotrauma/BarotraumaShared/Submarines/Typhon.sub differ
diff --git a/Barotrauma/BarotraumaShared/changelog.txt b/Barotrauma/BarotraumaShared/changelog.txt
index beb985789..a8830200b 100644
--- a/Barotrauma/BarotraumaShared/changelog.txt
+++ b/Barotrauma/BarotraumaShared/changelog.txt
@@ -1,62 +1,3 @@
----------------------------------------------------------------------------------------------------------
-v0.8.10.0
----------------------------------------------------------------------------------------------------------
-
-Additions and changes:
-- Completely remade tutorials (separate tutorial for each job).
-- Added a door and hatch variants with integrated buttons.
-- New outpost graphics.
-- Added swarm behavior to crawlers.
-- Added a new mission where you have to kill a swarm of crawlers.
-- Numerous crew AI improvements.
-- Balanced item deterioration values.
-- Mineral sprites change when collected from the environment.
-- Added an option to disable directional voice chat.
-- Added automatic submarine repair option to the campaign.
-- Added "all" tab to the entity list in the submarine editor.
-- Hide the crew area, chat box and server buttons when operating a turret or searchlight.
-- Doors can be repaired with a wrench.
-- Some new lamp variants.
-- Display a progress bar when welding doors shut.
-- Items that don't give any materials when deconstructed cannot be deconstructed.
-- Added a console command that resets selected items and structures to prefab values ("resetselected").
-- Option to toggle structure drop shadows and edit the position of the shadow in the sub editor.
-- Minor physics optimizations.
-- Disable background music & ambience in the character editor.
-- More pronounced limping animation when a character's legs are injured.
-- The inventory slots next to the character portrait (ID card, uniform, etc) can be hidden.
-- Some new sound effects and background music.
-- All walls can be scaled in the submarine editor.
-- Structure damage is visualized when using debugdraw.
-- Improved font scaling on different resolutions.
-- Added Steam overlay support to Workshop.
-- Server list shows which servers have voice chat enabled.
-- Show a message box notifying respawning traitors that they're no longer a traitor.
-- Added a search bar to the store menu.
-- Added search bars to sub lists in campaign setup UI and sub editor.
-
-Bugfixes:
-- Don't allow rewiring and deattaching an item at the same time (happened when interacting with an item
-while holding both a screwdriver and a wrench).
-- Fixed bots being unable to complete almost any task in the multiplayer due to a bug that caused
-them to interpret the sub as another crew's submarine.
-- When spawning multiple monsters at the same time, spread them around a bit to prevent the players
-from getting attacked by a ball of overlapping crawlers.
-- Fixed huge lag spikes when a character tries to escape from an enemy but can't find a path away from it.
-- Fixed file transfer progress bars not being visible in the server lobby.
-- Fixed crashing when attempting to start a mission round with mission type set to None.
-- Fixed ElectricalDischarger electricity effect staying visible if the item breaks or the component
-is deactivated from outside (e.g. via a StatusEffect or the parent component).
-- Fixed specular maps being rendered on top of characters when outside the sub.
-- Fixed excessively bright lights around sonar flora and lava vents.
-- Fixes to item collider sizes.
-- Fixed inability to scroll through long texts in the sub editor's textboxes.
-- Fixed clients not being able to see other characters in spectator if they've died far away from the sub.
-- Fixed non-latin characters not being displayed correctly in Workshop item texts.
-- Don't prevent selecting items in the sub editor when the cursor is on a wire node, because it makes it
-very difficult (or impossible) to select small items in the wiring mode.
-- Fixed crashing when attempting to use the "spawnitem" command when a round is not running.
-
---------------------------------------------------------------------------------------------------------
v0.8.9.10
---------------------------------------------------------------------------------------------------------