(684bcee1a) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev

This commit is contained in:
Joonas Rikkonen
2019-04-03 16:24:20 +03:00
parent 516159fe43
commit 64bec6d3b9
7 changed files with 29 additions and 70 deletions
@@ -23,6 +23,8 @@ namespace Barotrauma
protected float hudInfoTimer; protected float hudInfoTimer;
protected bool hudInfoVisible; protected bool hudInfoVisible;
private float pressureParticleTimer;
private float findFocusedTimer; private float findFocusedTimer;
protected float lastRecvPositionUpdateTime; protected float lastRecvPositionUpdateTime;
@@ -170,13 +172,23 @@ namespace Barotrauma
{ {
if (needsAir && if (needsAir &&
pressureProtection < 80.0f && pressureProtection < 80.0f &&
(AnimController.CurrentHull == null || AnimController.CurrentHull.LethalPressure > 50.0f)) (AnimController.CurrentHull == null || AnimController.CurrentHull.LethalPressure > 0.0f))
{ {
float pressure = AnimController.CurrentHull == null ? 100.0f : AnimController.CurrentHull.LethalPressure; float pressure = AnimController.CurrentHull == null ? 100.0f : AnimController.CurrentHull.LethalPressure;
if (pressure > 0.0f)
{
float zoomInEffectStrength = MathHelper.Clamp(pressure / 100.0f, 0.1f, 1.0f);
cam.Zoom = MathHelper.Lerp(cam.Zoom,
cam.DefaultZoom + (Math.Max(pressure, 10) / 150.0f) * Rand.Range(0.9f, 1.1f),
zoomInEffectStrength);
cam.Zoom = MathHelper.Lerp(cam.Zoom, pressureParticleTimer += pressure * deltaTime;
(pressure / 50.0f) * Rand.Range(1.0f, 1.05f), if (pressureParticleTimer > 10.0f)
(pressure - 50.0f) / 50.0f); {
Particle p = GameMain.ParticleManager.CreateParticle("waterblood", WorldPosition + Rand.Vector(5.0f), Rand.Vector(10.0f));
pressureParticleTimer = 0.0f;
}
}
} }
if (IsHumanoid) if (IsHumanoid)
@@ -666,66 +666,6 @@ namespace Barotrauma
//spacing //spacing
new GUIFrame(new RectTransform(new Vector2(1.0f, 0.02f), generalLayoutGroup.RectTransform), style: null); new GUIFrame(new RectTransform(new Vector2(1.0f, 0.02f), generalLayoutGroup.RectTransform), style: null);
//spacing
new GUIFrame(new RectTransform(new Vector2(1.0f, 0.02f), generalLayoutGroup.RectTransform), style: null);
new GUIButton(new RectTransform(new Vector2(0.4f, 1.0f), buttonArea.RectTransform, Anchor.BottomLeft),
TextManager.Get("Cancel"), style: "GUIButtonLarge")
{
IgnoreLayoutGroups = true,
OnClicked = (x, y) =>
{
if (UnsavedSettings)
{
LoadPlayerConfig();
}
if (Screen.Selected == GameMain.MainMenuScreen) GameMain.MainMenuScreen.ReturnToMainMenu(null, null);
GUI.SettingsMenuOpen = false;
return true;
}
};
//spacing
new GUIFrame(new RectTransform(new Vector2(1.0f, 0.02f), generalLayoutGroup.RectTransform), style: null);
new GUIButton(new RectTransform(new Vector2(0.4f, 1.0f), buttonArea.RectTransform, Anchor.BottomLeft),
TextManager.Get("Cancel"), style: "GUIButtonLarge")
{
IgnoreLayoutGroups = true,
OnClicked = (x, y) =>
{
if (UnsavedSettings)
{
LoadPlayerConfig();
}
if (Screen.Selected == GameMain.MainMenuScreen) GameMain.MainMenuScreen.ReturnToMainMenu(null, null);
GUI.SettingsMenuOpen = false;
return true;
}
};
//spacing
new GUIFrame(new RectTransform(new Vector2(1.0f, 0.02f), generalLayoutGroup.RectTransform), style: null);
new GUIButton(new RectTransform(new Vector2(0.4f, 1.0f), buttonArea.RectTransform, Anchor.BottomLeft),
TextManager.Get("Cancel"), style: "GUIButtonLarge")
{
IgnoreLayoutGroups = true,
OnClicked = (x, y) =>
{
if (UnsavedSettings)
{
LoadPlayerConfig();
}
if (Screen.Selected == GameMain.MainMenuScreen) GameMain.MainMenuScreen.ReturnToMainMenu(null, null);
GUI.SettingsMenuOpen = false;
return true;
}
};
//spacing
new GUIFrame(new RectTransform(new Vector2(1.0f, 0.02f), generalLayoutGroup.RectTransform), style: null);
new GUIButton(new RectTransform(new Vector2(0.4f, 1.0f), buttonArea.RectTransform, Anchor.BottomLeft), new GUIButton(new RectTransform(new Vector2(0.4f, 1.0f), buttonArea.RectTransform, Anchor.BottomLeft),
TextManager.Get("Cancel"), style: "GUIButtonLarge") TextManager.Get("Cancel"), style: "GUIButtonLarge")
{ {
@@ -1913,7 +1913,7 @@ namespace Barotrauma
if (PressureTimer >= 100.0f) if (PressureTimer >= 100.0f)
{ {
if (Controlled == this) cam.Zoom = 5.0f; if (Controlled == this) { cam.Zoom = 5.0f; }
if (GameMain.NetworkMember == null || !GameMain.NetworkMember.IsClient) if (GameMain.NetworkMember == null || !GameMain.NetworkMember.IsClient)
{ {
Implode(); Implode();
@@ -103,6 +103,7 @@ namespace Barotrauma
} }
public float CrushDepth { get; private set; } public float CrushDepth { get; private set; }
public float PressureKillDelay { get; private set; } = 5.0f;
public float Vitality { get; private set; } public float Vitality { get; private set; }
@@ -26,6 +26,10 @@ namespace Barotrauma.Items.Components
private float blinkTimer; private float blinkTimer;
private bool itemLoaded;
private float blinkTimer;
public PhysicsBody ParentBody; public PhysicsBody ParentBody;
[Editable(MinValueFloat = 0.0f, MaxValueFloat = 2048.0f), Serialize(100.0f, true)] [Editable(MinValueFloat = 0.0f, MaxValueFloat = 2048.0f), Serialize(100.0f, true)]
@@ -1208,9 +1208,9 @@ namespace Barotrauma
public List<T> GetConnectedComponents<T>(bool recursive = false) where T : ItemComponent public List<T> GetConnectedComponents<T>(bool recursive = false) where T : ItemComponent
{ {
base.FlipY(relativeToSub); List<T> connectedComponents = new List<T>();
if (Prefab.CanSpriteFlipY) if (recursive)
{ {
List<Item> alreadySearched = new List<Item>() { this }; List<Item> alreadySearched = new List<Item>() { this };
GetConnectedComponentsRecursive(alreadySearched, connectedComponents); GetConnectedComponentsRecursive(alreadySearched, connectedComponents);
@@ -646,7 +646,6 @@ namespace Barotrauma
/// </summary> /// </summary>
public void ApplyForce(Vector2 force, float maxVelocity) public void ApplyForce(Vector2 force, float maxVelocity)
{ {
if (!IsValidValue(force, "force", -1e10f, 1e10f)) return;
if (!IsValidValue(maxVelocity, "max velocity")) return; if (!IsValidValue(maxVelocity, "max velocity")) return;
Vector2 velocityAddition = force / Mass * (float)Timing.Step; Vector2 velocityAddition = force / Mass * (float)Timing.Step;
@@ -657,7 +656,10 @@ namespace Barotrauma
{ {
newVelocity = newVelocity.ClampLength(maxVelocity); newVelocity = newVelocity.ClampLength(maxVelocity);
} }
body.ApplyForce((newVelocity - body.LinearVelocity) * Mass / (float)Timing.Step);
Vector2 clampedForce = (newVelocity - body.LinearVelocity) * Mass / (float)Timing.Step;
if (!IsValidValue(force, "clamped force", -1e10f, 1e10f)) return;
body.ApplyForce(force);
} }
public void ApplyForce(Vector2 force, Vector2 point) public void ApplyForce(Vector2 force, Vector2 point)