v0.13.0.11

This commit is contained in:
Juan Pablo Arce
2021-04-22 13:11:21 -03:00
parent 245b48c3a3
commit dde6212577
52 changed files with 3196 additions and 3507 deletions
@@ -490,6 +490,7 @@ namespace Barotrauma
if (Level.Loaded.StartOutpost.DockedTo.Any())
{
var dockedSub = Level.Loaded.StartOutpost.DockedTo.FirstOrDefault();
if (dockedSub == GameMain.NetworkMember?.RespawnManager?.RespawnShuttle) { return null; }
return dockedSub.DockedTo.Contains(Submarine.MainSub) ? Submarine.MainSub : dockedSub;
}
@@ -517,6 +518,7 @@ namespace Barotrauma
if (Level.Loaded.EndOutpost.DockedTo.Any())
{
var dockedSub = Level.Loaded.EndOutpost.DockedTo.FirstOrDefault();
if (dockedSub == GameMain.NetworkMember?.RespawnManager?.RespawnShuttle) { return null; }
return dockedSub.DockedTo.Contains(Submarine.MainSub) ? Submarine.MainSub : dockedSub;
}
@@ -62,6 +62,8 @@ namespace Barotrauma
private string baseName;
private int nameFormatIndex;
private LocationType addInitialMissionsForType;
public bool Discovered;
public readonly Dictionary<LocationTypeChange.Requirement, int> ProximityTimer = new Dictionary<LocationTypeChange.Requirement, int>();
@@ -266,6 +268,7 @@ namespace Barotrauma
if (locationType.Equals("lair", StringComparison.OrdinalIgnoreCase))
{
Type ??= LocationType.List.Find(lt => lt.Identifier.Equals("Abandoned", StringComparison.OrdinalIgnoreCase));
addInitialMissionsForType = Type;
}
if (Type == null)
{
@@ -554,23 +557,37 @@ namespace Barotrauma
public void InstantiateLoadedMissions(Map map)
{
availableMissions.Clear();
if (loadedMissions == null || loadedMissions.None()) { return; }
foreach (LoadedMission loadedMission in loadedMissions)
{
Location destination;
if (loadedMission.DestinationIndex >= 0 && loadedMission.DestinationIndex < map.Locations.Count)
if (loadedMissions != null && loadedMissions.Any())
{
foreach (LoadedMission loadedMission in loadedMissions)
{
destination = map.Locations[loadedMission.DestinationIndex];
Location destination;
if (loadedMission.DestinationIndex >= 0 && loadedMission.DestinationIndex < map.Locations.Count)
{
destination = map.Locations[loadedMission.DestinationIndex];
}
else
{
destination = Connections.First().OtherLocation(this);
}
var mission = loadedMission.MissionPrefab.Instantiate(new Location[] { this, destination });
availableMissions.Add(mission);
if (loadedMission.SelectedMission) { SelectedMission = mission; }
}
else
{
destination = Connections.First().OtherLocation(this);
}
var mission = loadedMission.MissionPrefab.Instantiate(new Location[] { this, destination });
availableMissions.Add(mission);
if (loadedMission.SelectedMission) { SelectedMission = mission; }
loadedMissions = null;
}
if (addInitialMissionsForType != null)
{
if (addInitialMissionsForType.MissionIdentifiers.Any())
{
UnlockMissionByIdentifier(addInitialMissionsForType.MissionIdentifiers.GetRandom());
}
if (addInitialMissionsForType.MissionTags.Any())
{
UnlockMissionByTag(addInitialMissionsForType.MissionTags.GetRandom());
}
addInitialMissionsForType = null;
}
loadedMissions = null;
}
/// <summary>
@@ -522,7 +522,7 @@ namespace Barotrauma
{
allowedBiomes.Clear();
allowedBiomes.AddRange(biomes.Where(b => b.AllowedZones.Contains(generationParams.DifficultyZones - i)));
float zoneX = Width - zoneWidth * i;
float zoneX = zoneWidth * (generationParams.DifficultyZones - i);
foreach (Location location in Locations)
{
@@ -303,10 +303,10 @@ namespace Barotrauma.Networking
RespawnShuttle.Velocity = Vector2.Zero;
}
partial void RespawnCharactersProjSpecific();
public void RespawnCharacters()
partial void RespawnCharactersProjSpecific(Vector2? shuttlePos);
public void RespawnCharacters(Vector2? shuttlePos)
{
RespawnCharactersProjSpecific();
RespawnCharactersProjSpecific(shuttlePos);
}
public Vector2 FindSpawnPos()
@@ -139,7 +139,21 @@ namespace Barotrauma.Steam
}
return success;
}
public static bool StoreStats()
{
if (!isInitialized || !Steamworks.SteamClient.IsValid) { return false; }
DebugConsole.Log("Storing Steam stats...");
bool success = Steamworks.SteamUserStats.StoreStats();
if (!success)
{
#if DEBUG
DebugConsole.NewMessage("Failed to store Steam stats.");
#endif
}
return success;
}
public static void Update(float deltaTime)
{
if (!isInitialized) { return; }
@@ -331,6 +331,9 @@ namespace Barotrauma
}
}
//make sure changed stats (kill count, kms traveled) get stored
SteamManager.StoreStats();
if (GameMain.NetworkMember != null && GameMain.NetworkMember.IsClient) { return; }
foreach (Mission mission in gameSession.Missions)
@@ -87,6 +87,8 @@ namespace Barotrauma
public List<string> GetAll(string textTag)
{
if (textTag is null) { return null; }
if (!texts.TryGetValue(textTag.ToLowerInvariant(), out List<string> textList) || !textList.Any())
{
return null;