v0.12.0.2
This commit is contained in:
@@ -20,7 +20,9 @@ namespace Barotrauma
|
||||
|
||||
private readonly float itemSpawnRadius = 800.0f;
|
||||
private readonly float approachItemsRadius = 1000.0f;
|
||||
private readonly float nestObjectRadius = 1000.0f;
|
||||
private readonly float monsterSpawnRadius = 3000.0f;
|
||||
private readonly int nestObjectAmount = 10;
|
||||
|
||||
private readonly bool requireDelivery;
|
||||
|
||||
@@ -53,6 +55,9 @@ namespace Barotrauma
|
||||
approachItemsRadius = prefab.ConfigElement.GetAttributeFloat("approachitemsradius", itemSpawnRadius * 2.0f);
|
||||
monsterSpawnRadius = prefab.ConfigElement.GetAttributeFloat("monsterspawnradius", approachItemsRadius * 2.0f);
|
||||
|
||||
nestObjectRadius = prefab.ConfigElement.GetAttributeFloat("nestobjectradius", itemSpawnRadius * 2.0f);
|
||||
nestObjectAmount = prefab.ConfigElement.GetAttributeInt("nestobjectamount", 10);
|
||||
|
||||
requireDelivery = prefab.ConfigElement.GetAttributeBool("requiredelivery", false);
|
||||
|
||||
string spawnPositionTypeStr = prefab.ConfigElement.GetAttributeString("spawntype", "");
|
||||
@@ -62,7 +67,6 @@ namespace Barotrauma
|
||||
spawnPositionType = Level.PositionType.Cave | Level.PositionType.Ruin;
|
||||
}
|
||||
|
||||
|
||||
foreach (var monsterElement in prefab.ConfigElement.GetChildElements("monster"))
|
||||
{
|
||||
string speciesName = monsterElement.GetAttributeString("character", string.Empty);
|
||||
@@ -107,6 +111,25 @@ namespace Barotrauma
|
||||
List<GraphEdge> spawnEdges = new List<GraphEdge>();
|
||||
if (spawnPositionType == Level.PositionType.Cave)
|
||||
{
|
||||
Level.Cave closestCave = null;
|
||||
float closestCaveDist = float.PositiveInfinity;
|
||||
foreach (var cave in Level.Loaded.Caves)
|
||||
{
|
||||
float dist = Vector2.DistanceSquared(nestPosition, cave.Area.Center.ToVector2());
|
||||
if (dist < closestCaveDist)
|
||||
{
|
||||
closestCave = cave;
|
||||
closestCaveDist = dist;
|
||||
}
|
||||
}
|
||||
if (closestCave != null)
|
||||
{
|
||||
closestCave.DisplayOnSonar = true;
|
||||
SpawnNestObjects(level, closestCave);
|
||||
#if SERVER
|
||||
selectedCave = closestCave;
|
||||
#endif
|
||||
}
|
||||
var nearbyCells = Level.Loaded.GetCells(nestPosition, searchDepth: 3);
|
||||
if (nearbyCells.Any())
|
||||
{
|
||||
@@ -188,6 +211,11 @@ namespace Barotrauma
|
||||
}
|
||||
}
|
||||
|
||||
private void SpawnNestObjects(Level level, Level.Cave cave)
|
||||
{
|
||||
level.LevelObjectManager.PlaceNestObjects(level, cave, nestPosition, nestObjectRadius, nestObjectAmount);
|
||||
}
|
||||
|
||||
public override void Update(float deltaTime)
|
||||
{
|
||||
if (IsClient)
|
||||
@@ -279,6 +307,10 @@ namespace Barotrauma
|
||||
{
|
||||
GiveReward();
|
||||
completed = true;
|
||||
if (completed)
|
||||
{
|
||||
ChangeLocationType("None", "Explored");
|
||||
}
|
||||
}
|
||||
foreach (Item item in items)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user