set all players to alive after scene change

This commit is contained in:
Mister_Nebula 2021-07-31 09:45:53 +01:00
parent 2b5aa0e8cc
commit 532bbb7658

View File

@ -19,10 +19,20 @@ namespace QSB.DeathSync
private NotificationData _previousNotification;
private void Start()
=> Instance = this;
{
Instance = this;
QSBSceneManager.OnSceneLoaded += OnSceneLoaded;
}
private void OnSceneLoaded(OWScene scene, bool inUniverse)
{
QSBPlayerManager.PlayerList.ForEach(x => x.IsDead = false);
_playersPendingRespawn.Clear();
}
public void TriggerRespawnMap()
{
DebugLog.DebugWrite($"TRIGGER RESPAWN MAP");
QSBPatchManager.DoPatchType(QSBPatchTypes.RespawnTime);
QSBCore.UnityEvents.FireOnNextUpdate(() => GlobalMessenger.FireEvent("TriggerObservatoryMap"));
}
@ -43,12 +53,15 @@ namespace QSB.DeathSync
public void OnPlayerDeath(PlayerInfo player)
{
DebugLog.DebugWrite($"ON PLAYER DEATH");
if (_playersPendingRespawn.Contains(player))
{
DebugLog.ToConsole($"Warning - Received death message for player who is already in _playersPendingRespawn!", OWML.Common.MessageType.Warning);
return;
}
DebugLog.DebugWrite($"set player to be dead");
player.IsDead = true;
_playersPendingRespawn.Add(player);