Respawn durations can be changed mid-round.

This commit is contained in:
Joonas Rikkonen
2018-08-15 13:39:01 +03:00
parent 0dca8bc940
commit d0e0143308
@@ -9,10 +9,7 @@ using System.Linq;
namespace Barotrauma.Networking
{
class RespawnManager : Entity, IServerSerializable
{
private readonly float respawnInterval;
private float maxTransportTime;
{
public enum State
{
Waiting,
@@ -66,6 +63,8 @@ namespace Barotrauma.Networking
private float respawnTimer, shuttleReturnTimer, shuttleTransportTimer;
private float maxTransportTime;
private float updateReturnTimer;
public Submarine RespawnShuttle
@@ -113,15 +112,12 @@ namespace Barotrauma.Networking
{
respawnShuttle = null;
}
var server = networkMember as GameServer;
if (server != null)
{
respawnInterval = server.RespawnInterval;
maxTransportTime = server.MaxTransportTime;
}
respawnTimer = respawnInterval;
if (networkMember is GameServer server)
{
respawnTimer = server.RespawnInterval;
maxTransportTime = server.MaxTransportTime;
}
}
private List<Client> GetClientsToRespawn()
@@ -195,7 +191,7 @@ namespace Barotrauma.Networking
respawnTimer -= deltaTime;
if (respawnTimer <= 0.0f)
{
respawnTimer = respawnInterval;
respawnTimer = server.RespawnInterval;
DispatchShuttle();
}
@@ -243,6 +239,7 @@ namespace Barotrauma.Networking
server.CreateEntityEvent(this);
CountdownStarted = false;
maxTransportTime = server.MaxTransportTime;
shuttleReturnTimer = maxTransportTime;
shuttleTransportTimer = maxTransportTime;
}
@@ -311,7 +308,7 @@ namespace Barotrauma.Networking
GameServer.Log("The respawn shuttle has left.", ServerLog.MessageType.Spawning);
server.CreateEntityEvent(this);
respawnTimer = respawnInterval;
respawnTimer = server.RespawnInterval;
CountdownStarted = false;
}
}