From: Pieter-Jan Briers Date: Sun, 13 Oct 2024 20:55:15 +0000 (+0200) Subject: Fix some rounds failing to end due to mind roles (#32792) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=c7b0d5a27cb40298e99ea08cdf77092575ef102b;p=space-station-14.git Fix some rounds failing to end due to mind roles (#32792) * Fix some rounds failing to end due to mind roles Fixes #32791 This is caused by ShowRoundEndScoreboard running into a bug trying to display antags: some player is showing up as antag with MindIsAntagonist(), but has no antag roles listed in MindGetAllRoleInfo(). This was caused by one of the roles of the player having the Antag boolean set, but having no AntagPrototype set. The responsible mind role appeared to be MindRoleSubvertedSilicon which is missing a set for the SubvertedSilicon antag prototype. I also added resilience to the round-end code to make it so that an exception showing the scoreboard (and sending the Discord message) would not cause the round end logic to completely abort from an exception. I am planning to add an integration test to cover this bug (no prototype in mind roles), but I'll leave that for not-the-immediate-hotfix. * At least one maintainer approved this tiny PR without reading it, not naming names. --- diff --git a/Content.Server/GameTicking/GameTicker.RoundFlow.cs b/Content.Server/GameTicking/GameTicker.RoundFlow.cs index 683061d8ed..e544870bd2 100644 --- a/Content.Server/GameTicking/GameTicker.RoundFlow.cs +++ b/Content.Server/GameTicking/GameTicker.RoundFlow.cs @@ -341,8 +341,23 @@ namespace Content.Server.GameTicking RunLevel = GameRunLevel.PostRound; - ShowRoundEndScoreboard(text); - SendRoundEndDiscordMessage(); + try + { + ShowRoundEndScoreboard(text); + } + catch (Exception e) + { + Log.Error($"Error while showing round end scoreboard: {e}"); + } + + try + { + SendRoundEndDiscordMessage(); + } + catch (Exception e) + { + Log.Error($"Error while sending round end Discord message: {e}"); + } } public void ShowRoundEndScoreboard(string text = "") diff --git a/Resources/Prototypes/Roles/MindRoles/mind_roles.yml b/Resources/Prototypes/Roles/MindRoles/mind_roles.yml index eb92fa51ae..926ce512b4 100644 --- a/Resources/Prototypes/Roles/MindRoles/mind_roles.yml +++ b/Resources/Prototypes/Roles/MindRoles/mind_roles.yml @@ -46,6 +46,8 @@ description: components: - type: SubvertedSiliconRole + - type: MindRole + antagPrototype: SubvertedSilicon # Dragon - type: entity