From b58a7f69a2302f42751931725b41edbde30a29b9 Mon Sep 17 00:00:00 2001
From: Samuka <47865393+Samuka-C@users.noreply.github.com>
Date: Sun, 30 Nov 2025 00:09:50 -0300
Subject: [PATCH] Make xenoborg round end text better (#41623)
* make xenoborg win color easier to read
* display the max number of xenoborgs and the number of crew alive in the end
* make it a datafield
* add : (literally)
* add period
* make text better
---
.../Rules/Components/XenoborgsRuleComponent.cs | 6 ++++++
.../GameTicking/Rules/XenoborgsRuleSystem.cs | 9 ++++++++-
.../game-ticking/game-presets/preset-xenoborgs.ftl | 13 +++++++------
3 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/Content.Server/GameTicking/Rules/Components/XenoborgsRuleComponent.cs b/Content.Server/GameTicking/Rules/Components/XenoborgsRuleComponent.cs
index 742890226f..c7496bb0fb 100644
--- a/Content.Server/GameTicking/Rules/Components/XenoborgsRuleComponent.cs
+++ b/Content.Server/GameTicking/Rules/Components/XenoborgsRuleComponent.cs
@@ -25,6 +25,12 @@ public sealed partial class XenoborgsRuleComponent : Component
[DataField]
public float XenoborgShuttleCallPercentage = 0.7f;
+ ///
+ /// The most xenoborgs that existed at one point.
+ ///
+ [DataField]
+ public int MaxNumberXenoborgs = 0;
+
///
/// If the announcment of the death of the mothership core was sent
///
diff --git a/Content.Server/GameTicking/Rules/XenoborgsRuleSystem.cs b/Content.Server/GameTicking/Rules/XenoborgsRuleSystem.cs
index 94b6315a6b..97a6efb471 100644
--- a/Content.Server/GameTicking/Rules/XenoborgsRuleSystem.cs
+++ b/Content.Server/GameTicking/Rules/XenoborgsRuleSystem.cs
@@ -75,7 +75,12 @@ public sealed class XenoborgsRuleSystem : GameRuleSystem
else if (numXenoborgs == 0)
args.AddLine(Loc.GetString("xenoborgs-cond-all-xenoborgs-dead-core-alive"));
else
- args.AddLine(Loc.GetString("xenoborgs-cond-xenoborgs-alive", ("count", numXenoborgs)));
+ {
+ args.AddLine(Loc.GetString("xenoborg-number-xenoborg-alive-end", ("count", numXenoborgs)));
+ args.AddLine(Loc.GetString("xenoborg-number-crew-alive-end", ("count", numHumans)));
+ }
+
+ args.AddLine(Loc.GetString("xenoborg-max-number", ("count", component.MaxNumberXenoborgs)));
args.AddLine(Loc.GetString("xenoborgs-list-start"));
@@ -93,6 +98,8 @@ public sealed class XenoborgsRuleSystem : GameRuleSystem
var numXenoborgs = GetNumberXenoborgs();
var numHumans = _mindSystem.GetAliveHumans().Count;
+ xenoborgsRuleComponent.MaxNumberXenoborgs = Math.Max(xenoborgsRuleComponent.MaxNumberXenoborgs, numXenoborgs);
+
if ((float)numXenoborgs / (numHumans + numXenoborgs) > xenoborgsRuleComponent.XenoborgShuttleCallPercentage)
{
foreach (var station in _station.GetStations())
diff --git a/Resources/Locale/en-US/game-ticking/game-presets/preset-xenoborgs.ftl b/Resources/Locale/en-US/game-ticking/game-presets/preset-xenoborgs.ftl
index 9ded853d56..111aba947a 100644
--- a/Resources/Locale/en-US/game-ticking/game-presets/preset-xenoborgs.ftl
+++ b/Resources/Locale/en-US/game-ticking/game-presets/preset-xenoborgs.ftl
@@ -7,18 +7,19 @@ mothership-welcome = You're the mothership core. Guide the xenoborgs so they can
xenoborg-shuttle-call = We have detected that Xenoborgs have overtaken the station. Dispatching an emergency shuttle to collect remaining personnel.
-xenoborgs-borgsmajor = [color=blue]Xenoborg major victory![/color]
-xenoborgs-borgsminor = [color=blue]Xenoborg minor victory![/color]
+xenoborgs-borgsmajor = [color=deepskyblue]Xenoborg major victory![/color]
+xenoborgs-borgsminor = [color=deepskyblue]Xenoborg minor victory![/color]
xenoborgs-neutral = [color=white]Neutral outcome![/color]
xenoborgs-crewminor = [color=yellow]Crew minor victory![/color]
xenoborgs-crewmajor = [color=yellow]Crew major victory![/color]
xenoborgs-cond-all-xenoborgs-dead-core-alive = All xenoborgs were destroyed. The mothership core remains adrift in space.
xenoborgs-cond-all-xenoborgs-dead-core-dead = The mothership core was destroyed and there are no xenoborgs left.
-xenoborgs-cond-xenoborgs-alive = {$count ->
- [one] Only one xenoborg survived.
- *[other] There were {$count} xenoborgs in the end.
-}
+
+xenoborg-number-xenoborg-alive-end = Number of xenoborgs alive: {$count}
+xenoborg-number-crew-alive-end = Number of crew alive: {$count}
+
+xenoborg-max-number = The highest number of xenoborgs was: {$count}
xenoborgs-list-start = The starting xenoborg team were:
xenoborgs-list = - [color=White]{$name}[/color] ([color=gray]{$user}[/color])
--
2.52.0