From: Jezithyr Date: Fri, 8 Nov 2024 11:46:22 +0000 (-0800) Subject: Stable Merge (#33218) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=84338686a3aeeb6b4e12a11c3b3e5b1420ed2f25;p=space-station-14.git Stable Merge (#33218) --- diff --git a/Content.Server/Antag/AntagSelectionSystem.cs b/Content.Server/Antag/AntagSelectionSystem.cs index 224629ff2e..610c0ad182 100644 --- a/Content.Server/Antag/AntagSelectionSystem.cs +++ b/Content.Server/Antag/AntagSelectionSystem.cs @@ -55,6 +55,8 @@ public sealed partial class AntagSelectionSystem : GameRuleSystem(OnTakeGhostRole); SubscribeLocalEvent(OnObjectivesTextGetInfo); @@ -360,6 +362,8 @@ public sealed partial class AntagSelectionSystem : GameRuleSystem { base.Initialize(); + Log.Level = LogLevel.Debug; + SubscribeLocalEvent(AfterEntitySelected); SubscribeLocalEvent(OnObjectivesTextPrepend); } @@ -53,6 +55,7 @@ public sealed class TraitorRuleSystem : GameRuleSystem private void AfterEntitySelected(Entity ent, ref AfterAntagEntitySelectedEvent args) { + Log.Debug($"AfterAntagEntitySelected {ToPrettyString(ent)}"); MakeTraitor(args.EntityUid, ent); } @@ -78,14 +81,22 @@ public sealed class TraitorRuleSystem : GameRuleSystem public bool MakeTraitor(EntityUid traitor, TraitorRuleComponent component) { + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - start"); + //Grab the mind if it wasn't provided if (!_mindSystem.TryGetMind(traitor, out var mindId, out var mind)) + { + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - failed, no Mind found"); return false; + } var briefing = ""; if (component.GiveCodewords) + { + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - added codewords flufftext to briefing"); briefing = Loc.GetString("traitor-role-codewords-short", ("codewords", string.Join(", ", component.Codewords))); + } var issuer = _random.Pick(_prototypeManager.Index(component.ObjectiveIssuers).Values); @@ -94,6 +105,7 @@ public sealed class TraitorRuleSystem : GameRuleSystem if (component.GiveUplink) { + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink start"); // Calculate the amount of currency on the uplink. var startingBalance = component.StartingBalance; if (_jobs.MindTryGetJob(mindId, out var prototype)) @@ -105,18 +117,27 @@ public sealed class TraitorRuleSystem : GameRuleSystem } // Choose and generate an Uplink, and return the uplink code if applicable + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink request start"); var uplinkParams = RequestUplink(traitor, startingBalance, briefing); code = uplinkParams.Item1; briefing = uplinkParams.Item2; + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink request completed"); } string[]? codewords = null; if (component.GiveCodewords) + { + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - set codewords from component"); codewords = component.Codewords; + } if (component.GiveBriefing) + { _antag.SendBriefing(traitor, GenerateBriefing(codewords, code, issuer), null, component.GreetSoundNotification); + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Sent the Briefing"); + } + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Adding TraitorMind"); component.TraitorMinds.Add(mindId); // Assign briefing @@ -126,9 +147,14 @@ public sealed class TraitorRuleSystem : GameRuleSystem _roleSystem.MindHasRole(mindId, out var traitorRole); if (traitorRole is not null) { + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Add traitor briefing components"); AddComp(traitorRole.Value.Owner); Comp(traitorRole.Value.Owner).Briefing = briefing; } + else + { + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - did not get traitor briefing"); + } // Send codewords to only the traitor client var color = TraitorCodewordColor; // Fall back to a dark red Syndicate color if a prototype is not found @@ -137,9 +163,11 @@ public sealed class TraitorRuleSystem : GameRuleSystem _roleCodewordSystem.SetRoleCodewords(codewordComp, "traitor", component.Codewords.ToList(), color); // Change the faction + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Change faction"); _npcFaction.RemoveFaction(traitor, component.NanoTrasenFaction, false); _npcFaction.AddFaction(traitor, component.SyndicateFaction); + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Finished"); return true; } @@ -148,10 +176,12 @@ public sealed class TraitorRuleSystem : GameRuleSystem var pda = _uplink.FindUplinkTarget(traitor); Note[]? code = null; + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink add"); var uplinked = _uplink.AddUplink(traitor, startingBalance, pda, true); if (pda is not null && uplinked) { + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink is PDA"); // Codes are only generated if the uplink is a PDA code = EnsureComp(pda.Value).Code; @@ -163,6 +193,7 @@ public sealed class TraitorRuleSystem : GameRuleSystem } else if (pda is null && uplinked) { + Log.Debug($"MakeTraitor {ToPrettyString(traitor)} - Uplink is implant"); briefing += "\n" + Loc.GetString("traitor-role-uplink-implant-short"); } diff --git a/Content.Server/Thief/Systems/ThiefBeaconSystem.cs b/Content.Server/Thief/Systems/ThiefBeaconSystem.cs index de1c3d2e6d..4c65ba5c44 100644 --- a/Content.Server/Thief/Systems/ThiefBeaconSystem.cs +++ b/Content.Server/Thief/Systems/ThiefBeaconSystem.cs @@ -20,7 +20,6 @@ public sealed class ThiefBeaconSystem : EntitySystem [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly MindSystem _mind = default!; [Dependency] private readonly SharedRoleSystem _roles = default!; - public override void Initialize() { base.Initialize(); diff --git a/Resources/Prototypes/GameRules/roundstart.yml b/Resources/Prototypes/GameRules/roundstart.yml index cec5c9ee09..6ca322d0d5 100644 --- a/Resources/Prototypes/GameRules/roundstart.yml +++ b/Resources/Prototypes/GameRules/roundstart.yml @@ -191,12 +191,17 @@ - type: entity id: TraitorReinforcement - parent: Traitor + parent: BaseTraitorRule components: - type: TraitorRule giveUplink: false giveCodewords: false # It would actually give them a different set of codewords than the regular traitors, anyway giveBriefing: false + - type: AntagSelection + definitions: + - prefRoles: [ Traitor ] + mindRoles: + - MindRoleTraitor - type: entity id: Revolutionary @@ -280,7 +285,6 @@ tableId: CalmPestEventsTable - !type:NestedSelector tableId: SpicyPestEventsTable - - type: entityTable id: SpaceTrafficControlTable