start_round with minigame name #1

Merged
conco merged 3 commits from terry-races into master 2023-08-03 06:15:15 +00:00
2 changed files with 26 additions and 18 deletions

View File

@@ -21,17 +21,25 @@ public partial class MinigameManager : Entity
FindMinigames();
}
public void StartRandomMinigame(List<Lucker> players)
public void StartMinigame(List<Lucker> players, string minigameName = null)
{
if (CheckForMinigames())
{
LoadedMinigame = string.IsNullOrEmpty( minigameName ) ? AvailableMinigames.OrderBy( _ => Guid.NewGuid() ).FirstOrDefault() : TypeLibrary.Create<Minigame>( minigameName );
ChatBox.AddInformation( To.Everyone, $"Starting {LoadedMinigame.Name}" );
LoadedMinigame.Initialize( players );
}
}
private bool CheckForMinigames()
{
if ( (AvailableMinigames?.Count ?? 0) == 0 )
{
Log.Error( "Attempted to start minigame, but none available" );
return;
return false;
}
LoadedMinigame = AvailableMinigames.OrderBy( _ => Guid.NewGuid() ).FirstOrDefault();
ChatBox.AddInformation( To.Everyone, $"Starting {LoadedMinigame.Name}" );
LoadedMinigame.Initialize( players );
return true;
}
private void FindMinigames()

View File

@@ -110,7 +110,7 @@ public partial class RoundManager : Entity
}
}
private void StartRound()
private void StartRound( string minigameName = null )
{
if ( RoundState == RoundState.InProgress )
{
@@ -120,12 +120,12 @@ public partial class RoundManager : Entity
RoundState = RoundState.InProgress;
Players = All.OfType<Lucker>().ToList();
MinigameManager.StartRandomMinigame( Players );
MinigameManager.StartMinigame( Players, minigameName );
}
fork marked this conversation as resolved Outdated
Outdated
Review

Just pass in minigameName, we check if it's null so either it's null and we pass null or we dont pass null and it's stil null.

Just pass in minigameName, we check if it's null so either it's null and we pass null or we dont pass null and it's stil null.
Outdated
Review

DONE

DONE
[ConCmd.Server( "start_round" )]
public static void ForceStart()
public static void ForceStart( string minigameName = null )
{
Entity.All.OfType<RoundManager>().FirstOrDefault()?.StartRound();
Entity.All.OfType<RoundManager>().FirstOrDefault()?.StartRound( minigameName );
}
}