Skip to content

Commit

Permalink
Fix some rounds failing to end due to mind roles (#32792) (#32793)
Browse files Browse the repository at this point in the history
* 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.
  • Loading branch information
PJB3005 authored Oct 13, 2024
1 parent e5ad32f commit 796764d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
19 changes: 17 additions & 2 deletions Content.Server/GameTicking/GameTicker.RoundFlow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -341,8 +341,23 @@ public void EndRound(string text = "")

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 = "")
Expand Down
2 changes: 2 additions & 0 deletions Resources/Prototypes/Roles/MindRoles/mind_roles.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@
description:
components:
- type: SubvertedSiliconRole
- type: MindRole
antagPrototype: SubvertedSilicon

# Dragon
- type: entity
Expand Down

0 comments on commit 796764d

Please sign in to comment.