Skip to content

Commit

Permalink
Adds the CIA, Removes UAAC-TIS (#7757)
Browse files Browse the repository at this point in the history
# About the pull request

Adds the CIA, the intelligence agency that needs to introduction.
Featuring a briefcase full of goodies, covert operations, and several
disguises, CIA agents can be planted into various places or even into
the USCM.

This PR fully replaces the UAAC-TIS intelligence officers formerly in
the game. Nobody really used them (save for a select few) and I figured
it'd be better to go out with the American Gestapo and in with actual
spies.

Note that this is admin spawn only for now. In the future it's possible
additional covers, ERT or even survivor roles.

The following CIA covers have been added:

- Intelligence Analyst: The classic "tourist" business casual look of
Vietnam-era CIA. Casual clothing, civilian rank, modifiable job.
- USCM Liaison: A (**real**) military officer who works with the CIA as
a military liaison, though not in an outright public way. Can be either
O-2 or O-3.
- Marine Raider: A CIA agent operating as a Marine Raider. They're on
the same side, just possibly with differing objectives.
- UPP Soldier: A UPP grunt recruited as a CIA informant.
- UPP Senior Officer: A UPP _Starshiy Leytenant_ officer recruited as a
CIA informant.
- CLF Engineer: A CLF field technician recruited as a CIA informant.

All of the above come with the CIA briefcase, a device capable of
procuring various goods and weaponry for use in spycraft. The briefcase
includes things like:
- Abduction and sedation weapons like chloroform, a tranq gun, and
handcuffs.
- Basic stationery (pen and paper).
- Marine armor and clothing, for when shit hits the fan.
- Extra magazines.
- Hacking stuff.
- Radio keys for various factions, including the CIA's own radio
channel.
- Listening bugs.
- A USCM codebook for verifying you are actually with the government, in
case anyone has doubts.

# Explain why it's good for the game

Spycraft! I believe adding CIA adds a ton of roleplay potential with
these people as well as the ability to carry out actual
(admin-sanctioned) antaggery like abducting people or interrogating
others in a subtle, government-sanctioned way.

# Things CIA Might Do
Event-runners use this table as your inspiration to find out what
morally-questionable things your agents may do.

- Wiretap dialog in certain important areas like the CIC or brig.
- "Extract" an asset like a person or a thing from the Almayer or AO.
- Perform "enhanced interrogation methods".
- Subtly feed information or misinformation to command to sway them a
little.
- Make a problematic person _disappear_.
- Local whistleblower found dead with 5 shots to the back of the head;
ruled self-inflicted.

# The Elephant

CIA agents, naturally, work for the government of the United Americas,
and nobody else. The USCM and CIA are fighting for the same team, but
CIA might have interests or methods that differ slightly or are above
the paygrades of most marines.

CIA agents prioritize plausible deniability for covers with allies, and
they're often well aware of the fact that people can see right through
their generic cover identities; the goal isn't to trick allies, it's to
prevent the CIA from being finger-pointed at directly if something goes
south. The USCM knows there might be agents in their ranks, but since
they're usually actually helpful - and pointing out a CIA agent does
nothing for them anyway - they don't really care, and neither should
marines. (Spies are a different story.)

For obvious reasons no CIA agent should ever say "I am with the CIA." If
not outright disguised, it's up to the individual (or the admin) to
fabricate a cover story, like "I'm an intelligence analyst working for
ARMAT" or "I'm part of a battlefield survey team to improve logistics."
You can modify your ID accordingly to suit your cover. Be creative, and
be subtle.

# Screenshots
<details>
<summary>Screenshots & Videos</summary>


![image](https://github.com/user-attachments/assets/debdc096-633a-4821-81a2-df3c99979514)

![image](https://github.com/user-attachments/assets/59120e6a-6e41-4aef-ba78-3c529f1cd78d)

![image](https://github.com/user-attachments/assets/53b8679c-6099-4ea9-b1b7-4a21b323b729)

![image](https://github.com/user-attachments/assets/7b8c119b-6b1f-4b3b-8fe1-e34f5462ce0c)

![image](https://github.com/user-attachments/assets/3d6e92e0-c394-4f9a-a4f5-306cb1d38e2f)

</details>


# Changelog
:cl:
add: Adds CIA agents to the game. These are disguised as either
civilians, liaisons, or people in other factions and have a plethora of
tools to achieve any objectives they might be assigned to.
del: Deletes the UAAC-TIS from the game.
/:cl:

---------

Co-authored-by: harryob <[email protected]>
  • Loading branch information
nauticall and harryob authored Dec 11, 2024
1 parent 3fe9e23 commit 42adb16
Show file tree
Hide file tree
Showing 26 changed files with 339 additions and 220 deletions.
3 changes: 3 additions & 0 deletions code/__DEFINES/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ most of them are tied into map-placed objects. This should be reworked in the fu
///The generic "I'm a bad guy" access
#define ACCESS_ILLEGAL_PIRATE 120

//CIA-locked covert items
#define ACCESS_CIA 125

//=================================================

//Weyland Yutani access levels (200-229)
Expand Down
6 changes: 3 additions & 3 deletions code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -367,9 +367,9 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)
#define JOB_RIOT_CHIEF "Chief Riot Control"

#define RIOT_JOB_LIST list(JOB_RIOT, JOB_RIOT_CHIEF)
//-------- UAAC --------//
#define JOB_TIS_IO "UAAC-TIS Intelligence Officer"
#define JOB_TIS_SA "UAAC-TIS Special Agent"
//-------- CIA --------//
#define JOB_CIA "Intelligence Analyst"
#define JOB_CIA_LIAISON "Intelligence Liaison Officer"

#define TIS_JOB_LIST list(JOB_TIS_SA, JOB_TIS_IO)
//-------- DUTCH'S DOZEN --------//
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/radio.dm
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
#define RADIO_CHANNEL_VAI "VAI"
#define RADIO_CHANNEL_CMB "CMB"
#define RADIO_CHANNEL_ROYAL_MARINE "Royal Marine"
#define RADIO_CHANNEL_CIA "CIA"

#define RADIO_CHANNEL_YAUTJA "Yautja"

3 changes: 3 additions & 0 deletions code/controllers/subsystem/communications.dm
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency
#define VAI_FREQ 1215
#define RMC_FREQ 1216
#define CMB_FREQ 1220
#define CIA_FREQ 1225

//WY Channels (1230-1249)
#define WY_FREQ 1231
Expand Down Expand Up @@ -154,6 +155,7 @@ GLOBAL_LIST_INIT(radiochannels, list(
RADIO_CHANNEL_CMB = CMB_FREQ,
RADIO_CHANNEL_DUTCH_DOZEN = DUT_FREQ,
RADIO_CHANNEL_ROYAL_MARINE = RMC_FREQ,
RADIO_CHANNEL_CIA = CIA_FREQ,

RADIO_CHANNEL_HIGHCOM = HC_FREQ,
RADIO_CHANNEL_PROVOST = PVST_FREQ,
Expand Down Expand Up @@ -278,6 +280,7 @@ SUBSYSTEM_DEF(radio)
"[WY_FREQ]" = "wyradio",
"[VAI_FREQ]" = "vairadio",
"[RMC_FREQ]" = "rmcradio",
"[CIA_FREQ]" = "ciaradio",
"[CMB_FREQ]" = "cmbradio",
"[ALPHA_FREQ]" = "alpharadio",
"[BRAVO_FREQ]" = "bravoradio",
Expand Down
58 changes: 58 additions & 0 deletions code/datums/agents/tools.dm
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,61 @@

/obj/item/stack/points/p20
amount = 20

/obj/item/device/portable_vendor/antag/cia
name = "Automated Storage Briefcase"
desc = "A briefcase able to dispense items at the user's discretion. This one appears to be tightly locked, and impenetrable."
points = 200
max_points = 300
delay = 0.5
force = MELEE_FORCE_STRONG
req_access = list()

listed_products = list(
list("STATIONERY", 0, null, null, null),
list("pen", 1, /obj/item/tool/pen/clicky, "white", "A pen, for writing on the go."),
list("Paper", 1, /obj/item/paper, "white", "A fresh piece of paper, for writing on."),
list("Carbon Paper", 1, /obj/item/paper/carbon, "white", "A piece of carbon paper, to double the writing output."),
list("Clipboard", 1, /obj/item/clipboard, "white", "A clipboard, for storing all that writing."),

list("WEAPONS", 0, null, null, null),
list("Configured Stunbaton", 25, /obj/item/weapon/baton/antag, "white", "A stun baton with more charge."),
list("Tranquilizer Gun", 25, /obj/item/weapon/gun/pistol/tranquilizer, "white", "A tranquilizer gun. Comes with 5 darts. Deals no damage, knockout guaranteed."),
list("Chloroform Cloth", 18, /obj/item/weapon/chloroform, "white", "A cloth dosed with chloroform. Has 8 effective uses and can only be used whilst behind a target. You must be in disarm intent to use."),
list("Sedative Pen", 15, /obj/item/tool/pen/sleepypen, "white", "A sedative syringe disguised as a pen. Can be used to stealthily knock out targets."),
list("Handcuffs", 2, /obj/item/restraint/handcuffs, "white", "A set of handcuffs."),

list("AMMUNITION", 0, null, null, null),
list("M1911 Magazine", 5, /obj/item/ammo_magazine/pistol/m1911, "white", "A magazine for an M1911 pistol."),

list("UTILITY", 0, null, null, null),
list("Security Access Tuner v2", 25, /obj/item/device/multitool/antag, "white", "An upgraded access tuner, able to rapidly hack various machinery. Disguised as a regular multitool."),
list("Listening Device", 20, /obj/item/device/radio/listening_bug/radio_linked/cia, "white", "A listening device. Can be disguised as anything by right-clicking on it."),
list("USCM Codebook", 20, /obj/item/book/codebook, "white", "A copy of a USCM codebook used to verify credentials with the commanding officer."),
list("Tools Kit", 15, /obj/item/storage/toolbox/mechanical, "white", "A toolbox containing general tools."),
list("CIA Challenge Coin", 15, /obj/item/coin/silver/cia, "white", "A challenge coin emblazoned with an eagle. Use to identify other CIA operatives on the field at a glance."),

list("MARINE CLOTHING", 0, null, null, null),
list("Marine Helmet", 5, /obj/item/clothing/head/helmet/marine, "white", "A USCM standard military helmet."),
list("Marine Fatigues", 8, /obj/item/clothing/under/marine, "white", "A USCM standard military battle dress uniform."),
list("M3 Pattern Marine Armor", 20, /obj/item/clothing/suit/storage/marine, "white", "A USCM standard armor rig for combat situations."),
list("M3 Pattern Marine Armor", 15, /obj/item/clothing/suit/storage/marine/light, "white", "A USCM light armor rig for combat situations."),
list("M3-VL Ballistics Vest", 12, /obj/item/clothing/suit/storage/marine/light/vest, "white", "A USCM light ballistic vest for combat situations."),

list("RADIO KEYS", 0, null, null, null),
list("Radio Key: CIA", 10, /obj/item/device/encryptionkey/cia, "white", "Radio Key for CIA communications."),
list("Radio Key: Colonial Marshals", 20, /obj/item/device/encryptionkey/cmb, "white", "Radio Key for the CMB."),
list("Radio Key: Colonial Liberation Front", 20, /obj/item/device/encryptionkey/clf, "white", "Radio Key for known local CLF frequencies."),
list("Radio Key: Union of Progressive Peoples", 20, /obj/item/device/encryptionkey/upp, "white", "Radio Key for known UPP listening frequencies."),

list("TRANSFER POINTS", 0, null, null, null),
list("1 point", 1, /obj/item/stack/points/p1, "white", "A method of transferring points between agents."),
list("5 points", 5, /obj/item/stack/points/p5, "white", "A method of transferring points between agents."),
list("20 points", 20, /obj/item/stack/points/p20, "white", "A method of transferring points between agents."),
)

/obj/item/device/portable_vendor/antag/cia/covert
name = "briefcase"
icon_state = "briefcase"
desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional."
covert = TRUE
43 changes: 0 additions & 43 deletions code/datums/emergency_calls/inspection.dm
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@
..()
objectives = "Inspect and evaluate the [MAIN_SHIP_NAME] and its crew."


/datum/emergency_call/inspection_hc/create_member(datum/mind/M, turf/override_spawn_loc)
var/turf/T = override_spawn_loc ? override_spawn_loc : get_spawn_point()

Expand All @@ -87,48 +86,6 @@
to_chat(H, SPAN_WARNING("Remember, you may not interrupt regular operation and are expected to follow orders of the Inspector at all times. Ahelp if you have any questions of you wish to offer the role to someone else."))
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS)

//UAAC-TIS
/datum/emergency_call/inspection_tis
name = "Inspection - UA Allied Command TIS - ML Knowledge Required"
mob_max = 2
mob_min = 1
probability = 0

/datum/emergency_call/inspection_tis/New()
..()
objectives = "Await detailed directives from your Handler. Remember that you may, but do not have to, investigate any ML or SOP related issues during your time on the [MAIN_SHIP_NAME]."

/datum/emergency_call/inspection_tis/create_member(datum/mind/M, turf/override_spawn_loc)
var/turf/T = override_spawn_loc ? override_spawn_loc : get_spawn_point()

if(!istype(T))
return FALSE

var/mob/living/carbon/human/H = new(T)
M.transfer_to(H, TRUE)

if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, list(JOB_INTEL,JOB_WARDEN), time_required_for_job))
leader = H
arm_equipment(H, /datum/equipment_preset/uscm_event/uaac/tis/io, TRUE, TRUE)
to_chat(H, SPAN_ROLE_HEADER("You are an Intelligence Officer working for the UAAC-TIS!"))
to_chat(H, SPAN_ROLE_BODY("The UAAC-TIS, also known as the Three Eyes, is responsible for the collection, collation and delivery of Intelligence across UA assets. Your Handler will contact you about the exact nature of your mission on board the [MAIN_SHIP_NAME]."))
to_chat(H, SPAN_ROLE_BODY("While you do not have any direct authority over the USCM, the TIS mandate also allows you to investigate any perceived abuse of the Law, be it written or implied. Remember, you have the authority to make calls on ML should the crew of the Almayer request it or your Handler order you to resolve ML issues."))
to_chat(H, SPAN_WARNING("Remember that you cannot take antagonistic action unless specifically allowed by your Handler. You are also expected to know ML and SOP. Ahelp if you have any questions or wish to release this mob for other players."))
else
arm_equipment(H, /datum/equipment_preset/uscm_event/provost/enforcer, TRUE, TRUE)
to_chat(H, SPAN_ROLE_HEADER("You are an Enforcer of the USCM Provost Office!"))
to_chat(H, SPAN_ROLE_BODY("You have been assigned as an escort for an UAAC-TIS Officer being dispatched to the [MAIN_SHIP_NAME]. Technically, the TIS has no direct authority over you, however you have been ordered to follow the instructions of the TIS Officer."))
to_chat(H, SPAN_ROLE_BODY("You are not expected to enforce ML on the ship and are generally expected to follow the instruction of the Officer you are protecting. Remember that should they start acting in a way that you believe puts the USCM in danger, you are not obligated to follow their orders and should report this to the Provost at once."))
to_chat(H, SPAN_WARNING("This role requires familiarity with Marine Law and Standard Operating Procedure. Ahelp if you have any questions or wish to surrender the character to someone else."))
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS)

/datum/emergency_call/inspection_tis/spawn_items()
var/turf/drop_spawn

drop_spawn = get_spawn_point(TRUE)
new /obj/item/storage/box/handcuffs(drop_spawn)
new /obj/item/storage/box/handcuffs(drop_spawn)

//Weyland-Yutani
/datum/emergency_call/inspection_wy
name = "Inspection - Corporate"
Expand Down
11 changes: 3 additions & 8 deletions code/datums/factions/uscm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
if(JOB_SQUAD_SPECIALIST) marine_rk = "spec"
if(JOB_SQUAD_TEAM_LEADER) marine_rk = "tl"
if(JOB_SQUAD_MEDIC)
if(current_human.rank_fallback == "medk9")
if(current_human.rank_fallback == "medk9")
marine_rk = "medk9" //We don't need Medics to lose their job when converting to K9 Handlers as it would duplicate JOB_SQUAD_MEDIC
else
else
marine_rk = "med"
if(JOB_SQUAD_SMARTGUN) marine_rk = "gun"
if(JOB_XO) marine_rk = "xo"
Expand Down Expand Up @@ -86,7 +86,7 @@
if(JOB_SO)
marine_rk = "so"
border_rk = "command"
if(JOB_AUXILIARY_OFFICER)
if(JOB_AUXILIARY_OFFICER, JOB_CIA_LIAISON)
marine_rk = "aso"
border_rk = "command"
if(JOB_GENERAL, JOB_COLONEL, JOB_ACMC, JOB_CMC)
Expand Down Expand Up @@ -170,11 +170,6 @@
if(JOB_PROVOST_MARSHAL, JOB_PROVOST_CMARSHAL, JOB_PROVOST_SMARSHAL)
marine_rk = "pvm"
border_rk = "command"
// TIS
if(JOB_TIS_IO)
marine_rk = "tisio"
if(JOB_TIS_SA)
marine_rk = "tissa"
// Riot MPs
if(JOB_RIOT)
marine_rk = "rmp"
Expand Down
25 changes: 25 additions & 0 deletions code/datums/skills/uscm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -503,3 +503,28 @@ SOLAR DEVILS (PvE Marines)
SKILL_INTEL = SKILL_INTEL_TRAINED,
SKILL_PILOT = SKILL_PILOT_EXPERT,
)

/*
---------------------
CIA
---------------------
*/

/datum/skills/cia
name = "CIA Agent"
skills = list(
SKILL_CQC = SKILL_CQC_MASTER,
SKILL_POLICE = SKILL_POLICE_SKILLED,
SKILL_FIREMAN = SKILL_FIREMAN_SKILLED,
SKILL_LEADERSHIP = SKILL_LEAD_EXPERT,
SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED,
SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED,
SKILL_JTAC = SKILL_JTAC_EXPERT,
SKILL_MEDICAL = SKILL_MEDICAL_TRAINED,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_ENGINEER = SKILL_ENGINEER_TRAINED,
SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER,
SKILL_INTEL = SKILL_INTEL_EXPERT,
SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL,
SKILL_FIREARMS = SKILL_FIREARMS_EXPERT,
)
7 changes: 0 additions & 7 deletions code/game/jobs/job/special/uaac.dm

This file was deleted.

2 changes: 0 additions & 2 deletions code/game/jobs/role_authority.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,6 @@ GLOBAL_VAR_INIT(players_preassigned, 0)
/datum/job/antag,
/datum/job/special,
/datum/job/special/provost,
/datum/job/special/uaac,
/datum/job/special/uaac/tis,
/datum/job/special/uscm,
)
var/squads_all[] = typesof(/datum/squad) - /datum/squad
Expand Down
4 changes: 4 additions & 0 deletions code/game/objects/items/devices/coins.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@
name = "falling falcons challenge coin"
desc = "A small coin, bearing the falling falcons insignia."

/obj/item/coin/silver/cia
name = "silver coin"
desc = "A coin of silver. It bears an eagle on the heads side."

/obj/item/coin/copper
name = "copper coin"
desc = "A familiar, but cheap form of currency."
Expand Down
10 changes: 8 additions & 2 deletions code/game/objects/items/devices/portable_vendor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
var/fabricating = FALSE
var/broken = FALSE
var/contraband = FALSE
var/covert = FALSE //covert = no light, no sound
var/delay = 3 //fabricating time, in seconds

var/list/purchase_log = list()

Expand Down Expand Up @@ -186,11 +188,12 @@

purchase_log += "[key_name(usr)] bought [product[1]]."

playsound(src, "sound/machines/fax.ogg", 5)
if(!covert)
playsound(src, "sound/machines/fax.ogg", 5)
fabricating = TRUE
update_overlays()

addtimer(CALLBACK(src, PROC_REF(spawn_product), product[3], user), 3 SECONDS)
addtimer(CALLBACK(src, PROC_REF(spawn_product), product[3], user), delay SECONDS)

/obj/item/device/portable_vendor/proc/spawn_product(typepath, mob/user)
var/obj/new_item = new typepath(get_turf(src))
Expand All @@ -199,6 +202,9 @@
update_overlays()

/obj/item/device/portable_vendor/proc/update_overlays()
if(covert)
return

if(overlays) overlays.Cut()
if (broken)
overlays += image(icon, "securespark")
Expand Down
4 changes: 4 additions & 0 deletions code/game/objects/items/devices/radio/encryptionkey.dm
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,10 @@
icon_state = "sl_key"
channels = list("Command" = TRUE, "Almayer" = TRUE,)

/obj/item/device/encryptionkey/cia
icon_state = "sl_key"
channels = list(RADIO_CHANNEL_CIA = TRUE, RADIO_CHANNEL_COMMAND = TRUE, RADIO_CHANNEL_MP = TRUE, SQUAD_MARINE_1 = FALSE, SQUAD_MARINE_2 = FALSE, SQUAD_MARINE_3 = FALSE, SQUAD_MARINE_4 = FALSE, SQUAD_MARINE_5 = FALSE, SQUAD_MARINE_CRYO = FALSE, RADIO_CHANNEL_ENGI = TRUE, RADIO_CHANNEL_MEDSCI = TRUE, RADIO_CHANNEL_REQ = TRUE, RADIO_CHANNEL_JTAC = FALSE, RADIO_CHANNEL_INTEL = TRUE)

/obj/item/device/encryptionkey/cmb
name = "\improper Colonial Marshal Bureau Radio Encryption Key"
icon_state = "cmb_key"
Expand Down
7 changes: 7 additions & 0 deletions code/game/objects/items/devices/radio/headset.dm
Original file line number Diff line number Diff line change
Expand Up @@ -630,6 +630,13 @@
/obj/item/device/radio/headset/almayer/marine
initial_keys = list(/obj/item/device/encryptionkey/public)

/obj/item/device/radio/headset/almayer/cia
name = "radio headset"
desc = "A radio headset."
frequency = CIA_FREQ
initial_keys = list(/obj/item/device/encryptionkey/cia, /obj/item/device/encryptionkey/soc, /obj/item/device/encryptionkey/listening_bug/freq_a)


//############################## ALPHA ###############################
/obj/item/device/radio/headset/almayer/marine/alpha
name = "marine alpha radio headset"
Expand Down
4 changes: 4 additions & 0 deletions code/game/objects/items/devices/radio/listening_bugs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,10 @@
/obj/item/device/radio/listening_bug/radio_linked/hc/pvst
frequency = PVST_FREQ

/obj/item/device/radio/listening_bug/radio_linked/cia
frequency = CIA_FREQ
req_one_access = list(ACCESS_CIA)

/obj/item/device/radio/listening_bug/radio_linked/wy
frequency = WY_FREQ
req_one_access = list(ACCESS_WY_EXEC, ACCESS_WY_SECURITY)
Expand Down
4 changes: 4 additions & 0 deletions code/game/objects/items/storage/pouch.dm
Original file line number Diff line number Diff line change
Expand Up @@ -473,6 +473,10 @@
for(var/i = 1 to storage_slots)
new /obj/item/ammo_magazine/pistol/vp78(src)

/obj/item/storage/pouch/magazine/pistol/m1911/fill_preset_inventory()
for(var/i = 1 to storage_slots)
new /obj/item/ammo_magazine/pistol/m1911(src)

/obj/item/storage/pouch/magazine/upp/fill_preset_inventory()
for(var/i = 1 to storage_slots)
new /obj/item/ammo_magazine/rifle/type71(src)
Expand Down
9 changes: 0 additions & 9 deletions code/modules/clothing/head/head.dm
Original file line number Diff line number Diff line change
Expand Up @@ -658,15 +658,6 @@ GLOBAL_LIST_INIT(allowed_hat_items, list(
name = "\improper USCM provost command beret"
icon_state = "pvciberet"

/obj/item/clothing/head/beret/marine/mp/tis
name = "\improper UAAC-TIS Special Agent Beret"
desc = "A beret with the UAAC-TIS insignia emblazoned on it. A mark of a TIS Special Agent, these berets are one of the only pieces of equipment that the TIS actually manufactures for itself and earning one is one of the rare signs of achievement the Three Eyes allows."
icon_state = "berettis"
icon = 'icons/obj/items/clothing/hats/hats_by_faction/UA.dmi'
item_icons = list(
WEAR_HEAD = 'icons/mob/humans/onmob/clothing/head/hats_by_faction/UA.dmi'
)

/obj/item/clothing/head/beret/marine/commander
name = "marine commanding officer beret"
desc = "A beret with the commanding officer's insignia emblazoned on it. Wearer may suffer the heavy weight of responsibility upon their head and shoulders."
Expand Down
Loading

0 comments on commit 42adb16

Please sign in to comment.