[Tweak] Default to Traitor instead of Extended when possible (#16386)
This commit is contained in:
parent
a9be0b2ba4
commit
ecef573af5
|
|
@ -42,27 +42,38 @@ namespace Content.Server.GameTicking
|
|||
|
||||
if (_configurationManager.GetCVar(CCVars.GameLobbyFallbackEnabled))
|
||||
{
|
||||
ClearGameRules();
|
||||
SetGamePreset(_configurationManager.GetCVar(CCVars.GameLobbyFallbackPreset));
|
||||
AddGamePresetRules();
|
||||
StartGamePresetRules();
|
||||
var fallbackPresets = _configurationManager.GetCVar(CCVars.GameLobbyFallbackPreset).Split(",");
|
||||
var startFailed = true;
|
||||
|
||||
startAttempt.Uncancel();
|
||||
RaiseLocalEvent(startAttempt);
|
||||
foreach (var preset in fallbackPresets)
|
||||
{
|
||||
ClearGameRules();
|
||||
SetGamePreset(preset);
|
||||
AddGamePresetRules();
|
||||
StartGamePresetRules();
|
||||
|
||||
_chatManager.DispatchServerAnnouncement(
|
||||
Loc.GetString("game-ticker-start-round-cannot-start-game-mode-fallback",
|
||||
("failedGameMode", presetTitle),
|
||||
("fallbackMode", Loc.GetString(Preset!.ModeTitle))));
|
||||
startAttempt.Uncancel();
|
||||
RaiseLocalEvent(startAttempt);
|
||||
|
||||
if (startAttempt.Cancelled)
|
||||
if (!startAttempt.Cancelled)
|
||||
{
|
||||
_chatManager.SendAdminAnnouncement(
|
||||
Loc.GetString("game-ticker-start-round-cannot-start-game-mode-fallback",
|
||||
("failedGameMode", presetTitle),
|
||||
("fallbackMode", Loc.GetString(preset))));
|
||||
RefreshLateJoinAllowed();
|
||||
startFailed = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (startFailed)
|
||||
{
|
||||
FailedPresetRestart();
|
||||
return false;
|
||||
}
|
||||
|
||||
RefreshLateJoinAllowed();
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
FailedPresetRestart();
|
||||
|
|
|
|||
|
|
@ -825,7 +825,7 @@ public sealed class NukeopsRuleSystem : GameRuleSystem<NukeopsRuleComponent>
|
|||
var minPlayers = nukeops.MinPlayers;
|
||||
if (!ev.Forced && ev.Players.Length < minPlayers)
|
||||
{
|
||||
_chatManager.DispatchServerAnnouncement(Loc.GetString("nukeops-not-enough-ready-players",
|
||||
_chatManager.SendAdminAnnouncement(Loc.GetString("nukeops-not-enough-ready-players",
|
||||
("readyPlayersCount", ev.Players.Length), ("minimumPlayers", minPlayers)));
|
||||
ev.Cancel();
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -267,7 +267,7 @@ public sealed class PiratesRuleSystem : GameRuleSystem<PiratesRuleComponent>
|
|||
var minPlayers = _cfg.GetCVar(CCVars.PiratesMinPlayers);
|
||||
if (!ev.Forced && ev.Players.Length < minPlayers)
|
||||
{
|
||||
_chatManager.DispatchServerAnnouncement(Loc.GetString("nukeops-not-enough-ready-players",
|
||||
_chatManager.SendAdminAnnouncement(Loc.GetString("nukeops-not-enough-ready-players",
|
||||
("readyPlayersCount", ev.Players.Length), ("minimumPlayers", minPlayers)));
|
||||
ev.Cancel();
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ public sealed class SecretRuleSystem : GameRuleSystem<SecretRuleComponent>
|
|||
|
||||
private void PickRule(SecretRuleComponent component)
|
||||
{
|
||||
// TODO: This doesn't consider what can't start due to minimum player count, but currently there's no way to know anyway.
|
||||
// as they use cvars.
|
||||
// TODO: This doesn't consider what can't start due to minimum player count,
|
||||
// but currently there's no way to know anyway as they use cvars.
|
||||
var preset = _prototypeManager.Index<WeightedRandomPrototype>("Secret").Pick(_random);
|
||||
Logger.InfoS("gamepreset", $"Selected {preset} for secret.");
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public sealed class TraitorRuleSystem : GameRuleSystem<TraitorRuleComponent>
|
|||
var minPlayers = _cfg.GetCVar(CCVars.TraitorMinPlayers);
|
||||
if (!ev.Forced && ev.Players.Length < minPlayers)
|
||||
{
|
||||
_chatManager.DispatchServerAnnouncement(Loc.GetString("traitor-not-enough-ready-players",
|
||||
_chatManager.SendAdminAnnouncement(Loc.GetString("traitor-not-enough-ready-players",
|
||||
("readyPlayersCount", ev.Players.Length), ("minimumPlayers", minPlayers)));
|
||||
ev.Cancel();
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -165,7 +165,9 @@ public sealed class ZombieRuleSystem : GameRuleSystem<ZombieRuleComponent>
|
|||
var minPlayers = _cfg.GetCVar(CCVars.ZombieMinPlayers);
|
||||
if (!ev.Forced && ev.Players.Length < minPlayers)
|
||||
{
|
||||
_chatManager.DispatchServerAnnouncement(Loc.GetString("zombie-not-enough-ready-players", ("readyPlayersCount", ev.Players.Length), ("minimumPlayers", minPlayers)));
|
||||
_chatManager.SendAdminAnnouncement(Loc.GetString("zombie-not-enough-ready-players",
|
||||
("readyPlayersCount", ev.Players.Length),
|
||||
("minimumPlayers", minPlayers)));
|
||||
ev.Cancel();
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ namespace Content.Shared.CCVar
|
|||
/// The preset for the game to fall back to if the selected preset could not be used, and fallback is enabled.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<string>
|
||||
GameLobbyFallbackPreset = CVarDef.Create("game.fallbackpreset", "extended", CVar.ARCHIVE);
|
||||
GameLobbyFallbackPreset = CVarDef.Create("game.fallbackpreset", "Traitor,Extended", CVar.ARCHIVE);
|
||||
|
||||
/// <summary>
|
||||
/// Controls if people can win the game in Suspicion or Deathmatch.
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ traitor-objective-condition-fail = {$condition} | [color={$markupColor}]Failure!
|
|||
|
||||
traitor-title = Traitor
|
||||
traitor-description = There are traitors among us...
|
||||
traitor-not-enough-ready-players = Not enough players readied up for the game! There were {$readyPlayersCount} players readied up out of {$minimumPlayers} needed.
|
||||
traitor-not-enough-ready-players = Not enough players readied up for the game! There were {$readyPlayersCount} players readied up out of {$minimumPlayers} needed. Can't start Traitor.
|
||||
traitor-no-one-ready = No players readied up! Can't start Traitor.
|
||||
|
||||
## TraitorDeathMatch
|
||||
|
|
|
|||
Loading…
Reference in New Issue