[icon2html(M, viewers(holder))] The drive motor whines briefly.")
else
- holder.visible_message("[icon2html(M, viewers(holder))] You hear a radio crackle.")
\ No newline at end of file
+ holder.visible_message("[icon2html(M, viewers(holder))] You hear a radio crackle.")
diff --git a/code/datums/wires/particle_accelerator.dm b/code/datums/wires/particle_accelerator.dm
index b782e589dd..97f518e434 100644
--- a/code/datums/wires/particle_accelerator.dm
+++ b/code/datums/wires/particle_accelerator.dm
@@ -47,4 +47,4 @@
C.remove_strength()
/datum/wires/particle_accelerator/control_box/emp_pulse() // to prevent singulo from pulsing wires
- return
\ No newline at end of file
+ return
diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm
index 6c7e59c24c..e8fb883ecd 100644
--- a/code/datums/wires/vending.dm
+++ b/code/datums/wires/vending.dm
@@ -57,4 +57,4 @@
if(WIRE_IDSCAN)
V.scan_id = mend
if(WIRE_SPEAKER)
- V.shut_up = mend
\ No newline at end of file
+ V.shut_up = mend
diff --git a/code/datums/wounds/_scars.dm b/code/datums/wounds/_scars.dm
index 8cd0d8a047..3365fc359d 100644
--- a/code/datums/wounds/_scars.dm
+++ b/code/datums/wounds/_scars.dm
@@ -149,4 +149,4 @@
/// Used to format a scar to safe in preferences for persistent scars
/datum/scar/proc/format_amputated(body_zone)
description = pick(list("is several skintone shades paler than the rest of the body", "is a gruesome patchwork of artificial flesh", "has a large series of attachment scars at the articulation points"))
- return "[SCAR_CURRENT_VERSION]|[body_zone]|[description]|amputated|[WOUND_SEVERITY_LOSS]"
\ No newline at end of file
+ return "[SCAR_CURRENT_VERSION]|[body_zone]|[description]|amputated|[WOUND_SEVERITY_LOSS]"
diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm
index 29c87b32d4..02421b1e52 100644
--- a/code/datums/wounds/_wounds.dm
+++ b/code/datums/wounds/_wounds.dm
@@ -91,8 +91,6 @@
var/wound_flags = (FLESH_WOUND | BONE_WOUND | ACCEPTS_GAUZE)
/datum/wound/Destroy()
- if(attached_surgery)
- QDEL_NULL(attached_surgery)
if(limb?.wounds && (src in limb.wounds)) // destroy can call remove_wound() and remove_wound() calls qdel, so we check to make sure there's anything to remove first
remove_wound()
limb = null
diff --git a/code/game/area/ai_monitored.dm b/code/game/area/ai_monitored.dm
index 87b44291f5..558a4b1026 100644
--- a/code/game/area/ai_monitored.dm
+++ b/code/game/area/ai_monitored.dm
@@ -28,4 +28,4 @@
for(var/X in motioncameras)
var/obj/machinery/camera/cam = X
cam.lostTargetRef(WEAKREF(O))
- return
\ No newline at end of file
+ return
diff --git a/code/game/area/areas/away_content.dm b/code/game/area/areas/away_content.dm
index b724c92607..27a73ae5f1 100644
--- a/code/game/area/areas/away_content.dm
+++ b/code/game/area/areas/away_content.dm
@@ -25,4 +25,4 @@ Unused icons for new areas are "awaycontent1" ~ "awaycontent30"
/area/awaymission/vr
name = "Virtual Reality"
- icon_state = "awaycontent1"
\ No newline at end of file
+ icon_state = "awaycontent1"
diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm
index 19a1fd503d..66c4f8542b 100644
--- a/code/game/area/areas/ruins/lavaland.dm
+++ b/code/game/area/areas/ruins/lavaland.dm
@@ -94,4 +94,4 @@
//ash walker nest
/area/ruin/unpowered/ash_walkers
- icon_state = "red"
\ No newline at end of file
+ icon_state = "red"
diff --git a/code/game/gamemodes/gangs/dominator_countdown.dm b/code/game/gamemodes/gangs/dominator_countdown.dm
index c6ae610e37..3b61a07829 100644
--- a/code/game/gamemodes/gangs/dominator_countdown.dm
+++ b/code/game/gamemodes/gangs/dominator_countdown.dm
@@ -10,4 +10,4 @@
else if(D.gang && D.gang.domination_time != NOT_DOMINATING)
return D.gang.domination_time_remaining()
else
- return "OFFLINE"
\ No newline at end of file
+ return "OFFLINE"
diff --git a/code/game/gamemodes/gangs/gang_decals.dm b/code/game/gamemodes/gangs/gang_decals.dm
index a37b4cb63b..75d8d459ef 100644
--- a/code/game/gamemodes/gangs/gang_decals.dm
+++ b/code/game/gamemodes/gangs/gang_decals.dm
@@ -35,4 +35,4 @@
return ..()
/obj/effect/decal/cleanable/crayon/NeverShouldHaveComeHere(turf/T)
- return isspaceturf(T) || islava(T) || istype(T, /turf/open/water) || ischasm(T)
\ No newline at end of file
+ return isspaceturf(T) || islava(T) || istype(T, /turf/open/water) || ischasm(T)
diff --git a/code/game/gamemodes/gangs/gang_hud.dm b/code/game/gamemodes/gangs/gang_hud.dm
index 3fde6d4123..825d361ab0 100644
--- a/code/game/gamemodes/gangs/gang_hud.dm
+++ b/code/game/gamemodes/gangs/gang_hud.dm
@@ -31,4 +31,4 @@
var/image/holder = M.hud_list[ANTAG_HUD]
if(holder)
holder.color = null
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/game/gamemodes/gangs/gang_pen.dm b/code/game/gamemodes/gangs/gang_pen.dm
index b7bd6cca5e..09cea5cecb 100644
--- a/code/game/gamemodes/gangs/gang_pen.dm
+++ b/code/game/gamemodes/gangs/gang_pen.dm
@@ -56,4 +56,4 @@
H.silent = max(H.silent, 5)
H.DefaultCombatKnockdown(100)
gangster_mind.add_antag_datum(/datum/antagonist/gang, gang)
- return TRUE
\ No newline at end of file
+ return TRUE
diff --git a/code/game/gamemodes/gangs/gangtool.dm b/code/game/gamemodes/gangs/gangtool.dm
index e99455bcd5..32272ae51a 100644
--- a/code/game/gamemodes/gangs/gangtool.dm
+++ b/code/game/gamemodes/gangs/gangtool.dm
@@ -256,4 +256,4 @@
outfits = TRUE
/obj/item/device/gangtool/spare/lt
- promotable = TRUE
\ No newline at end of file
+ promotable = TRUE
diff --git a/code/game/gamemodes/gangs/implant_gang.dm b/code/game/gamemodes/gangs/implant_gang.dm
index ee91928845..cad54d4fc1 100644
--- a/code/game/gamemodes/gangs/implant_gang.dm
+++ b/code/game/gamemodes/gangs/implant_gang.dm
@@ -58,4 +58,4 @@
qdel(src)
return
imp = new /obj/item/implant/gang(src,gang)
- .=..()
\ No newline at end of file
+ .=..()
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index bced9db61f..06e1635656 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -145,8 +145,8 @@
/obj/machinery/sleeper/ui_state(mob/user)
if(controls_inside)
- return GLOB.contained_state
- return GLOB.default_state
+ return GLOB.default_state
+ return GLOB.notcontained_state
/obj/machinery/sleeper/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
@@ -209,6 +209,7 @@
data["occupant"]["fireLoss"] = mob_occupant.getFireLoss()
data["occupant"]["cloneLoss"] = mob_occupant.getCloneLoss()
data["occupant"]["brainLoss"] = mob_occupant.getOrganLoss(ORGAN_SLOT_BRAIN)
+ data["occupant"]["is_robotic_organism"] = HAS_TRAIT(mob_occupant, TRAIT_ROBOTIC_ORGANISM)
data["occupant"]["reagents"] = list()
if(mob_occupant.reagents && mob_occupant.reagents.reagent_list.len)
for(var/datum/reagent/R in mob_occupant.reagents.reagent_list)
diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm
index a2fdc2336f..b837553b38 100644
--- a/code/game/machinery/computer/Operating.dm
+++ b/code/game/machinery/computer/Operating.dm
@@ -88,6 +88,7 @@
data["patient"]["fireLoss"] = patient.getFireLoss()
data["patient"]["toxLoss"] = patient.getToxLoss()
data["patient"]["oxyLoss"] = patient.getOxyLoss()
+ data["patient"]["is_robotic_organism"] = HAS_TRAIT(patient, TRAIT_ROBOTIC_ORGANISM)
if(patient.surgeries.len)
data["procedures"] = list()
for(var/datum/surgery/procedure in patient.surgeries)
diff --git a/code/game/machinery/computer/arcade/battle.dm b/code/game/machinery/computer/arcade/battle.dm
index a6c98c6c9c..5a0f0e9acf 100644
--- a/code/game/machinery/computer/arcade/battle.dm
+++ b/code/game/machinery/computer/arcade/battle.dm
@@ -212,4 +212,4 @@
name = "Outbomb Cuban Pete"
updateUsrDialog()
- return TRUE
\ No newline at end of file
+ return TRUE
diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm
index fa6d4327a4..fc7bec7134 100644
--- a/code/game/machinery/computer/law.dm
+++ b/code/game/machinery/computer/law.dm
@@ -69,4 +69,4 @@
return 0
if(B.scrambledcodes || B.emagged)
return 0
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm
index 42649a9ff2..a563200575 100644
--- a/code/game/machinery/doors/alarmlock.dm
+++ b/code/game/machinery/doors/alarmlock.dm
@@ -40,4 +40,4 @@
close()
if("minor", "clear")
autoclose = FALSE
- open()
\ No newline at end of file
+ open()
diff --git a/code/game/machinery/doors/checkForMultipleDoors.dm b/code/game/machinery/doors/checkForMultipleDoors.dm
index 35a944c965..73a9edde6f 100644
--- a/code/game/machinery/doors/checkForMultipleDoors.dm
+++ b/code/game/machinery/doors/checkForMultipleDoors.dm
@@ -13,4 +13,4 @@
if(!istype(D, /obj/machinery/door/window) && D.density)
return 0
//There are no false wall checks because that would be fucking
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/game/machinery/doors/passworddoor.dm b/code/game/machinery/doors/passworddoor.dm
index 60652981cf..1ec5b3c373 100644
--- a/code/game/machinery/doors/passworddoor.dm
+++ b/code/game/machinery/doors/passworddoor.dm
@@ -70,4 +70,4 @@
return
/obj/machinery/door/password/ex_act(severity, target)
- return
\ No newline at end of file
+ return
diff --git a/code/game/machinery/doors/unpowered.dm b/code/game/machinery/doors/unpowered.dm
index 828624adb4..6e9d7f9561 100644
--- a/code/game/machinery/doors/unpowered.dm
+++ b/code/game/machinery/doors/unpowered.dm
@@ -19,4 +19,4 @@
icon_state = "door1"
opacity = 1
density = TRUE
- explosion_block = 1
\ No newline at end of file
+ explosion_block = 1
diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm
index a9c411c634..4f27e38a14 100644
--- a/code/game/machinery/doppler_array.dm
+++ b/code/game/machinery/doppler_array.dm
@@ -187,4 +187,4 @@ GLOBAL_LIST_EMPTY(doppler_arrays)
/obj/machinery/doppler_array/research/science/Initialize()
. = ..()
- linked_techweb = SSresearch.science_tech
\ No newline at end of file
+ linked_techweb = SSresearch.science_tech
diff --git a/code/game/machinery/embedded_controller/airlock_controller.dm b/code/game/machinery/embedded_controller/airlock_controller.dm
index ea39133112..125c6692f3 100644
--- a/code/game/machinery/embedded_controller/airlock_controller.dm
+++ b/code/game/machinery/embedded_controller/airlock_controller.dm
@@ -312,4 +312,4 @@
[state_options]"}
- return output
\ No newline at end of file
+ return output
diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm
index 0b89b117c4..b39c6d350f 100644
--- a/code/game/machinery/mass_driver.dm
+++ b/code/game/machinery/mass_driver.dm
@@ -48,4 +48,4 @@
if(isliving(O))
var/mob/living/L = O
to_chat(L, "You feel something click beneath you!")
- addtimer(CALLBACK(src, .proc/drive), drive_delay)
\ No newline at end of file
+ addtimer(CALLBACK(src, .proc/drive), drive_delay)
diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm
index 8a4a2fdd9b..f9a86066ff 100644
--- a/code/game/mecha/combat/combat.dm
+++ b/code/game/mecha/combat/combat.dm
@@ -8,4 +8,4 @@
for(var/obj/item/I in equipment)
if(istype(I, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/))
var/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/gun = I
- gun.projectiles_cache = gun.projectiles_cache_max
\ No newline at end of file
+ gun.projectiles_cache = gun.projectiles_cache_max
diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm
index 7c7c6be2bc..06e4208d71 100644
--- a/code/game/mecha/equipment/tools/mining_tools.dm
+++ b/code/game/mecha/equipment/tools/mining_tools.dm
@@ -172,4 +172,4 @@
mineral_scan_pulse(get_turf(src))
#undef DRILL_BASIC
-#undef DRILL_HARDENED
\ No newline at end of file
+#undef DRILL_HARDENED
diff --git a/code/game/objects/effects/blessing.dm b/code/game/objects/effects/blessing.dm
index 5df90d65c7..6db28b3700 100644
--- a/code/game/objects/effects/blessing.dm
+++ b/code/game/objects/effects/blessing.dm
@@ -24,4 +24,4 @@
/obj/effect/blessing/proc/block_cult_teleport(datum/source, channel, turf/origin, turf/destination)
if(channel == TELEPORT_CHANNEL_CULT)
- return COMPONENT_BLOCK_TELEPORT
\ No newline at end of file
+ return COMPONENT_BLOCK_TELEPORT
diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm
index fa4bfe7e67..875f23434b 100644
--- a/code/game/objects/effects/decals/cleanable/aliens.dm
+++ b/code/game/objects/effects/decals/cleanable/aliens.dm
@@ -74,4 +74,4 @@
/obj/effect/decal/cleanable/blood/xtracks/Initialize()
add_blood_DNA(list("UNKNOWN DNA" = "X*"))
- . = ..()
\ No newline at end of file
+ . = ..()
diff --git a/code/game/objects/effects/decals/turfdecal/tilecoloring.dm b/code/game/objects/effects/decals/turfdecal/tilecoloring.dm
index 85c2c78abb..7b5b4d9b4e 100644
--- a/code/game/objects/effects/decals/turfdecal/tilecoloring.dm
+++ b/code/game/objects/effects/decals/turfdecal/tilecoloring.dm
@@ -235,4 +235,4 @@
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/neutral/filled/end
- icon_state = "trimline_end_fill"
\ No newline at end of file
+ icon_state = "trimline_end_fill"
diff --git a/code/game/objects/effects/spawners/traps.dm b/code/game/objects/effects/spawners/traps.dm
index 82cfe89662..731b4efc1d 100644
--- a/code/game/objects/effects/spawners/traps.dm
+++ b/code/game/objects/effects/spawners/traps.dm
@@ -7,4 +7,4 @@
..()
var/new_type = pick(subtypesof(/obj/structure/trap) - typesof(/obj/structure/trap/ctf))
new new_type(get_turf(src))
- return INITIALIZE_HINT_QDEL
\ No newline at end of file
+ return INITIALIZE_HINT_QDEL
diff --git a/code/game/objects/items/chromosome.dm b/code/game/objects/items/chromosome.dm
index 8330a8e202..3acf3cfe5c 100644
--- a/code/game/objects/items/chromosome.dm
+++ b/code/game/objects/items/chromosome.dm
@@ -89,4 +89,4 @@
/obj/item/chromosome/reinforcer/apply(datum/mutation/human/HM)
HM.mutadone_proof = TRUE
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm
index 2fa48582f7..9a1c770417 100644
--- a/code/game/objects/items/circuitboards/computer_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm
@@ -297,6 +297,10 @@
name = "Mining Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle/mining
+/obj/item/circuitboard/computer/mining_shuttle/common
+ name = "Lavaland Shuttle (Computer Board)"
+ build_path = /obj/machinery/computer/shuttle/mining/common
+
/obj/item/circuitboard/computer/snow_taxi
name = "Snow Taxi (Computer Board)"
build_path = /obj/machinery/computer/shuttle/snow_taxi
diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm
index c98484b81e..be39bb6973 100644
--- a/code/game/objects/items/control_wand.dm
+++ b/code/game/objects/items/control_wand.dm
@@ -100,4 +100,4 @@
#undef WAND_OPEN
#undef WAND_BOLT
-#undef WAND_EMERGENCY
\ No newline at end of file
+#undef WAND_EMERGENCY
diff --git a/code/game/objects/items/devices/desynchronizer.dm b/code/game/objects/items/devices/desynchronizer.dm
index e3385dc13f..2cb4922f36 100644
--- a/code/game/objects/items/devices/desynchronizer.dm
+++ b/code/game/objects/items/devices/desynchronizer.dm
@@ -91,4 +91,4 @@
return ..()
/obj/effect/abstract/sync_holder/AllowDrop()
- return TRUE //no dropping spaghetti out of your spacetime pocket
\ No newline at end of file
+ return TRUE //no dropping spaghetti out of your spacetime pocket
diff --git a/code/game/objects/items/devices/glue.dm b/code/game/objects/items/devices/glue.dm
index 2c57ede706..42fbecc780 100644
--- a/code/game/objects/items/devices/glue.dm
+++ b/code/game/objects/items/devices/glue.dm
@@ -29,4 +29,4 @@
if(uses == 0)
icon_state = "glue_used"
name = "empty bottle of super glue"
- return
\ No newline at end of file
+ return
diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm
index 915fcac504..365446bad9 100644
--- a/code/game/objects/items/devices/megaphone.dm
+++ b/code/game/objects/items/devices/megaphone.dm
@@ -62,4 +62,4 @@
name = "clown's megaphone"
desc = "Something that should not exist."
icon_state = "megaphone-clown"
- voicespan = list(SPAN_CLOWN)
\ No newline at end of file
+ voicespan = list(SPAN_CLOWN)
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index 7a8a523a18..c02eb4a051 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -21,13 +21,13 @@
force = 5
w_class = WEIGHT_CLASS_SMALL
tool_behaviour = TOOL_MULTITOOL
+ item_flags = SURGICAL_TOOL
throwforce = 0
throw_range = 7
throw_speed = 3
custom_materials = list(/datum/material/iron=50, /datum/material/glass=20)
var/obj/machinery/buffer // simple machine buffer for device linkage
toolspeed = 1
- tool_behaviour = TOOL_MULTITOOL
usesound = 'sound/weapons/empty.ogg'
var/datum/integrated_io/selected_io = null //functional for integrated circuits.
var/mode = 0
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index db29614f20..d9bfa4b00e 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -155,7 +155,7 @@ GENETICS SCANNER
if(oxy_loss > 10)
msg += "\n\t[oxy_loss > 50 ? "Severe" : "Minor"] oxygen deprivation detected."
if(tox_loss > 10)
- msg += "\n\t[tox_loss > 50 ? "Severe" : "Minor"] amount of toxin damage detected."
+ msg += "\n\t[tox_loss > 50 ? "Severe" : "Minor"] amount of [HAS_TRAIT(M, TRAIT_ROBOTIC_ORGANISM) ? "system corruption" : "toxin damage"] detected."
if(M.getStaminaLoss())
msg += "\n\tSubject appears to be suffering from fatigue."
if(advanced)
@@ -182,7 +182,7 @@ GENETICS SCANNER
| Damage: | \
Brute | \
Burn | \
- Toxin | \
+ [HAS_TRAIT(C, TRAIT_ROBOTIC_ORGANISM) ? "Corruption" :"Toxin"] | \
Suffocation | \
| Overall: | \
[brute_loss] | \
@@ -628,9 +628,9 @@ GENETICS SCANNER
var/turf/location = get_turf(user)
if(!istype(location))
return
-
+
scan_turf(user, location)
-
+
/obj/item/analyzer/AltClick(mob/user) //Barometer output for measuring when the next storm happens
. = ..()
diff --git a/code/game/objects/items/gift.dm b/code/game/objects/items/gift.dm
index 35a68cecc6..a9ed94aae9 100644
--- a/code/game/objects/items/gift.dm
+++ b/code/game/objects/items/gift.dm
@@ -8,13 +8,14 @@
* Gifts
*/
-/var/static/blacklisted_items = typecacheof(list(
+GLOBAL_LIST_INIT(gift_item_blacklist, typecacheof(list(
/obj/effect,
/obj/belly,
/obj/mafia_game_board,
/obj/docking_port,
/obj/shapeshift_holder,
- /obj/screen))
+ /obj/screen
+ )))
GLOBAL_LIST_EMPTY(possible_gifts)
@@ -103,7 +104,7 @@ GLOBAL_LIST_EMPTY(possible_gifts)
var/list/gift_types_list = subtypesof(/obj/item)
for(var/V in gift_types_list)
var/obj/item/I = V
- if((!initial(I.icon_state)) || (!initial(I.item_state)) || (initial(I.item_flags) & ABSTRACT) || (is_type_in_typecache(I, blacklisted_items)))
+ if((!initial(I.icon_state)) || (!initial(I.item_state)) || (initial(I.item_flags) & ABSTRACT) || (is_type_in_typecache(I, GLOB.gift_item_blacklist)))
gift_types_list -= V
GLOB.possible_gifts = gift_types_list
var/gift_type = pick(GLOB.possible_gifts)
diff --git a/code/game/objects/items/implants/implant_chem.dm b/code/game/objects/items/implants/implant_chem.dm
index 8da1d1e472..d148cbbb3c 100644
--- a/code/game/objects/items/implants/implant_chem.dm
+++ b/code/game/objects/items/implants/implant_chem.dm
@@ -96,4 +96,4 @@
if(implant?.imp_in)
qdel(implant)
else
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/game/objects/items/implants/implant_radio.dm b/code/game/objects/items/implants/implant_radio.dm
index 6f42547004..f3e7027c37 100644
--- a/code/game/objects/items/implants/implant_radio.dm
+++ b/code/game/objects/items/implants/implant_radio.dm
@@ -66,4 +66,4 @@
/obj/item/implanter/radio/syndicate
name = "implanter (internal syndicate radio)"
- imp_type = /obj/item/implant/radio/syndicate
\ No newline at end of file
+ imp_type = /obj/item/implant/radio/syndicate
diff --git a/code/game/objects/items/implants/implant_track.dm b/code/game/objects/items/implants/implant_track.dm
index 4f81432a39..2fa0244831 100644
--- a/code/game/objects/items/implants/implant_track.dm
+++ b/code/game/objects/items/implants/implant_track.dm
@@ -73,4 +73,4 @@
/obj/item/implantcase/track
name = "implant case - 'Tracking'"
desc = "A glass case containing a tracking implant."
- imp_type = /obj/item/implant/tracking
\ No newline at end of file
+ imp_type = /obj/item/implant/tracking
diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm
index b57ffa27c0..578d8595dd 100644
--- a/code/game/objects/items/implants/implanter.dm
+++ b/code/game/objects/items/implants/implanter.dm
@@ -77,4 +77,4 @@
/obj/item/implanter/hijack
name = "implanter (hijack)"
- imp_type = /obj/item/implant/hijack
\ No newline at end of file
+ imp_type = /obj/item/implant/hijack
diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm
index 2d2c0f31b6..913d73bdad 100644
--- a/code/game/objects/items/miscellaneous.dm
+++ b/code/game/objects/items/miscellaneous.dm
@@ -52,7 +52,8 @@
/obj/item/choice_beacon/proc/spawn_option(atom/choice,mob/living/M)
var/obj/new_item = create_choice_atom(choice, M)
- var/obj/structure/closet/supplypod/bluespacepod/pod = new()
+ var/area/pod_storage_area = locate(/area/centcom/supplypod/podStorage) in GLOB.sortedAreas
+ var/obj/structure/closet/supplypod/bluespacepod/pod = new(pick(get_area_turfs(pod_storage_area))) //Lets just have it in the pod storage zone for a really short time because we don't want it in nullspace
pod.explosionSize = list(0,0,0,0)
new_item.forceMove(pod)
var/msg = "After making your selection, you notice a strange target on the ground. It might be best to step back!"
diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm
index 61a05aacd8..b8f0d161dc 100644
--- a/code/game/objects/items/religion.dm
+++ b/code/game/objects/items/religion.dm
@@ -321,4 +321,4 @@
desc = "A rusted claymore, once at the heart of a powerful scottish clan struck down and oppressed by tyrants, it has been passed down the ages as a symbol of defiance."
force = 15
block_chance = 30
- armour_penetration = 5
\ No newline at end of file
+ armour_penetration = 5
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index 9f098bc16c..291fc30aa2 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -80,6 +80,7 @@ as performing this in action() will cause the upgrade to end up in the borg inst
desc = "Used to kick in a cyborg's VTEC systems, increasing their speed."
icon_state = "cyborg_upgrade2"
require_module = 1
+ var/obj/effect/proc_holder/silicon/cyborg/vtecControl/VC
/obj/item/borg/upgrade/vtec/action(mob/living/silicon/robot/R, user = usr)
. = ..()
@@ -91,12 +92,14 @@ as performing this in action() will cause the upgrade to end up in the borg inst
//R.speed = -2 // Gotta go fast.
//Citadel change - makes vtecs give an ability rather than reducing the borg's speed instantly
- R.AddAbility(new/obj/effect/proc_holder/silicon/cyborg/vtecControl)
+ VC = new /obj/effect/proc_holder/silicon/cyborg/vtecControl
+ R.AddAbility(VC)
R.cansprint = 0
/obj/item/borg/upgrade/vtec/deactivate(mob/living/silicon/robot/R, user = usr)
. = ..()
if (.)
+ R.RemoveAbility(VC)
R.speed = initial(R.speed)
R.cansprint = 1
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index 29b4dea6d8..de2e3b89fe 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -388,4 +388,4 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
/obj/item/shard/plasma/alien
name = "alien shard"
- desc = "A nasty looking shard of advanced alloy glass."
\ No newline at end of file
+ desc = "A nasty looking shard of advanced alloy glass."
diff --git a/code/game/objects/items/tanks/tank_types.dm b/code/game/objects/items/tanks/tank_types.dm
index d16d1b29f1..325e49dd7a 100644
--- a/code/game/objects/items/tanks/tank_types.dm
+++ b/code/game/objects/items/tanks/tank_types.dm
@@ -198,4 +198,4 @@
/obj/item/tank/internals/methyl_bromide/populate_gas()
air_contents.set_moles(/datum/gas/methyl_bromide, (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
- return
\ No newline at end of file
+ return
diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm
index 0dd9885c29..36f89e57f2 100644
--- a/code/game/objects/items/tools/crowbar.dm
+++ b/code/game/objects/items/tools/crowbar.dm
@@ -8,6 +8,7 @@
usesound = 'sound/items/crowbar.ogg'
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
+ item_flags = SURGICAL_TOOL
force = 5
throwforce = 7
w_class = WEIGHT_CLASS_SMALL
@@ -107,4 +108,4 @@
icon = 'icons/obj/advancedtools.dmi'
usesound = 'sound/weapons/sonic_jackhammer.ogg'
icon_state = "crowbar"
- toolspeed = 0.2
\ No newline at end of file
+ toolspeed = 0.2
diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm
index bf767af2ed..920afb8d14 100644
--- a/code/game/objects/items/tools/screwdriver.dm
+++ b/code/game/objects/items/tools/screwdriver.dm
@@ -8,6 +8,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
+ item_flags = SURGICAL_TOOL
force = 5
w_class = WEIGHT_CLASS_TINY
throwforce = 5
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index 8e4fb05d71..c8eb96005c 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -9,6 +9,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
+ item_flags = SURGICAL_TOOL
force = 3
throwforce = 5
hitsound = "swing_hit"
diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm
index 000b816d70..ee72c7fed2 100644
--- a/code/game/objects/items/tools/wirecutters.dm
+++ b/code/game/objects/items/tools/wirecutters.dm
@@ -8,6 +8,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
+ item_flags = SURGICAL_TOOL
force = 6
throw_speed = 3
throw_range = 7
@@ -148,4 +149,4 @@
icon = 'icons/obj/advancedtools.dmi'
icon_state = "cutters"
toolspeed = 0.2
- random_color = FALSE
\ No newline at end of file
+ random_color = FALSE
diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm
index e8b77199d7..6199e7fc76 100644
--- a/code/game/objects/items/tools/wrench.dm
+++ b/code/game/objects/items/tools/wrench.dm
@@ -7,6 +7,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
+ item_flags = SURGICAL_TOOL
force = 5
throwforce = 7
w_class = WEIGHT_CLASS_SMALL
@@ -128,4 +129,4 @@
icon = 'icons/obj/advancedtools.dmi'
icon_state = "wrench"
usesound = 'sound/effects/empulse.ogg'
- toolspeed = 0.2
\ No newline at end of file
+ toolspeed = 0.2
diff --git a/code/game/objects/structures/chess.dm b/code/game/objects/structures/chess.dm
index 8254405fee..ec882f34f8 100644
--- a/code/game/objects/structures/chess.dm
+++ b/code/game/objects/structures/chess.dm
@@ -73,4 +73,4 @@
/obj/structure/chess/blackking
name = "\improper Black King"
desc = "A black king chess piece. It can move one tile in any direction."
- icon_state = "black_king"
\ No newline at end of file
+ icon_state = "black_king"
diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm
index e51aeafdc1..2df57e1d68 100644
--- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm
+++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm
@@ -108,4 +108,4 @@
icon_state = "radbodybag"
mob_storage_capacity = 1
foldedbag_path = /obj/item/bodybag/containment
- rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
\ No newline at end of file
+ rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
index a9e6243060..c554cad034 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
@@ -10,4 +10,4 @@
new /obj/item/radio/headset/headset_srv(src)
new /obj/item/cultivator(src)
new /obj/item/hatchet(src)
- new /obj/item/storage/box/disks_plantgene(src)
\ No newline at end of file
+ new /obj/item/storage/box/disks_plantgene(src)
diff --git a/code/game/objects/structures/crates_lockers/crates/wooden.dm b/code/game/objects/structures/crates_lockers/crates/wooden.dm
index 09d176783a..6c8d3066ee 100644
--- a/code/game/objects/structures/crates_lockers/crates/wooden.dm
+++ b/code/game/objects/structures/crates_lockers/crates/wooden.dm
@@ -15,4 +15,4 @@
new /obj/item/reagent_containers/food/drinks/soda_cans/canned_laughter(src)
new /obj/item/pneumatic_cannon/pie(src)
new /obj/item/reagent_containers/food/snacks/pie/cream(src)
- new /obj/item/storage/crayons(src)
\ No newline at end of file
+ new /obj/item/storage/crayons(src)
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index 19c0f0aed1..2eda9f126a 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -553,4 +553,4 @@
/obj/structure/displaycase/forsale/kitchen
desc = "A display case with an ID-card swiper. Use your ID to purchase the contents. Meant for the bartender and chef."
req_one_access = list(ACCESS_KITCHEN, ACCESS_BAR)
-*/
\ No newline at end of file
+*/
diff --git a/code/game/objects/structures/loom.dm b/code/game/objects/structures/loom.dm
index 164e597117..28ff5a8de7 100644
--- a/code/game/objects/structures/loom.dm
+++ b/code/game/objects/structures/loom.dm
@@ -38,4 +38,4 @@
user.show_message("You weave \the [W.name] into a workable fabric.", MSG_VISUAL)
return TRUE
-#undef FABRIC_PER_SHEET
\ No newline at end of file
+#undef FABRIC_PER_SHEET
diff --git a/code/game/objects/structures/memorial.dm b/code/game/objects/structures/memorial.dm
index 243a7e3cba..d359cfc54a 100644
--- a/code/game/objects/structures/memorial.dm
+++ b/code/game/objects/structures/memorial.dm
@@ -18,4 +18,4 @@ This memorial has been designed for him and any future coders to perish.
icon = 'icons/obj/tomb.dmi'
icon_state = "memorial"
density = TRUE
- anchored = TRUE
\ No newline at end of file
+ anchored = TRUE
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index fa6bab0fcc..32040b8573 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -94,7 +94,7 @@
name = "magic mirror"
desc = "Turn and face the strange... face."
icon_state = "magic_mirror"
- var/list/races_blacklist = list("skeleton", "agent", "angel", "military_synth", "memezombies", "clockwork golem servant", "android", "synth", "mush", "zombie", "memezombie")
+ var/list/races_blacklist = list("skeleton", "agent", "military_synth", "memezombies", "clockwork golem servant", "android", "synth", "mush", "zombie", "memezombie")
var/list/choosable_races = list()
/obj/structure/mirror/magic/New()
diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm
index e1bb143fef..3eb88ad12d 100644
--- a/code/game/objects/structures/mop_bucket.dm
+++ b/code/game/objects/structures/mop_bucket.dm
@@ -26,4 +26,4 @@
/obj/structure/mopbucket/update_overlays()
. = ..()
if(reagents.total_volume > 0)
- . += "mopbucket_water"
\ No newline at end of file
+ . += "mopbucket_water"
diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm
index e67ef7af60..9032a80d91 100644
--- a/code/game/objects/structures/spawner.dm
+++ b/code/game/objects/structures/spawner.dm
@@ -72,4 +72,4 @@
/obj/structure/spawner/mining/wumborian
name = "wumborian fugu den"
desc = "A den housing a nest of wumborian fugus, how do they all even fit in there?"
- mob_types = list(/mob/living/simple_animal/hostile/asteroid/fugu)
\ No newline at end of file
+ mob_types = list(/mob/living/simple_animal/hostile/asteroid/fugu)
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 10c79bb658..d4b2d03428 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -783,7 +783,8 @@
if(ispath(chosen, /turf))
T.ChangeTurf(chosen)
else
- var/obj/structure/closet/supplypod/centcompod/pod = new()
+ var/area/pod_storage_area = locate(/area/centcom/supplypod/podStorage) in GLOB.sortedAreas
+ var/obj/structure/closet/supplypod/centcompod/pod = new(pick(get_area_turfs(pod_storage_area))) //Lets just have it in the pod bay for a moment instead of runtiming
var/atom/A = new chosen(pod)
A.flags_1 |= ADMIN_SPAWNED_1
new /obj/effect/pod_landingzone(T, pod)
diff --git a/code/modules/admin/check_antagonists.dm b/code/modules/admin/check_antagonists.dm
index c5861b95e1..532a11a532 100644
--- a/code/modules/admin/check_antagonists.dm
+++ b/code/modules/admin/check_antagonists.dm
@@ -212,4 +212,4 @@
dat += build_antag_listing()
dat += "