Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
20e88df
Infiltrators!
Absolucy Sep 8, 2021
4332960
Fix the cigarette vending machine in the infiltrator base
Absolucy Sep 9, 2021
11ac8c6
Uncomment role preference
Absolucy Sep 9, 2021
88bf04e
Fix a bunch of bugs.
Absolucy Sep 9, 2021
0e22144
Changes to AI hijack
Absolucy Sep 9, 2021
84377ed
GODDAMIT I FORGOT TO SAVE IN STRONGDMM
Absolucy Sep 9, 2021
264590f
Fix the dumb gravgen runtime.
Absolucy Sep 9, 2021
aa2620d
Just throw the infiltrator base on centcom directly
Absolucy Sep 9, 2021
e73183f
Add infiltrators to one-click antag (and fix vampires not being in it)
Absolucy Sep 10, 2021
549e119
Merge branch 'master' into mission-shitpossible
JamieD1 Sep 11, 2021
5cc76a5
blame jamie
Absolucy Sep 12, 2021
fc69a58
add infiltrators event
Absolucy Sep 12, 2021
e8f38bd
Merge branch 'mission-shitpossible' of github.com:Absolucy/Yogstation…
Absolucy Sep 12, 2021
e9356ef
Admin only for now.
JamieD1 Sep 12, 2021
e8578d0
Maybe fix the round ending a BIT too early?
Absolucy Sep 12, 2021
5ed0a7b
Merge branch 'mission-shitpossible' of github.com:Absolucy/Yogstation…
Absolucy Sep 12, 2021
268e61d
Fix uplink not appearing properly in the roundend report
Absolucy Sep 12, 2021
00b7971
Improve examine text for infiltrator power sink
Absolucy Sep 12, 2021
2c57c2e
Whoops, remove the J
Absolucy Sep 12, 2021
f9843f8
More stuff.
Absolucy Sep 12, 2021
ef81ad7
Jamie's map changes
Absolucy Sep 12, 2021
d0eca82
Make the AI hijacker more idiot-proof.
Absolucy Sep 13, 2021
9e87ebc
Update map again.
Absolucy Sep 13, 2021
3409abe
fix infiltrators not being able to use edaggers
Absolucy Sep 13, 2021
85d81a9
Update centcomm map again
Absolucy Sep 13, 2021
f5aefe5
aaaaa
Absolucy Sep 13, 2021
4bb4fb4
fix powersink examine
Absolucy Sep 13, 2021
2cc11c5
e
Absolucy Sep 13, 2021
93ff20c
wait nvm that's right
Absolucy Sep 13, 2021
cac70b5
big typo whoopsie
Absolucy Sep 13, 2021
fc2a7df
Some big ol' improvements!
Absolucy Sep 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7,452 changes: 4,404 additions & 3,048 deletions _maps/map_files/generic/CentCom.dmm

Large diffs are not rendered by default.

1,417 changes: 1,417 additions & 0 deletions _maps/shuttles/infiltrator_cutter.dmm

Large diffs are not rendered by default.

3,106 changes: 3,106 additions & 0 deletions _maps/templates/infiltrator_base.dmm

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions code/__DEFINES/role_preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,9 @@
#define ROLE_SHADOWLING "Shadowling" // Yogs
#define ROLE_VAMPIRE "Vampire" // Yogs
#define ROLE_GANG "gangster" // Yogs
#define ROLE_DARKSPAWN "darkspawn" //Yogs
#define ROLE_DARKSPAWN "darkspawn" // Yogs
#define ROLE_HOLOPARASITE "Holoparasite" // Yogs
#define ROLE_INFILTRATOR "Infiltrator" // Yogs
#define ROLE_ZOMBIE "Zombie"


Expand Down Expand Up @@ -75,10 +76,11 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult,
ROLE_VAMPIRE = /datum/game_mode/vampire, // Yogs
ROLE_OVERTHROW = /datum/game_mode/overthrow,
ROLE_SHADOWLING = /datum/game_mode/shadowling, //yogs
ROLE_GANG = /datum/game_mode/gang, // yogs
ROLE_SHADOWLING = /datum/game_mode/shadowling, // Yogs
ROLE_GANG = /datum/game_mode/gang, // Yogs
ROLE_HERETIC = /datum/game_mode/heretics,
ROLE_HIVE = /datum/game_mode/hivemind,
ROLE_INFILTRATOR = /datum/game_mode/infiltration, // Yogs
ROLE_INTERNAL_AFFAIRS = /datum/game_mode/traitor/internal_affairs,
ROLE_DARKSPAWN = /datum/game_mode/darkspawn,
ROLE_SENTIENCE,
Expand Down
12 changes: 7 additions & 5 deletions code/__DEFINES/{yogs_defines}/antagonists.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#define ANTAG_DATUM_VAMPIRE /datum/antagonist/vampire
#define ANTAG_DATUM_THRALL /datum/antagonist/thrall
#define ANTAG_DATUM_SLING /datum/antagonist/shadowling
#define ANTAG_DATUM_DARKSPAWN /datum/antagonist/darkspawn
#define ANTAG_DATUM_VEIL /datum/antagonist/veil
#define ANTAG_DATUM_VAMPIRE /datum/antagonist/vampire
#define ANTAG_DATUM_THRALL /datum/antagonist/thrall
#define ANTAG_DATUM_SLING /datum/antagonist/shadowling
#define ANTAG_DATUM_DARKSPAWN /datum/antagonist/darkspawn
#define ANTAG_DATUM_VEIL /datum/antagonist/veil
#define ANTAG_DATUM_INFILTRATOR /datum/antagonist/infiltrator
#define ANTAG_DATUM_HIJACKEDAI /datum/antagonist/hijacked_ai

#define NOT_DOMINATING -1
#define MAX_LEADERS_GANG 3
Expand Down
3 changes: 2 additions & 1 deletion code/__DEFINES/{yogs_defines}/atom_hud.dm
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
#define ANTAG_HUD_VAMPIRE 23
#define ANTAG_HUD_DARKSPAWN 24
#define ANTAG_HUD_DARKSPAWN 24
#define ANTAG_HUD_INFILTRATOR 32
5 changes: 3 additions & 2 deletions code/__DEFINES/{yogs_defines}/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#define is_traitor(M) (istype(M, /mob/living) && M.mind && M.mind.has_antag_datum(/datum/antagonist/traitor) || is_mindslaved(M))
#define is_blood_brother(M) (istype(M, /mob/living) && M.mind && M.mind.has_antag_datum(/datum/antagonist/brother))
#define is_nukeop(M) (M.mind && M.mind.has_antag_datum(/datum/antagonist/nukeop)) // also detects clownOP
#define is_syndicate(M) (istype(M, /mob/living) && is_traitor(M) || is_blood_brother(M) || is_nukeop(M))
#define is_infiltrator(M) (M.mind && M.mind.has_antag_datum(/datum/antagonist/infiltrator))
#define is_syndicate(M) (istype(M, /mob/living) && is_traitor(M) || is_blood_brother(M) || is_nukeop(M) || is_infiltrator(M))

#define isspacepod(A) (istype(A, /obj/spacepod))
#define isspacepod(A) (istype(A, /obj/spacepod))
6 changes: 5 additions & 1 deletion code/__DEFINES/{yogs_defines}/misc.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
//Endgame Results
#define GANG_LOSS 6
#define GANG_TAKEOVER 7
#define GANG_TAKEOVER 7
#define INFILTRATION_ALLCOMPLETE 25
#define INFILTRATION_MOSTCOMPLETE 26
#define INFILTRATION_SOMECOMPLETE 27
#define INFILTRATION_NONECOMPLETE 28
5 changes: 3 additions & 2 deletions code/datums/components/uplink.dm
Original file line number Diff line number Diff line change
Expand Up @@ -245,8 +245,9 @@ GLOBAL_LIST_EMPTY(uplinks)
interact(null, implant.imp_in)

/datum/component/uplink/proc/implanting(datum/source, list/arguments)
var/mob/user = arguments[2]
owner = "[user.key]"
var/mob/target = arguments[1]
var/mob/user = arguments[2] // YOGS START -- Fix runtime when implanting infiltrators
owner = "[user ? user.key : target.key]" // YOGS END

/datum/component/uplink/proc/old_implant(datum/source, list/arguments, obj/item/implant/new_implant)
// It kinda has to be weird like this until implants are components
Expand Down
1 change: 1 addition & 0 deletions code/datums/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ GLOBAL_LIST_INIT(huds, list(
ANTAG_HUD_HERETIC = new/datum/atom_hud/antag/hidden(),
ANTAG_HUD_MINDSLAVE = new/datum/atom_hud/antag/hidden(),
ANTAG_HUD_ZOMBIE = new/datum/atom_hud/antag(),
ANTAG_HUD_INFILTRATOR = new/datum/atom_hud/antag() // Yogs
))

/datum/atom_hud
Expand Down
15 changes: 15 additions & 0 deletions code/modules/admin/topic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,21 @@
else
message_admins("[key_name_admin(usr)] tried to create a shadowling. Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to create a shadowling.")
if("vampire")
if(makeVampire())
message_admins("[key_name(usr)] created a vampire.")
log_admin("[key_name(usr)] created a vampire.")
else
message_admins("[key_name_admin(usr)] tried to create a vampire. Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to create a vampire.")
if("infiltrator")
message_admins("[key_name(usr)] is creating an infiltration team...")
if(makeInfiltratorTeam())
message_admins("[key_name(usr)] created an infiltration team.")
log_admin("[key_name(usr)] created an infiltration team.")
else
message_admins("[key_name_admin(usr)] tried to create an infiltration team. Unfortunately, there were not enough candidates available.")
log_admin("[key_name(usr)] failed to create an infiltration team.")
else if(href_list["forceevent"])
if(!check_rights(R_FUN))
return
Expand Down
2 changes: 2 additions & 0 deletions code/modules/admin/verbs/one_click_antag.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
<a href='?src=[REF(src)];[HrefToken()];makeAntag=abductors'>Make Abductor Team (Requires Ghosts)</a><br>
<a href='?src=[REF(src)];[HrefToken()];makeAntag=revenant'>Make Revenant (Requires Ghost)</a><br>
<a href='?src=[REF(src)];[HrefToken()];makeAntag=shadowling'>Make Shadowling</a><br>
<a href='?src=[REF(src)];[HrefToken()];makeAntag=vampire'>Make Vampire</a><br>
<a href='?src=[REF(src)];[HrefToken()];makeAntag=infiltrator'>Make Infiltration Team (Requires Ghosts)</a>
"}

var/datum/browser/popup = new(usr, "oneclickantag", "Quick-Create Antagonist", 400, 400)
Expand Down
11 changes: 10 additions & 1 deletion code/modules/clothing/chameleon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@
thing.update_slot_icon()
UpdateButtonIcon()

/datum/action/item_action/chameleon/change/proc/update_item(obj/item/picked_item)
/datum/action/item_action/chameleon/change/proc/update_item(obj/item/picked_item, obj/item/target = src.target) //yogs -- add support for cham hardsuits
target.name = initial(picked_item.name)
target.desc = initial(picked_item.desc)
target.icon_state = initial(picked_item.icon_state)
Expand All @@ -225,6 +225,15 @@
var/obj/item/clothing/CL = I
var/obj/item/clothing/PCL = picked_item
CL.flags_cover = initial(PCL.flags_cover)
if(istype(target, /obj/item/clothing/suit/space/hardsuit/infiltration)) //YOGS START
var/obj/item/clothing/suit/space/hardsuit/infiltration/I = target
var/obj/item/clothing/suit/space/hardsuit/HS = picked_item
var/obj/item/clothing/head/helmet/helmet = initial(HS.helmettype)
I.head_piece.initial_state = initial(helmet.icon_state)
update_item(helmet, I.head_piece)
I.head_piece.update_icon()
qdel(helmet)
//YOGS END
target.icon = initial(picked_item.icon)

/datum/action/item_action/chameleon/change/Trigger()
Expand Down
1 change: 1 addition & 0 deletions code/modules/mob/living/silicon/ai/life.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
update_gravity(mob_has_gravity())

handle_status_effects()
process_hijack() // yogs

if(malfhack && malfhack.aidisabled)
deltimer(malfhacking)
Expand Down
2 changes: 1 addition & 1 deletion code/modules/power/gravitygenerator.dm
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
return main_part.attackby(I, user)

/obj/machinery/gravity_generator/part/get_status()
return main_part.get_status()
return main_part?.get_status()

/obj/machinery/gravity_generator/part/attack_hand(mob/user)
return main_part.attack_hand(user)
Expand Down
32 changes: 24 additions & 8 deletions code/modules/uplink/uplink_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/storage/box/syndicate/contract_kit
cost = 20
player_minimum = 20
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/bundles_TC/bundle_A
name = "Syndi-kit Tactical"
Expand All @@ -219,15 +219,15 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
you will receive. May contain discontinued and/or exotic items."
item = /obj/item/storage/box/syndicate/bundle_A
cost = 20
exclude_modes = list(/datum/game_mode/nuclear)
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/bundles_TC/bundle_B
name = "Syndi-kit Special"
desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \
In Syndi-kit Special, you will receive items used by famous syndicate agents of the past. Collectively worth more than 20 telecrystals, the syndicate loves a good throwback."
item = /obj/item/storage/box/syndicate/bundle_B
cost = 20
exclude_modes = list(/datum/game_mode/nuclear)
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/bundles_TC/surplus
name = "Syndicate Surplus Crate"
Expand All @@ -236,7 +236,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/structure/closet/crate
cost = 20
player_minimum = 25
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // yogs: infiltration
var/starting_crate_value = 50

/datum/uplink_item/bundles_TC/surplus/super
Expand Down Expand Up @@ -409,13 +409,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
pocketed when inactive. Activating it produces a loud, distinctive noise."
item = /obj/item/melee/transforming/energy/sword/saber
cost = 8
exclude_modes = list(/datum/game_mode/nuclear/clown_ops)
exclude_modes = list(/datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/dangerous/bostaff
name = "Bo Staff"
desc = "A wielded wooden staff that can be used to incapacitate opponents if intending to disarm."
item = /obj/item/twohanded/bostaff
cost = 8
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/dangerous/shield
name = "Energy Shield"
Expand All @@ -440,6 +441,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk."
item = /obj/item/clothing/gloves/rapid
cost = 8
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/dangerous/guardian
name = "Holoparasites"
Expand Down Expand Up @@ -492,6 +494,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/melee/powerfist
cost = 6
manufacturer = /datum/corporation/traitor/waffleco
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/dangerous/sniper
name = "Sniper Rifle"
Expand Down Expand Up @@ -571,6 +574,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/book/granter/martial/cqc
cost = 13
surplus = 0
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/stealthy_weapons/dart_pistol
name = "Dart Pistol"
Expand All @@ -587,6 +591,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/toy/plush/carpplushie/dehy_carp
cost = 1
manufacturer = /datum/corporation/traitor/donkco
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/stealthy_weapons/edagger
name = "Energy Dagger"
Expand All @@ -602,7 +607,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/book/granter/martial/carp
cost = 14
surplus = 0
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/stealthy_weapons/crossbow
name = "Miniature Energy Crossbow"
Expand Down Expand Up @@ -643,6 +648,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/storage/box/syndie_kit/romerol
cost = 25
cant_discount = TRUE
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/stealthy_weapons/sleepy_pen
name = "Sleepy Pen"
Expand Down Expand Up @@ -934,6 +940,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/storage/backpack/duffelbag/syndie/c4
cost = 8 //20% discount!
cant_discount = TRUE
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/explosives/x4bag
name = "Bag of X-4 explosives"
Expand All @@ -943,6 +950,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/storage/backpack/duffelbag/syndie/x4
cost = 4
cant_discount = TRUE
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/explosives/clown_bomb_clownops
name = "Clown Bomb"
Expand All @@ -966,6 +974,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 6
manufacturer = /datum/corporation/traitor/cybersun
restricted = TRUE
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/explosives/emp
name = "EMP Grenades and Implanter Kit"
Expand Down Expand Up @@ -1026,6 +1035,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/grenade/clusterbuster/soap
cost = 3
manufacturer = /datum/corporation/traitor/waffleco
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/explosives/syndicate_bomb
name = "Syndicate Bomb"
Expand All @@ -1037,6 +1047,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
The bomb core can be pried out and manually detonated with other explosives."
item = /obj/item/sbeacondrop/bomb
cost = 11
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/explosives/syndicate_bomb/emp
name = "Syndicate EMP Bomb"
Expand All @@ -1060,7 +1071,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
in addition to dealing high amounts of damage to nearby personnel."
item = /obj/item/grenade/syndieminibomb
cost = 6
exclude_modes = list(/datum/game_mode/nuclear/clown_ops)
exclude_modes = list(/datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/explosives/tearstache
name = "Tearstache Grenade"
Expand Down Expand Up @@ -1424,7 +1435,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
manufacturer = /datum/corporation/traitor/waffleco
surplus = 0
restricted = TRUE
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // Yogs: infiltration

/datum/uplink_item/device_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U)
if(!U)
Expand Down Expand Up @@ -1486,6 +1497,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 10
manufacturer = /datum/corporation/traitor/waffleco
include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/device_tools/supermatter_delaminator
name = "Antinoblium Shard"
Expand All @@ -1497,6 +1509,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 10
manufacturer = /datum/corporation/traitor/waffleco
include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/device_tools/powersink
name = "Power Sink"
Expand All @@ -1506,6 +1519,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/powersink
cost = 8
manufacturer = /datum/corporation/traitor/waffleco
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

/datum/uplink_item/device_tools/rad_laser
name = "Radioactive Microlaser"
Expand Down Expand Up @@ -1594,6 +1608,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 7
manufacturer = /datum/corporation/traitor/waffleco
limited_stock = 1
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

// Implants
/datum/uplink_item/implants
Expand Down Expand Up @@ -1717,6 +1732,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/storage/briefcase/syndie_mantis
cost = 16
surplus = 0
exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration

//Race-specific items
/datum/uplink_item/race_restricted
Expand Down
Loading