diff --git a/code/game/machinery/lathes/lathe.dm b/code/game/machinery/lathes/lathe.dm
index f00d15610584..11d76aa7cf46 100644
--- a/code/game/machinery/lathes/lathe.dm
+++ b/code/game/machinery/lathes/lathe.dm
@@ -495,6 +495,7 @@
adding = clamp(amount, 0, queue_max_entry - last.amount)
last.amount += adding
amount -= adding
+ reconsider_queue(start_immediately)
ui_controller?.ui_queue_update()
if(!amount)
return TRUE
diff --git a/code/game/mecha/equipment/tools/passenger.dm b/code/game/mecha/equipment/tools/passenger.dm
index 96cb65e645ac..6f44e5a0cce6 100644
--- a/code/game/mecha/equipment/tools/passenger.dm
+++ b/code/game/mecha/equipment/tools/passenger.dm
@@ -75,7 +75,7 @@
/obj/item/mecha_parts/mecha_equipment/tool/passenger/attach()
..()
if (chassis)
- add_obj_verb(chassis, TYPE_PROC_REF(/obj/mecha, move_inside_passenger))
+ add_obj_verb(chassis, /obj/mecha/proc/move_inside_passenger)
/obj/item/mecha_parts/mecha_equipment/tool/passenger/detach()
if(occupant)
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index 01672bce30b0..22194b464289 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -11,6 +11,8 @@
var/max_amount = 50
/// Determines whether different stack types can merge.
var/stacktype
+ /// enforce a certain type when splitting; useful if you have an infinite stack you don't want to be split into another one
+ var/split_type
/// Used when directly applied to a turf.
var/build_type = null
var/uses_charge = 0
@@ -209,6 +211,7 @@
return 0
/// Creates a new stack with the specified amount.
+// todo: refactor and combine /change_stack into here
/obj/item/stack/proc/split(tamount)
if (!amount)
return null
@@ -219,7 +222,8 @@
var/orig_amount = src.amount
if (transfer && src.use(transfer))
- var/obj/item/stack/newstack = new src.type(loc, transfer, FALSE)
+ var/make_type = isnull(split_type)? type : split_type
+ var/obj/item/stack/newstack = new make_type(loc, transfer, FALSE)
newstack.color = color
if (prob(transfer/orig_amount * 100))
transfer_fingerprints_to(newstack)
@@ -332,10 +336,12 @@
to_chat(user, SPAN_NOTICE("You take [stackmaterial] sheets out of the stack"))
return TRUE
+// todo: refactor and combine with /split
/obj/item/stack/proc/change_stack(mob/user, amount)
if(!use(amount, TRUE, FALSE))
return FALSE
- var/obj/item/stack/F = new type(user? user : drop_location(), amount, FALSE)
+ var/make_type = isnull(split_type)? type : split_type
+ var/obj/item/stack/F = new make_type(user? user : drop_location(), amount, FALSE)
. = F
F.copy_evidences(src)
if(user)
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index 853d62a9c4cf..f2174d848d40 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -133,7 +133,6 @@
icon_state = "knuckledusters"
materials = list(MAT_STEEL = 500)
attack_verb = list("punched", "beaten", "struck")
- clothing_flags = CLOTHING_THICK_MATERIAL
siemens_coefficient = 1
fingerprint_chance = 100
overgloves = 1
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index dc3b49e743b2..23de3f6f86cc 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -2,7 +2,7 @@
name = "helmet"
desc = "Standard headgear. Protects well enough against a wide range of attacks."
icon_state = "helmet"
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
valid_accessory_slots = ACCESSORY_SLOT_HELM_C|ACCESSORY_SLOT_HELM_R
restricted_accessory_slots = ACCESSORY_SLOT_HELM_C|ACCESSORY_SLOT_HELM_R
armor_type = /datum/armor/station/medium
diff --git a/code/modules/clothing/head/hood.dm b/code/modules/clothing/head/hood.dm
index 91ccec4f2fc4..0b1850fbc90e 100644
--- a/code/modules/clothing/head/hood.dm
+++ b/code/modules/clothing/head/hood.dm
@@ -130,7 +130,7 @@
name = "explorer hood"
desc = "An armoured hood for exploring harsh environments."
icon_state = "explorer"
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.9
armor_type = /datum/armor/exploration/soft
@@ -140,7 +140,7 @@
desc = "An armoured hood for mining in harsh environments."
icon = 'icons/clothing/suit/mining.dmi'
icon_state = "minehood"
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.9
@@ -152,7 +152,7 @@
desc = "A baggy hood smeared with some kind of waxy substance. Up close, what appeared to be burlap is revealed to actually be tanned skin."
icon = 'icons/clothing/suit/antag/heretic.dmi'
icon_state = "eldritchhood"
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
siemens_coefficient = 0.9
armor_type = /datum/armor/lavaland/eldritch
worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL
@@ -236,7 +236,7 @@
icon = 'icons/obj/clothing/spacesuits.dmi'
icon_state = "deathsquad"
armor_type = /datum/armor/station/heavy
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
inv_hide_flags = BLOCKHAIR
siemens_coefficient = 0.7
@@ -247,7 +247,7 @@
icon_state = "helmet"
valid_accessory_slots = (ACCESSORY_SLOT_HELM_C)
restricted_accessory_slots = (ACCESSORY_SLOT_HELM_C)
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
armor_type = /datum/armor/station/medium
siemens_coefficient = 0.7
@@ -258,7 +258,7 @@
icon_state = "helmet"
valid_accessory_slots = (ACCESSORY_SLOT_HELM_C)
restricted_accessory_slots = (ACCESSORY_SLOT_HELM_C)
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
armor_type = /datum/armor/station/medium
siemens_coefficient = 0.7
starting_accessories = list(/obj/item/clothing/accessory/armor/helmcover/navy)
diff --git a/code/modules/clothing/head/pilot_helmet.dm b/code/modules/clothing/head/pilot_helmet.dm
index b2031fb6d580..86a737d2f315 100644
--- a/code/modules/clothing/head/pilot_helmet.dm
+++ b/code/modules/clothing/head/pilot_helmet.dm
@@ -5,7 +5,7 @@
desc = "Standard pilot gear. Protects the head from impacts."
icon_state = "pilot_helmet1"
item_icons = list(SLOT_ID_HEAD = 'icons/mob/clothing/pilot_helmet.dmi')
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
armor_type = /datum/armor/exploration/space/pilot
inv_hide_flags = HIDEEARS
cold_protection = HEAD
diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm
index d5a4de6ec228..077be311f09b 100644
--- a/code/modules/clothing/spacesuits/alien.dm
+++ b/code/modules/clothing/spacesuits/alien.dm
@@ -32,7 +32,7 @@
/obj/item/clothing/suit/space/vox
w_class = ITEMSIZE_NORMAL
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs,/obj/item/tank)
armor_type = /datum/armor/vox/space/armored
siemens_coefficient = 0.2
@@ -44,7 +44,7 @@
armor_type = /datum/armor/vox/space/armored
siemens_coefficient = 0.2
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL | ALLOWINTERNALS
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | ALLOWINTERNALS
inv_hide_flags = 0
species_restricted = list(SPECIES_VOX)
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index bb7a0a035882..ea06266ea832 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -42,7 +42,7 @@
icon_state = "deathsquad"
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syndicate-helm-black-red", SLOT_ID_LEFT_HAND = "syndicate-helm-black-red")
armor_type = /datum/armor/centcom/deathsquad
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
inv_hide_flags = BLOCKHAIR
siemens_coefficient = 0.6
diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm
index 45de5eee2684..6149df547966 100644
--- a/code/modules/clothing/spacesuits/spacesuits.dm
+++ b/code/modules/clothing/spacesuits/spacesuits.dm
@@ -7,7 +7,7 @@
icon_state = "space"
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | ALLOWINTERNALS | ALLOW_SURVIVALFOOD
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | CLOTHING_INJECTION_PORT | ALLOWINTERNALS | ALLOW_SURVIVALFOOD
permeability_coefficient = 0.01
armor_type = /datum/armor/general/space
inv_hide_flags = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
@@ -23,7 +23,7 @@
valid_accessory_slots = null
weight = ITEM_WEIGHT_SOFTSUIT_HELMET
encumbrance = ITEM_ENCUMBRANCE_SOFTSUIT_HELMET
-
+
var/obj/machinery/camera/camera
var/list/camera_networks
@@ -72,7 +72,7 @@
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.02
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | CLOTHING_INJECTION_PORT
body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/flashlight,/obj/item/tank/emergency/oxygen,/obj/item/suit_cooling_unit)
armor_type = /datum/armor/general/space
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index bdbf8e89f213..ea18b4a67e19 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -1,7 +1,7 @@
/obj/item/clothing/suit/armor
allowed = list(/obj/item/gun/ballistic/sec/flash, /obj/item/gun/energy,/obj/item/reagent_containers/spray/pepper,/obj/item/gun/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/flashlight/maglight,/obj/item/clothing/head/helmet)
body_cover_flags = UPPER_TORSO|LOWER_TORSO
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
valid_accessory_slots = (\
ACCESSORY_SLOT_OVER\
|ACCESSORY_SLOT_MEDAL\
@@ -140,7 +140,7 @@
item_state_slots = list(SLOT_ID_RIGHT_HAND = "swat", SLOT_ID_LEFT_HAND = "swat")
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS
allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank/emergency/oxygen,/obj/item/clothing/head/helmet)
encumbrance = ITEM_ENCUMBRANCE_ARMOR_HEAVY + ITEM_ENCUMBRANCE_ARMOR_HEAVY_BOOTS + ITEM_ENCUMBRANCE_ARMOR_HEAVY_GLOVES
@@ -309,7 +309,7 @@
allowed = list(/obj/item/gun,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/flashlight/maglight,/obj/item/clothing/head/helmet)
body_cover_flags = UPPER_TORSO|LOWER_TORSO
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
cold_protection = UPPER_TORSO|LOWER_TORSO
min_cold_protection_temperature = ARMOR_MIN_COLD_PROTECTION_TEMPERATURE
diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm
index da3851ca62af..83551e037155 100644
--- a/code/modules/clothing/suits/bio.dm
+++ b/code/modules/clothing/suits/bio.dm
@@ -9,7 +9,7 @@
body_cover_flags = HEAD|FACE|EYES
siemens_coefficient = 0.9
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL | ALLOW_SURVIVALFOOD
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | ALLOW_SURVIVALFOOD
encumbrance
/obj/item/clothing/suit/bio_suit
@@ -26,7 +26,7 @@
inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
siemens_coefficient = 0.9
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
//Standard biosuit, orange stripe
/obj/item/clothing/head/bio_hood/general
@@ -104,7 +104,7 @@
body_cover_flags = HEAD|FACE|EYES
siemens_coefficient = 0.9
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL | ALLOW_SURVIVALFOOD
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | ALLOW_SURVIVALFOOD
/obj/item/clothing/suit/beekeeper
name = "beekeeping suit"
@@ -120,4 +120,4 @@
inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
siemens_coefficient = 0.9
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
diff --git a/code/modules/clothing/suits/hooded.dm b/code/modules/clothing/suits/hooded.dm
index 0e6d2f9ebf76..6a6b7eaf3018 100644
--- a/code/modules/clothing/suits/hooded.dm
+++ b/code/modules/clothing/suits/hooded.dm
@@ -430,7 +430,7 @@
icon_state = "explorer"
item_state = "explorer"
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
@@ -456,7 +456,7 @@
icon_state = "miner"
atom_flags = PHORONGUARD
worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
@@ -483,7 +483,7 @@
desc = "A billowing garment that seeps a thick, waxy substance. Upon closer inspection this outfit is crafted out of tanned skin, the ritual icons and spells drawn onto it having been tattooed before removal."
icon = 'icons/clothing/suit/antag/heretic.dmi'
icon_state = "eldritcharmor"
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
inv_hide_flags = HIDEHOLSTER
item_state_slots = list(SLOT_ID_RIGHT_HAND = "brown_jacket", SLOT_ID_LEFT_HAND = "brown_jacket")
action_button_name = "Toggle Eldritch Hood"
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index d41c72f08d9b..33b79cf0dbc5 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -286,6 +286,8 @@
var/resist_time = 4 MINUTES
/obj/item/clothing/suit/straight_jacket/can_unequip(mob/M, slot, mob/user, flags)
+ if(flags & INV_OP_FORCE)
+ return TRUE
if(flags & INV_OP_DISALLOW_DELAY)
return FALSE
. = ..()
diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm
index 41a5e2265d88..a5caccc690ef 100644
--- a/code/modules/clothing/suits/utility.dm
+++ b/code/modules/clothing/suits/utility.dm
@@ -78,7 +78,7 @@
icon_state = "rad"
desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation"
inv_hide_flags = BLOCKHAIR
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
body_cover_flags = HEAD|FACE|EYES
armor_type = /datum/armor/general/radsuit
weight = ITEM_WEIGHT_ARMOR_BIORAD_SUIT_HELMET
@@ -96,5 +96,5 @@
weight = ITEM_WEIGHT_ARMOR_BIORAD_SUIT
armor_type = /datum/armor/general/radsuit
inv_hide_flags = HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
encumbrance = ITEM_ENCUMBRANCE_ARMOR_BIORAD_SUIT
diff --git a/code/modules/hardsuits/rig_pieces.dm b/code/modules/hardsuits/rig_pieces.dm
index 14cab10a5182..580ccc913837 100644
--- a/code/modules/hardsuits/rig_pieces.dm
+++ b/code/modules/hardsuits/rig_pieces.dm
@@ -5,7 +5,7 @@
/obj/item/clothing/head/helmet/space/hardsuit
name = "helmet"
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL | ALLOW_SURVIVALFOOD | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB | ALLOWINTERNALS
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | ALLOW_SURVIVALFOOD | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB | ALLOWINTERNALS
inv_hide_flags = HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
body_cover_flags = HEAD|FACE|EYES
heat_protection = HEAD|FACE|EYES
@@ -48,7 +48,7 @@
/obj/item/clothing/gloves/gauntlets/hardsuit
name = "gauntlets"
- clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB
atom_flags = PHORONGUARD
body_cover_flags = HANDS
heat_protection = HANDS
@@ -131,7 +131,7 @@
//Flags
body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
- clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
atom_flags = PHORONGUARD
inv_hide_flags = HIDEJUMPSUIT|HIDETAIL
@@ -229,7 +229,7 @@
/obj/item/clothing/head/lightrig
name = "mask"
- clothing_flags = CLOTHING_THICK_MATERIAL | ALLOWINTERNALS | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | ALLOWINTERNALS | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB
atom_flags = PHORONGUARD
body_cover_flags = HEAD|FACE|EYES
heat_protection = HEAD|FACE|EYES
@@ -239,7 +239,7 @@
name = "suit"
allowed = list(/obj/item/flashlight)
inv_hide_flags = HIDEJUMPSUIT
- clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB
atom_flags = PHORONGUARD
body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
@@ -256,7 +256,7 @@
/obj/item/clothing/gloves/gauntlets/lightrig
name = "gloves"
- clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB
atom_flags = PHORONGUARD
species_restricted = null
body_cover_flags = HANDS
diff --git a/code/modules/hardsuits/suits/light.dm b/code/modules/hardsuits/suits/light.dm
index 59c745e9e3f4..d6ec9bdae75e 100644
--- a/code/modules/hardsuits/suits/light.dm
+++ b/code/modules/hardsuits/suits/light.dm
@@ -16,7 +16,7 @@
emp_protection = 10
encumbrance = ITEM_ENCUMBRANCE_LEGACY_RIG_LIGHT
offline_encumbrance = ITEM_ENCUMBRANCE_LEGACY_RIG_LIGHT * 2
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
offline_vision_restriction = 0
chest_type = /obj/item/clothing/suit/space/hardsuit/light
diff --git a/code/modules/hardsuits/suits/species/vox.dm b/code/modules/hardsuits/suits/species/vox.dm
index ce02abf6e3e8..8cbf80bf023f 100644
--- a/code/modules/hardsuits/suits/species/vox.dm
+++ b/code/modules/hardsuits/suits/species/vox.dm
@@ -5,7 +5,7 @@
icon_state = "vox_rig"
armor_type = /datum/armor/hardsuit/vox
atom_flags = PHORONGUARD
- clothing_flags = CLOTHING_THICK_MATERIAL
+ clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT
siemens_coefficient = 0.2
allowed = list(
/obj/item/gun,
diff --git a/code/modules/jobs/job_types/station/science/roboticist.dm b/code/modules/jobs/job_types/station/science/roboticist.dm
index fb5f3427d8e2..cc625a69f125 100644
--- a/code/modules/jobs/job_types/station/science/roboticist.dm
+++ b/code/modules/jobs/job_types/station/science/roboticist.dm
@@ -25,8 +25,8 @@
desc = "A Roboticist maintains and repairs the station's synthetics, including crew with prosthetic limbs. \
They can also assist the station by producing simple robots and even pilotable exosuits."
alt_titles = list(
- "Biomechanical Technician" = /datum/prototype/struct/alt_title/biomech,
- "Mechatronic Technician" = /datum/prototype/struct/alt_title/mech_tech,
+ "Biomechanical Engineer" = /datum/prototype/struct/alt_title/biomech,
+ "Mechatronic Engineer" = /datum/prototype/struct/alt_title/mech_tech,
"Artificer-Biotechnicist" = /datum/prototype/struct/alt_title/artificer_biotechnicist
)
diff --git a/code/modules/nifsoft/software/06_screens.dm b/code/modules/nifsoft/software/06_screens.dm
index 128442734af5..a499bbe45383 100644
--- a/code/modules/nifsoft/software/06_screens.dm
+++ b/code/modules/nifsoft/software/06_screens.dm
@@ -34,15 +34,15 @@
access = ACCESS_ENGINEERING_MAIN
cost = 250
p_drain = 0.025
- var/datum/nano_module/alarm_monitor/engineering/arscreen
+ var/datum/tgui_module_old/alarm_monitor/engineering/nif/arscreen
/datum/nifsoft/alarmmonitor/New()
..()
arscreen = new(nif)
/datum/nifsoft/alarmmonitor/Destroy()
- QDEL_NULL(arscreen)
- return ..()
+ QDEL_NULL(arscreen)
+ return ..()
/datum/nifsoft/alarmmonitor/activate()
if((. = ..()))
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index dd90bcfc577a..91a57aac65da 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -975,6 +975,7 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list(
slot_flags = SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
stacktype = null
+ split_type = /obj/item/stack/cable_coil
tool_speed = 0.25
/obj/item/stack/cable_coil/alien/Initialize(mapload, new_amount, merge, param_color)
@@ -994,34 +995,10 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list(
return 1
/obj/item/stack/cable_coil/alien/use() //It's endless
- return 1
+ return TRUE
/obj/item/stack/cable_coil/alien/add() //Still endless
return 0
/obj/item/stack/cable_coil/alien/update_wclass()
return 0
-
-/obj/item/stack/cable_coil/alien/split(tamount)
- return null // no split
-
-/obj/item/stack/cable_coil/alien/attack_hand(mob/user, list/params)
- if (user.get_inactive_held_item() == src)
- var/N = input("How many units of wire do you want to take from [src]? You can only take up to [amount] at a time.", "Split stacks", 1) as num|null
- if(N && N <= amount)
- var/obj/item/stack/cable_coil/CC = new/obj/item/stack/cable_coil(user.loc)
- CC.amount = N
- CC.update_icon()
- to_chat(user,"You take [N] units of wire from the [src].")
- if (CC)
- user.put_in_hands(CC)
- src.add_fingerprint(user)
- CC.add_fingerprint(user)
- spawn(0)
- if (src && usr.machine==src)
- src.interact(usr)
- else
- return
- else
- ..()
- return
diff --git a/code/modules/reagents/items/hypospray.dm b/code/modules/reagents/items/hypospray.dm
index 18a049d03b90..5ebc8c62ed36 100644
--- a/code/modules/reagents/items/hypospray.dm
+++ b/code/modules/reagents/items/hypospray.dm
@@ -158,27 +158,27 @@
block_flags |= (I.clothing_flags & (CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT))
// got all coverage, proceed.
var/delay = injection_time
- if(block_flags & CLOTHING_THICK_MATERIAL)
+ if(block_flags & CLOTHING_INJECTION_PORT)
if(isnull(thick_add_time))
- user.action_feedback(SPAN_WARNING("[src] can't [inject_verb] through something that thick!"), src)
+ user.action_feedback(SPAN_WARNING("[src] is not compatible with injection ports!"), src)
return FALSE
- delay += thick_add_time
+ delay += port_add_time
// todo: 'friendly name' so limbs can stay concealed of their true names while under clothing?
- inject_message = SPAN_WARNING("[user] starts to dig [src] up against [target]'s [limb]!")
- else if(block_flags & CLOTHING_INJECTION_PORT)
+ inject_message = SPAN_NOTICE("[user] starts to search for an injection port on [target]'s [limb.name].")
+ else if(block_flags & CLOTHING_THICK_MATERIAL)
if(isnull(thick_add_time))
- user.action_feedback(SPAN_WARNING("[src] is not compatible with injection ports!"), src)
+ user.action_feedback(SPAN_WARNING("[src] can't [inject_verb] through something that thick!"), src)
return FALSE
- delay += port_add_time
+ delay += thick_add_time
// todo: 'friendly name' so limbs can stay concealed of their true names while under clothing?
- inject_message = SPAN_NOTICE("[user] starts to search for an injection port on [target]'s [limb].")
+ inject_message = SPAN_WARNING("[user] starts to dig [src] up against [target]'s [limb]!")
if(target.a_intent != INTENT_HELP)
if(isnull(resist_add_time))
user.action_feedback(SPAN_WARNING("[src] is not capable of aligning while [target] is resisting! (Non-help intent)"), src)
return FALSE
delay += resist_add_time
// todo: 'friendly name' so limbs can stay concealed of their true names while under clothing?
- inject_message = SPAN_WARNING("[user] starts to intrusively align [src] up against [target]'s [limb]!")
+ inject_message = SPAN_WARNING("[user] starts to intrusively align [src] up against [target]'s [limb.name]!")
if(!silent)
user.visible_action_feedback(
target = target,
diff --git a/tgui/packages/tgui/interfaces/common/Materials.tsx b/tgui/packages/tgui/interfaces/common/Materials.tsx
index 52c58ed37956..4e0243a237d0 100644
--- a/tgui/packages/tgui/interfaces/common/Materials.tsx
+++ b/tgui/packages/tgui/interfaces/common/Materials.tsx
@@ -100,13 +100,14 @@ export const MaterialRender = (props: MaterialRenderProps, context) => {
-
-
+
+
+
{renderMaterialAmount(amt)}