Compare commits

4 Commits

Author SHA1 Message Date
39b9f71801 Merge pull request 'start_round with minigame name' (#1) from terry-races into master
Reviewed-on: #1
2023-08-03 06:15:15 +00:00
mccarreon
ef88c51454 shortening StartRound 2023-08-02 23:12:31 -07:00
mccarreon
35be78c341 getting rid of unnecessary lines 2023-08-02 22:55:17 -07:00
mccarreon
5c0a454b79 start_round by minigame name 2023-08-02 22:54:05 -07: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 );
}
[ConCmd.Server("start_round")]
public static void ForceStart()
[ConCmd.Server( "start_round" )]
public static void ForceStart( string minigameName = null )
{
Entity.All.OfType<RoundManager>().FirstOrDefault()?.StartRound();
Entity.All.OfType<RoundManager>().FirstOrDefault()?.StartRound( minigameName );
}
}