- fixed dummy location generation crashing the tutorial
- gameserver handles exceptions thrown when instantiating a new gamesession - fixed screwdrivers (and other items that can be held in either hand) going into both hand slots when equipping by double clicking
This commit is contained in:
@@ -283,7 +283,7 @@ namespace Barotrauma.Tutorials
|
|||||||
|
|
||||||
infoBox = CreateInfoFrame("Steer the submarine downwards, heading further into the cavern.");
|
infoBox = CreateInfoFrame("Steer the submarine downwards, heading further into the cavern.");
|
||||||
|
|
||||||
while (Submarine.MainSub.WorldPosition.Y > 31900.0f)
|
while (Submarine.MainSub.WorldPosition.Y > 36500.0f)
|
||||||
{
|
{
|
||||||
yield return CoroutineStatus.Running;
|
yield return CoroutineStatus.Running;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,7 +142,17 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
dummyLocations = new Location[2];
|
dummyLocations = new Location[2];
|
||||||
|
|
||||||
MTRandom rand = new MTRandom(ToolBox.StringToInt(GameMain.NetLobbyScreen.LevelSeed));
|
string seed = "";
|
||||||
|
if (GameMain.GameSession != null && GameMain.GameSession.Level != null)
|
||||||
|
{
|
||||||
|
seed = GameMain.GameSession.Level.Seed;
|
||||||
|
}
|
||||||
|
else if (GameMain.NetLobbyScreen != null)
|
||||||
|
{
|
||||||
|
seed = GameMain.NetLobbyScreen.LevelSeed;
|
||||||
|
}
|
||||||
|
|
||||||
|
MTRandom rand = new MTRandom(ToolBox.StringToInt(seed));
|
||||||
for (int i = 0; i < 2; i++)
|
for (int i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
dummyLocations[i] = Location.CreateRandom(new Vector2((float)rand.NextDouble() * 10000.0f, (float)rand.NextDouble() * 10000.0f));
|
dummyLocations[i] = Location.CreateRandom(new Vector2((float)rand.NextDouble() * 10000.0f, (float)rand.NextDouble() * 10000.0f));
|
||||||
|
|||||||
@@ -184,6 +184,11 @@ namespace Barotrauma
|
|||||||
placed = true;
|
placed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (placed)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -886,22 +886,22 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
roundStartSeed = DateTime.Now.Millisecond;
|
roundStartSeed = DateTime.Now.Millisecond;
|
||||||
Rand.SetSyncedSeed(roundStartSeed);
|
Rand.SetSyncedSeed(roundStartSeed);
|
||||||
|
|
||||||
GameMain.GameSession = new GameSession(selectedSub, "", selectedMode, Mission.MissionTypes[GameMain.NetLobbyScreen.MissionTypeIndex]);
|
|
||||||
|
|
||||||
yield return CoroutineStatus.Running;
|
bool couldNotStart = false;
|
||||||
|
|
||||||
int teamCount = 1;
|
int teamCount = 1;
|
||||||
int hostTeam = 1;
|
int hostTeam = 1;
|
||||||
if (GameMain.GameSession.gameMode.Mission != null &&
|
|
||||||
GameMain.GameSession.gameMode.Mission.AssignTeamIDs(connectedClients,out hostTeam))
|
|
||||||
{
|
|
||||||
teamCount = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool couldNotStart = false;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
GameMain.GameSession = new GameSession(selectedSub, "", selectedMode, Mission.MissionTypes[GameMain.NetLobbyScreen.MissionTypeIndex]);
|
||||||
|
|
||||||
|
if (GameMain.GameSession.gameMode.Mission != null &&
|
||||||
|
GameMain.GameSession.gameMode.Mission.AssignTeamIDs(connectedClients,out hostTeam))
|
||||||
|
{
|
||||||
|
teamCount = 2;
|
||||||
|
}
|
||||||
|
|
||||||
GameMain.GameSession.StartShift(GameMain.NetLobbyScreen.LevelSeed, teamCount > 1);
|
GameMain.GameSession.StartShift(GameMain.NetLobbyScreen.LevelSeed, teamCount > 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -914,7 +914,6 @@ namespace Barotrauma.Networking
|
|||||||
GameMain.NetLobbyScreen.StartButton.Enabled = true;
|
GameMain.NetLobbyScreen.StartButton.Enabled = true;
|
||||||
|
|
||||||
couldNotStart = true;
|
couldNotStart = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (couldNotStart) yield return CoroutineStatus.Failure;
|
if (couldNotStart) yield return CoroutineStatus.Failure;
|
||||||
|
|||||||
Reference in New Issue
Block a user