diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs index 6fb939d94ad..5c80cc22407 100644 --- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs +++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs @@ -8,6 +8,7 @@ using Content.Shared.Access; using Content.Shared.CCVar; using Content.Shared.Database; +using Content.Shared.Emag.Systems; using Content.Shared.DeviceNetwork; using Content.Shared.Popups; using Content.Shared.Shuttles.BUIStates; @@ -93,6 +94,7 @@ private void InitializeEmergencyConsole() SubscribeLocalEvent(OnEmergencyRepeal); SubscribeLocalEvent(OnEmergencyRepealAll); SubscribeLocalEvent(OnEmergencyOpenAttempt); + SubscribeLocalEvent(OnEmagged); // Corvax-Hijack } private void OnEmergencyOpenAttempt(EntityUid uid, EmergencyShuttleConsoleComponent component, ActivatableUIOpenAttemptEvent args) @@ -105,6 +107,14 @@ private void OnEmergencyOpenAttempt(EntityUid uid, EmergencyShuttleConsoleCompon } } + // Corvax-Hijack-Start + private void OnEmagged(EntityUid uid, EmergencyShuttleConsoleComponent component, ref GotEmaggedEvent args) + { + _logger.Add(LogType.EmergencyShuttle, LogImpact.Extreme, $"{ToPrettyString(args.UserUid):player} emagged shuttle console for early launch"); + EarlyLaunch(); + } + // Corvax-Hijack-End + private void SetAuthorizeTime(float obj) { _authorizeTime = obj; diff --git a/Resources/Prototypes/Corvax/Objectives/traitorObjectives.yml b/Resources/Prototypes/Corvax/Objectives/traitorObjectives.yml new file mode 100644 index 00000000000..27ee0041da6 --- /dev/null +++ b/Resources/Prototypes/Corvax/Objectives/traitorObjectives.yml @@ -0,0 +1,13 @@ +- type: entity + noSpawn: true + parent: [BaseTraitorObjective, BaseLivingObjective] + id: HijackShuttleObjective + name: Hijack emergency shuttle + description: Leave on the shuttle free and clear of the loyal Nanotrasen crew on board. Use ANY methods available to you. Syndicate agents, Nanotrasen enemies, and handcuffed hostages may remain alive on the shuttle. Ignore assistance from anyone other than a support agent. + components: + - type: Objective + difficulty: 5 #Hijacker don't help anyone else + icon: + sprite: Objects/Tools/emag.rsi + state: icon + - type: HijackShuttleCondition diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index abdc54fc5aa..4ffd09e961d 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -34,7 +34,7 @@ weights: EscapeShuttleObjective: 1 DieObjective: 0.05 - #HijackShuttleObjective: 0.02 + HijackShuttleObjective: 0.02 #Corvax-Hijack - type: weightedRandom id: TraitorObjectiveGroupSocial