Traitor objective issuers (#27855)

* the thing

* another one

---------

Co-authored-by: whateverusername0 <whateveremail>
This commit is contained in:
username
2024-05-10 12:01:02 +10:00
committed by GitHub
parent a4ab997f1f
commit 42571b12e9
4 changed files with 21 additions and 4 deletions

View File

@@ -31,6 +31,9 @@ public sealed partial class TraitorRuleComponent : Component
[DataField] [DataField]
public ProtoId<DatasetPrototype> CodewordVerbs = "verbs"; public ProtoId<DatasetPrototype> CodewordVerbs = "verbs";
[DataField]
public ProtoId<DatasetPrototype> ObjectiveIssuers = "TraitorCorporations";
public int TotalTraitors => TraitorMinds.Count; public int TotalTraitors => TraitorMinds.Count;
public string[] Codewords = new string[3]; public string[] Codewords = new string[3];

View File

@@ -74,6 +74,7 @@ public sealed class TraitorRuleSystem : GameRuleSystem<TraitorRuleComponent>
return false; return false;
var briefing = Loc.GetString("traitor-role-codewords-short", ("codewords", string.Join(", ", component.Codewords))); var briefing = Loc.GetString("traitor-role-codewords-short", ("codewords", string.Join(", ", component.Codewords)));
var issuer = _random.Pick(_prototypeManager.Index(component.ObjectiveIssuers).Values);
Note[]? code = null; Note[]? code = null;
if (giveUplink) if (giveUplink)
@@ -97,7 +98,7 @@ public sealed class TraitorRuleSystem : GameRuleSystem<TraitorRuleComponent>
Loc.GetString("traitor-role-uplink-code-short", ("code", string.Join("-", code).Replace("sharp", "#")))); Loc.GetString("traitor-role-uplink-code-short", ("code", string.Join("-", code).Replace("sharp", "#"))));
} }
_antag.SendBriefing(traitor, GenerateBriefing(component.Codewords, code), null, component.GreetSoundNotification); _antag.SendBriefing(traitor, GenerateBriefing(component.Codewords, code, issuer), null, component.GreetSoundNotification);
component.TraitorMinds.Add(mindId); component.TraitorMinds.Add(mindId);
@@ -142,10 +143,10 @@ public sealed class TraitorRuleSystem : GameRuleSystem<TraitorRuleComponent>
args.Text += "\n" + Loc.GetString("traitor-round-end-codewords", ("codewords", string.Join(", ", comp.Codewords))); args.Text += "\n" + Loc.GetString("traitor-round-end-codewords", ("codewords", string.Join(", ", comp.Codewords)));
} }
private string GenerateBriefing(string[] codewords, Note[]? uplinkCode) private string GenerateBriefing(string[] codewords, Note[]? uplinkCode, string? objectiveIssuer = null)
{ {
var sb = new StringBuilder(); var sb = new StringBuilder();
sb.AppendLine(Loc.GetString("traitor-role-greeting")); sb.AppendLine(Loc.GetString("traitor-role-greeting", ("corporation", objectiveIssuer ?? Loc.GetString("objective-issuer-unknown"))));
sb.AppendLine(Loc.GetString("traitor-role-codewords-short", ("codewords", string.Join(", ", codewords)))); sb.AppendLine(Loc.GetString("traitor-role-codewords-short", ("codewords", string.Join(", ", codewords))));
if (uplinkCode != null) if (uplinkCode != null)
sb.AppendLine(Loc.GetString("traitor-role-uplink-code-short", ("code", string.Join("-", uplinkCode).Replace("sharp", "#")))); sb.AppendLine(Loc.GetString("traitor-role-uplink-code-short", ("code", string.Join("-", uplinkCode).Replace("sharp", "#"))));

View File

@@ -4,6 +4,7 @@ traitor-round-end-codewords = The codewords were: [color=White]{$codewords}[/col
traitor-round-end-agent-name = traitor traitor-round-end-agent-name = traitor
objective-issuer-syndicate = [color=crimson]The Syndicate[/color] objective-issuer-syndicate = [color=crimson]The Syndicate[/color]
objective-issuer-unknown = Unknown
# Shown at the end of a round of Traitor # Shown at the end of a round of Traitor
@@ -23,7 +24,7 @@ traitor-death-match-end-round-description-entry = {$originalName}'s PDA, with {$
# TraitorRole # TraitorRole
traitor-role-greeting = traitor-role-greeting =
You are a syndicate agent. You are an agent sent by {$corporation} on behalf of The Syndicate.
Your objectives and codewords are listed in the character menu. Your objectives and codewords are listed in the character menu.
Use the uplink loaded into your PDA to buy the tools you'll need for this mission. Use the uplink loaded into your PDA to buy the tools you'll need for this mission.
Death to Nanotrasen! Death to Nanotrasen!

View File

@@ -0,0 +1,12 @@
- type: dataset
id: TraitorCorporations
values:
- "CyberSun Industries"
- "Gorlex Marauders"
- "MI13"
- "Tiger Cooperative"
- "S.E.L.F."
- "Animal Rights Consortium"
- "Donk Corporation"
- "Waffle Corporation"
- "Interdyne Pharmaceutics"