From 1e5c6393a6b29eb00dbb8fb137d86647cb0c356b Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Fri, 28 Jul 2023 22:06:03 +0100 Subject: Add TryUnstuck and death overlay --- code/phase/WaitPhase.cs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'code/phase/WaitPhase.cs') diff --git a/code/phase/WaitPhase.cs b/code/phase/WaitPhase.cs index 4f2e876..9eab094 100644 --- a/code/phase/WaitPhase.cs +++ b/code/phase/WaitPhase.cs @@ -23,6 +23,7 @@ public class WaitPhase : BasePhase { base.NextPhase = new AssignPhase(); base.IsFinished = true; + return; } else if (CountIn && !_isCountDown) { @@ -34,6 +35,36 @@ public class WaitPhase : BasePhase _isCountDown = false; base.TimeLeft = -1; } + + foreach (var client in Game.Clients) + { + if (client.Pawn == null) + { + var pawn = new Player(); + client.Pawn = pawn; + + var spawnpoints = Entity.All.OfType(); + var randomSpawnPoint = spawnpoints.OrderBy( x => Guid.NewGuid() ).FirstOrDefault(); + if ( randomSpawnPoint != null ) + { + var tx = randomSpawnPoint.Transform; + tx.Position = tx.Position + Vector3.Up * 50.0f; + pawn.Transform = tx; + } + + pawn.CurrentTeam = Team.Bystander; + pawn.Spawn(); + pawn.Respawn(); + } else + { + var pawn = (Player)client.Pawn; + if (pawn.LifeState == LifeState.Dead) + { + pawn.CurrentTeam = Team.Bystander; + pawn.Respawn(); + } + } + } } public override void HandleClientJoin( ClientJoinedEvent e ) -- cgit v1.2.3-70-g09d2