Make latejoining not hardcoded to presets (#2028)
* Make latejoining not hardcoded to presets * Applied feedback * Build error fix * Applied more feedback Co-authored-by: David Tan <>
This commit is contained in:
@@ -58,6 +58,10 @@ namespace Content.IntegrationTests
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ToggleDisallowLateJoin(bool disallowLateJoin)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public EntityCoordinates GetLateJoinSpawnPoint() => EntityCoordinates.Invalid;
|
public EntityCoordinates GetLateJoinSpawnPoint() => EntityCoordinates.Invalid;
|
||||||
public EntityCoordinates GetJobSpawnPoint(string jobId) => EntityCoordinates.Invalid;
|
public EntityCoordinates GetJobSpawnPoint(string jobId) => EntityCoordinates.Invalid;
|
||||||
public EntityCoordinates GetObserverSpawnPoint() => EntityCoordinates.Invalid;
|
public EntityCoordinates GetObserverSpawnPoint() => EntityCoordinates.Invalid;
|
||||||
|
|||||||
@@ -159,7 +159,6 @@ namespace Content.Server.GameTicking.GamePresets
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public override string ModeTitle => "Suspicion";
|
public override string ModeTitle => "Suspicion";
|
||||||
public override string Description => "Suspicion on the Space Station. There are traitors on board... Can you kill them before they kill you?";
|
public override string Description => "Suspicion on the Space Station. There are traitors on board... Can you kill them before they kill you?";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -411,6 +411,12 @@ namespace Content.Server.GameTicking
|
|||||||
_netManager.ServerSendToAll(GetStatusSingle(player, status));
|
_netManager.ServerSendToAll(GetStatusSingle(player, status));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ToggleDisallowLateJoin(bool disallowLateJoin)
|
||||||
|
{
|
||||||
|
DisallowLateJoin = disallowLateJoin;
|
||||||
|
UpdateLateJoinStatus();
|
||||||
|
}
|
||||||
|
|
||||||
public T AddGameRule<T>() where T : GameRule, new()
|
public T AddGameRule<T>() where T : GameRule, new()
|
||||||
{
|
{
|
||||||
var instance = _dynamicTypeFactory.CreateInstance<T>();
|
var instance = _dynamicTypeFactory.CreateInstance<T>();
|
||||||
|
|||||||
@@ -244,6 +244,26 @@ namespace Content.Server.GameTicking
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ToggleDisallowLateJoinCommand: IClientCommand
|
||||||
|
{
|
||||||
|
public string Command => "toggledisallowlatejoin";
|
||||||
|
public string Description => "Allows or disallows latejoining during mid-game.";
|
||||||
|
public string Help => $"Usage: {Command} <disallow>";
|
||||||
|
|
||||||
|
public void Execute(IConsoleShell shell, IPlayerSession player, string[] args)
|
||||||
|
{
|
||||||
|
if (args.Length != 1)
|
||||||
|
{
|
||||||
|
shell.SendText(player, "Need exactly one argument.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var ticker = IoCManager.Resolve<IGameTicker>();
|
||||||
|
|
||||||
|
ticker.ToggleDisallowLateJoin(bool.Parse(args[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class SetGamePresetCommand : IClientCommand
|
class SetGamePresetCommand : IClientCommand
|
||||||
{
|
{
|
||||||
public string Command => "setgamepreset";
|
public string Command => "setgamepreset";
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ namespace Content.Server.Interfaces.GameTicking
|
|||||||
void MakeObserve(IPlayerSession player);
|
void MakeObserve(IPlayerSession player);
|
||||||
void MakeJoinGame(IPlayerSession player, string jobId);
|
void MakeJoinGame(IPlayerSession player, string jobId);
|
||||||
void ToggleReady(IPlayerSession player, bool ready);
|
void ToggleReady(IPlayerSession player, bool ready);
|
||||||
|
void ToggleDisallowLateJoin(bool disallowLateJoin);
|
||||||
|
|
||||||
EntityCoordinates GetLateJoinSpawnPoint();
|
EntityCoordinates GetLateJoinSpawnPoint();
|
||||||
EntityCoordinates GetJobSpawnPoint(string jobId);
|
EntityCoordinates GetJobSpawnPoint(string jobId);
|
||||||
|
|||||||
Reference in New Issue
Block a user