Nukeops disk-centric win condition (#39715)

This commit is contained in:
psykana 2026-07-09 21:36:24 +01:00 • committed by GitHub
parent 74e357cd81
commit cc73c80aaf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 8 additions and 11 deletions

View file

@ -109,8 +109,7 @@ public enum WinType : byte
/// </summary>
OpsMajor,
/// <summary>
/// Minor win. All nukies were alive at the end of the round.
/// Alternatively, some nukies were alive, but the disk was left behind.
/// Operative minor win. At least one nukie survived, and the disk was left behind.
/// </summary>
OpsMinor,
/// <summary>

View file

@ -321,14 +321,14 @@ public sealed partial class NukeopsRuleSystem : GameRuleSystem<NukeopsRuleCompon
if (_antag.AllAntagsAlive(ent.Owner))
{
SetWinType(ent, WinType.OpsMinor);
ent.Comp.WinConditions.Add(WinCondition.AllNukiesAlive);
return;
}
ent.Comp.WinConditions.Add(_antag.AnyAliveAntags(ent.Owner)
? WinCondition.SomeNukiesAlive
: WinCondition.AllNukiesDead);
else
{
ent.Comp.WinConditions.Add(_antag.AnyAliveAntags(ent.Owner)
? WinCondition.SomeNukiesAlive
: WinCondition.AllNukiesDead);
}
var diskAtCentCom = false;
var diskQuery = AllEntityQuery<NukeDiskComponent, TransformComponent>();
@ -343,7 +343,6 @@ public sealed partial class NukeopsRuleSystem : GameRuleSystem<NukeopsRuleCompon
}
// If the disk is currently at Central Command, the crew wins - just slightly.
// This also implies that some nuclear operatives have died.
SetWinType(ent,
diskAtCentCom
? WinType.CrewMinor

View file

@ -111,8 +111,7 @@
- The nuke is armed and delivered to Central Command on the evac shuttle.
[bold][color=red]Syndicate Minor Victory[/color][/bold]
- The crew escapes on evac, but every operative survives.
- The crew escapes and some operatives die, but the crew loses the disk.
- At least one operative survives, and the crew escapes, leaving the disk behind.
[bold][color=#999999]Neutral Victory[/color][/bold]
- The nuke detonates off the station.