Possible to zoom out further when debugdraw is on, vents don't replenish oxygen when underwater, monster missions & events ignore spawnpoints that are too close to the main sub

This commit is contained in:
Regalis
2016-09-14 20:25:09 +03:00
parent 1f7bf250b5
commit 0265d075a5
4 changed files with 29 additions and 12 deletions

View File

@@ -38,11 +38,8 @@ namespace Barotrauma
get { return zoom; }
set
{
zoom = value;
if (zoom < 0.1f) zoom = 0.1f;
//if (prevZoom == zoom) return;
zoom = Math.Max(value, GameMain.DebugDraw ? 0.01f : 0.1f);
Vector2 center = WorldViewCenter;
float newWidth = resolution.X / zoom;
float newHeight = resolution.Y / zoom;
@@ -137,7 +134,6 @@ namespace Barotrauma
worldView.X = (int)(interpolatedPosition.X - worldView.Width / 2.0);
worldView.Y = (int)(interpolatedPosition.Y + worldView.Height / 2.0);
if (Level.Loaded != null && clampPos)
{
position.Y -= Math.Max(worldView.Y - Level.Loaded.Size.Y, 0.0f);
@@ -199,7 +195,7 @@ namespace Barotrauma
moveCam = moveCam * deltaTime * 60.0f;
Zoom = MathHelper.Clamp(zoom + (PlayerInput.ScrollWheelSpeed / 1000.0f) * zoom, 0.1f, 2.0f);
Zoom = MathHelper.Clamp(zoom + (PlayerInput.ScrollWheelSpeed / 1000.0f) * zoom, GameMain.DebugDraw ? 0.01f : 0.1f, 2.0f);
}
else
{

View File

@@ -1,5 +1,6 @@
using Barotrauma.Networking;
using Microsoft.Xna.Framework;
using System;
using System.Xml.Linq;
namespace Barotrauma
@@ -27,11 +28,21 @@ namespace Barotrauma
public override void Start(Level level)
{
Vector2 position = level.GetRandomInterestingPosition(true, Level.PositionType.MainPath);
float minDist = Math.Max(Submarine.MainSub.Borders.Width, Submarine.MainSub.Borders.Height);
monster = Character.Create(monsterFile, position, null, GameMain.Client != null);
//find a random spawnpos that isn't too close to the main sub
int tries = 0;
Vector2 spawnPos = Vector2.Zero;
do
{
spawnPos = Level.Loaded.GetRandomInterestingPosition(true, Level.PositionType.MainPath);
tries++;
} while (tries < 50 && Vector2.Distance(spawnPos, Submarine.MainSub.WorldPosition) < minDist);
monster = Character.Create(monsterFile, spawnPos, null, GameMain.Client != null);
monster.Enabled = false;
radarPosition = monster.Position;
radarPosition = spawnPos;
}
public override void Update(float deltaTime)

View File

@@ -47,9 +47,17 @@ namespace Barotrauma
private void SpawnMonsters()
{
//WayPoint randomWayPoint = WayPoint.GetRandom(SpawnType.Enemy);
float minDist = Math.Max(Submarine.MainSub.Borders.Width, Submarine.MainSub.Borders.Height);
//find a random spawnpos that isn't too close to the main sub
int tries = 0;
Vector2 spawnPos = Vector2.Zero;
do
{
spawnPos = Level.Loaded.GetRandomInterestingPosition(true, spawnPosType);
tries++;
} while (tries < 50 && Vector2.Distance(spawnPos, Submarine.MainSub.WorldPosition) < minDist);
Vector2 spawnPos = Level.Loaded.GetRandomInterestingPosition(true, spawnPosType);
int amount = Rand.Range(minAmount, maxAmount, false);

View File

@@ -23,6 +23,8 @@ namespace Barotrauma.Items.Components
{
if (item.CurrentHull == null) return;
if (item.InWater) return;
item.CurrentHull.Oxygen += oxygenFlow * deltaTime;
OxygenFlow -= deltaTime * 1000.0f;
}