Change how minigames are found and loaded to avoid needing to reset tons of state in initialize
This commit is contained in:
@@ -13,7 +13,7 @@ namespace LuckerGame.Entities;
|
|||||||
public partial class MinigameManager : Entity
|
public partial class MinigameManager : Entity
|
||||||
{
|
{
|
||||||
[Net] public Minigame LoadedMinigame { get; private set; }
|
[Net] public Minigame LoadedMinigame { get; private set; }
|
||||||
private List<Minigame> AvailableMinigames { get; set; }
|
private List<TypeDescription> AvailableMinigames { get; set; }
|
||||||
private List<Lucker> InvolvedPlayers { get; set; }
|
private List<Lucker> InvolvedPlayers { get; set; }
|
||||||
|
|
||||||
public override void Spawn()
|
public override void Spawn()
|
||||||
@@ -27,7 +27,7 @@ public partial class MinigameManager : Entity
|
|||||||
InvolvedPlayers = players.ToList();
|
InvolvedPlayers = players.ToList();
|
||||||
if (CheckForMinigames())
|
if (CheckForMinigames())
|
||||||
{
|
{
|
||||||
LoadedMinigame = string.IsNullOrEmpty( minigameName ) ? AvailableMinigames.OrderBy( _ => Guid.NewGuid() ).FirstOrDefault() : TypeLibrary.Create<Minigame>( minigameName );
|
LoadedMinigame = string.IsNullOrEmpty( minigameName ) ? TypeLibrary.Create<Minigame>(AvailableMinigames.OrderBy( _ => Guid.NewGuid() ).FirstOrDefault().TargetType) : TypeLibrary.Create<Minigame>( minigameName );
|
||||||
ChatBox.AddInformation( To.Everyone, $"Starting {LoadedMinigame.Name}" );
|
ChatBox.AddInformation( To.Everyone, $"Starting {LoadedMinigame.Name}" );
|
||||||
LoadedMinigame.Initialize( players );
|
LoadedMinigame.Initialize( players );
|
||||||
}
|
}
|
||||||
@@ -48,7 +48,7 @@ public partial class MinigameManager : Entity
|
|||||||
{
|
{
|
||||||
AvailableMinigames = TypeLibrary.GetTypes<Minigame>()
|
AvailableMinigames = TypeLibrary.GetTypes<Minigame>()
|
||||||
.Where( type => !type.IsAbstract && !type.IsInterface )
|
.Where( type => !type.IsAbstract && !type.IsInterface )
|
||||||
.Select( td => TypeLibrary.Create<Minigame>( td.TargetType ) ).ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Event.Hotload]
|
[Event.Hotload]
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ public class RussianRouletteMinigame : Minigame
|
|||||||
pawn.LookAt(Shooter.Position);
|
pawn.LookAt(Shooter.Position);
|
||||||
} );
|
} );
|
||||||
TimeSinceShot = 0;
|
TimeSinceShot = 0;
|
||||||
|
Taunted = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool Tick()
|
public override bool Tick()
|
||||||
|
|||||||
Reference in New Issue
Block a user