Skip to content
Open
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,9 @@ private void RefreshRightPanel(SecureCommandTerminalInterfaceState state)
$"{Loc.GetString(proto.Description)}" +
(proto.SalaryPenalty > 0 ? $"\n{Loc.GetString("secure-terminal-salary-note", ("penalty", (int)(proto.SalaryPenalty * 100)))}" : string.Empty) +
(proto.Fee > 0 ? $"\n{Loc.GetString("secure-terminal-fee-note", ("fee", proto.Fee))}" : string.Empty) +
$"\n{Loc.GetString("secure-terminal-delay-note", ("minutes", Math.Max(1, proto.ActivationDelaySecs / 60)))}" +
(proto.ActivationDelaySecs <= 0
? $"\n{Loc.GetString("secure-terminal-delay-note-immediate")}"
: $"\n{Loc.GetString("secure-terminal-delay-note", ("minutes", Math.Max(1, proto.ActivationDelaySecs / 60)))}") +
warNote + noWarNote + alertNote + alertTimeNote + cooldownNote + usedNote));

// Request button – available if no pending/activating proposal and not on CD
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -719,6 +719,10 @@ private void ExecuteAction(EntityUid stationUid, SecureCommandTerminalRequestPro
_airlock.SetEmergencyAccess((ent, airlockcomp), proto.AccessEnabled);
}
break;

case SecureTerminalActionType.Announcement:
// Nothing to execute — the announcement is dispatched on full authorization.
break;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,4 +177,6 @@ public enum SecureTerminalActionType
Armory,
NukeCodes,
AirlockAccess,
/// <summary>Performs no mechanical change — the request exists purely for its announcement.</summary>
Announcement,
}
11 changes: 11 additions & 0 deletions Resources/Locale/en-US/_Starlight/secure_terminal.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ secure-terminal-delay-note = { $minutes ->
[1] ETA: 1 minute after authorization.
*[other] ETA: {$minutes} minutes after authorization.
}
secure-terminal-delay-note-immediate = Takes effect immediately on authorization.

secure-terminal-requires-no-war-note = Disabled during War Ops.
secure-terminal-requires-war-note = Only available during War Ops.
Expand Down Expand Up @@ -154,6 +155,16 @@ secure-terminal-med-pod-desc = Dispatches the Emergency Medical Pod — rapid-de
Use when mass casualties exceed the station's medical capacity.
secure-terminal-med-pod-announcement = The Emergency Medical Pod has been authorized and is en route. Estimated arrival: 5 minutes.

secure-terminal-itg-salvage-team-name = ITG Salvage Team
secure-terminal-itg-salvage-team-desc = Contracts the Interstellar Trade Guild's local Salvage team to engage active station threats.
Recommended when no Security personnel are present, or when Security cannot respond without assistance.
secure-terminal-itg-salvage-team-announcement = The Interstellar Trade Guild's local Salvage team has been contracted to engage active station threats.

secure-terminal-dismiss-itg-salvage-team-name = Dismiss ITG Salvage Team
secure-terminal-dismiss-itg-salvage-team-desc = Ends the Interstellar Trade Guild's assistance contract and returns their team to standard duties.
Recommended once all threats to the station have been dealt with.
secure-terminal-dismiss-itg-salvage-team-announcement = The Interstellar Trade Guild's contract has ended and their Salvage team has returned to standard duties.

secure-terminal-nukerequest-name = Self Destruct Code
secure-terminal-nukerequest-desc = Request the nuclear self-destruct codes.
Misuse of the nuclear request system will not be tolerated under any circumstances.
Expand Down
39 changes: 39 additions & 0 deletions Resources/Prototypes/_Starlight/secureterminal_requests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -488,6 +488,45 @@

#region Misc

# ── ITG Salvage Team ──────────────────────────────────────────────────────────
- type: secureTerminalRequest
id: ITGSalvageTeam
name: secure-terminal-itg-salvage-team-name
description: secure-terminal-itg-salvage-team-desc
announcement: secure-terminal-itg-salvage-team-announcement
announcementColor: "#ff4444"
activationDelaySecs: 0
Comment thread
coderabbitai[bot] marked this conversation as resolved.
fee: 10000
salaryPenalty: 0.0
actionType: Announcement
sortOrder: 200
authGroups:
- [Captain]
- [HeadOfSecurity]
authGroupLabels:
- "Captain (1)"
- "Head of Security (2)"
Comment thread
coderabbitai[bot] marked this conversation as resolved.
cooldownSecs: 600
Comment thread
coderabbitai[bot] marked this conversation as resolved.
authTimer: 60

# ── Dismiss ITG Salvage Team ──────────────────────────────────────────────────
- type: secureTerminalRequest
id: DismissITGSalvageTeam
name: secure-terminal-dismiss-itg-salvage-team-name
description: secure-terminal-dismiss-itg-salvage-team-desc
announcement: secure-terminal-dismiss-itg-salvage-team-announcement
announcementColor: "#ff4444"
activationDelaySecs: 0
fee: 0
salaryPenalty: 0.0
actionType: Announcement
sortOrder: 201
authGroups:
- [Captain, HeadOfSecurity]
authGroupLabels:
- "Captain / HoS (1)"
cooldownSecs: 0

# ── Self Destruct Code ─────────────────────────────────────────────────────
- type: secureTerminalRequest
id: NukeRequest
Expand Down
Loading