Skip to content

Commit

Permalink
Respawn timer fix: show correct time on reconnect (new-frontiers-14#2227
Browse files Browse the repository at this point in the history
)
  • Loading branch information
whatston3 authored Oct 16, 2024
1 parent 823f395 commit 31c1bef
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions Content.Server/Corvax/Respawn/RespawnSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,14 @@ public override void Initialize()
SubscribeLocalEvent<MindContainerComponent, CryosleepBeforeMindRemovedEvent>(OnCryoBeforeMindRemoved);
SubscribeLocalEvent<MindContainerComponent, CryosleepWakeUpEvent>(OnCryoWakeUp);

_admin.OnPermsChanged += OnAdminPermsChanged;
_admin.OnPermsChanged += OnAdminPermsChanged; // Frontier
_player.PlayerStatusChanged += PlayerStatusChanged; // Frontier

Subs.CVar(_cfg, NFCCVars.RespawnCryoFirstTime, OnRespawnCryoFirstTimeChanged, true);
Subs.CVar(_cfg, NFCCVars.RespawnTime, OnRespawnCryoTimeChanged, true);
Subs.CVar(_cfg, NFCCVars.RespawnCryoFirstTime, OnRespawnCryoFirstTimeChanged, true); // Frontier
Subs.CVar(_cfg, NFCCVars.RespawnTime, OnRespawnCryoTimeChanged, true); // Frontier
}

// Frontier: CVar setters
private void OnRespawnCryoFirstTimeChanged(float value)
{
_respawnTimeOnFirstCryo = value;
Expand All @@ -60,6 +62,7 @@ private void OnRespawnCryoTimeChanged(float value)
{
_respawnTime = value;
}
// End Frontier

private void OnMobStateChanged(EntityUid entity, MindContainerComponent component, MobStateChangedEvent e)
{
Expand Down Expand Up @@ -172,4 +175,17 @@ private ref RespawnData GetRespawnData(NetUserId player)
_respawnInfo[player] = new RespawnData();
return ref CollectionsMarshal.GetValueRefOrNullRef(_respawnInfo, player);
}

// Frontier: send ghost timer on player connection
private void PlayerStatusChanged(object? _, SessionStatusEventArgs args)
{
var session = args.Session;

if (args.NewStatus == Robust.Shared.Enums.SessionStatus.InGame &&
_respawnInfo.ContainsKey(session.UserId))
{
RaiseNetworkEvent(new RespawnResetEvent(_respawnInfo[session.UserId].RespawnTime), session);
}
}
// End Frontier
}

0 comments on commit 31c1bef

Please sign in to comment.