diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 481dd2cd8c9..0e2844579e7 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -1053,7 +1053,7 @@ /obj/item/storage/box/responseteam/New() ..() new /obj/item/clothing/mask/breath(src) - new /obj/item/tank/emergency_oxygen/engi(src) + new /obj/item/tank/emergency_oxygen/engi/full(src) new /obj/item/flashlight/flare(src) new /obj/item/kitchen/knife/combat(src) new /obj/item/radio/centcom(src) diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 3b05f0a72f9..4feb3296fe6 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -167,6 +167,11 @@ icon_state = "emergency_engi" volume = 6 +/obj/item/tank/emergency_oxygen/engi/full/New() + ..() + air_contents.oxygen = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + + /obj/item/tank/emergency_oxygen/engi/empty/New() ..() air_contents.oxygen = null diff --git a/code/modules/clothing/spacesuits/ert.dm b/code/modules/clothing/spacesuits/ert.dm index c412bb40f7d..8e68fe7461b 100644 --- a/code/modules/clothing/spacesuits/ert.dm +++ b/code/modules/clothing/spacesuits/ert.dm @@ -16,15 +16,26 @@ "Vox" = 'icons/mob/species/vox/helmet.dmi' ) +/obj/item/clothing/head/helmet/space/hardsuit/ert/Initialize() + var/mob/living/carbon/human/wearer = loc.loc //loc is the hardsuit, so its loc is the wearer + if(ishuman(wearer)) + register_camera(wearer) + ..() + /obj/item/clothing/head/helmet/space/hardsuit/ert/attack_self(mob/user) if(camera || !has_camera) ..(user) else - camera = new /obj/machinery/camera(src) - camera.network = list("ERT") - GLOB.cameranet.removeCamera(camera) - camera.c_tag = user.name - to_chat(user, "User scanned as [camera.c_tag]. Camera activated.") + register_camera(user) + +/obj/item/clothing/head/helmet/space/hardsuit/ert/proc/register_camera(mob/wearer) + if(camera || !has_camera) + return + camera = new /obj/machinery/camera(src) + camera.network = list("ERT") + GLOB.cameranet.removeCamera(camera) + camera.c_tag = wearer.name + to_chat(wearer, "User scanned as [camera.c_tag]. Camera activated.") /obj/item/clothing/head/helmet/space/hardsuit/ert/examine(mob/user) . = ..() diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index b57166d4909..8d0e68eddb0 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -128,6 +128,10 @@ item_state = "p_suit" item_color = "purple" +/obj/item/clothing/under/color/purple/sensor //for jani ert + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + /obj/item/clothing/under/color/lightpurple name = "light purple jumpsuit" icon_state = "lightpurple" diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index faa9039c8c4..6384efb2021 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -48,6 +48,10 @@ item_state = "bl_suit" item_color = "chapblack" +/obj/item/clothing/under/rank/chaplain/sensor + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + /obj/item/clothing/under/rank/chef desc = "It's an apron which is given only to the most hardcore chefs in space." name = "chef's uniform" diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm index aa70fc85db6..3a717a5907f 100644 --- a/code/modules/clothing/under/jobs/engineering.dm +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -39,6 +39,10 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 60, "acid" = 20) resistance_flags = NONE +/obj/item/clothing/under/rank/engineer/sensor + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + /obj/item/clothing/under/rank/engineer/skirt desc = "It's an orange high visibility jumpskirt worn by engineers. It has minor radiation shielding." diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index d8847741db3..ffd730d7a6d 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -124,6 +124,10 @@ permeability_coefficient = 0.50 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) +/obj/item/clothing/under/rank/medical/sensor + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + /obj/item/clothing/under/rank/medical/skirt name = "medical doctor's jumpskirt" icon_state = "medicalf" diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 0086ba96ef8..afeca2fb3bd 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -34,6 +34,10 @@ armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) strip_delay = 50 +/obj/item/clothing/under/rank/security/sensor + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + /obj/item/clothing/under/rank/security/skirt name = "security officer's jumpskirt" desc = "Standard feminine fashion for Security Officers. It's made of sturdier material than the standard jumpskirts." diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 9a2afbc8a60..beedf85c8c7 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -88,6 +88,10 @@ item_state = "g_suit" item_color = "officer" +/obj/item/clothing/under/rank/centcom_officer/sensor + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + /obj/item/clothing/under/rank/centcom_commander desc = "It's a jumpsuit worn by CentComm's highest-tier Commanders." name = "\improper CentComm officer's jumpsuit" diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm index f4ab9561bd5..96825ebdab7 100644 --- a/code/modules/response_team/ert_outfits.dm +++ b/code/modules/response_team/ert_outfits.dm @@ -36,7 +36,7 @@ rt_job = "Emergency Response Team Leader" rt_mob_job = "ERT Commander" - uniform = /obj/item/clothing/under/rank/centcom_officer + uniform = /obj/item/clothing/under/rank/centcom_officer/sensor back = /obj/item/storage/backpack/ert/commander id = /obj/item/card/id/ert/commander @@ -56,12 +56,12 @@ gloves = /obj/item/clothing/gloves/color/black suit = /obj/item/clothing/suit/armor/vest/ert/command glasses = /obj/item/clothing/glasses/sunglasses + mask = /obj/item/clothing/mask/gas/sechailer belt = /obj/item/gun/energy/gun backpack_contents = list( /obj/item/clothing/head/helmet/ert/command = 1, - /obj/item/clothing/mask/gas/sechailer = 1, /obj/item/restraints/handcuffs = 1, /obj/item/storage/lockbox/mindshield = 1, /obj/item/flashlight = 1 @@ -73,6 +73,7 @@ gloves = /obj/item/clothing/gloves/combat suit = /obj/item/clothing/suit/space/hardsuit/ert/commander glasses = /obj/item/clothing/glasses/sunglasses + mask = /obj/item/clothing/mask/gas/sechailer/swat cybernetic_implants = list( /obj/item/organ/internal/cyberimp/eyes/hud/security, /obj/item/organ/internal/cyberimp/chest/nutriment @@ -80,7 +81,6 @@ belt = /obj/item/gun/energy/gun/blueshield/pdw9 backpack_contents = list( - /obj/item/clothing/mask/gas/sechailer/swat = 1, /obj/item/gun/energy/ionrifle/carbine = 1, /obj/item/restraints/handcuffs = 1, /obj/item/clothing/shoes/magboots = 1, @@ -93,11 +93,11 @@ gloves = /obj/item/clothing/gloves/combat suit = /obj/item/clothing/suit/space/hardsuit/ert/commander/gamma glasses = /obj/item/clothing/glasses/night + mask = /obj/item/clothing/mask/gas/sechailer/swat suit_store = /obj/item/gun/energy/gun/blueshield/pdw9 belt = /obj/item/gun/projectile/automatic/pistol/enforcer/lethal backpack_contents = list( - /obj/item/clothing/mask/gas/sechailer/swat = 1, /obj/item/restraints/handcuffs = 1, /obj/item/storage/lockbox/mindshield = 1, /obj/item/gun/energy/ionrifle/carbine = 1, @@ -107,7 +107,7 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/chest/nutriment/plus, /obj/item/organ/internal/cyberimp/eyes/hud/security, - /obj/item/organ/internal/cyberimp/brain/anti_stun, + /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, /obj/item/organ/internal/cyberimp/arm/flash ) @@ -117,7 +117,7 @@ name = "RT Security" rt_job = "Emergency Response Team Officer" rt_mob_job = "ERT Security" - uniform = /obj/item/clothing/under/rank/security + uniform = /obj/item/clothing/under/rank/security/sensor back = /obj/item/storage/backpack/ert/security belt = /obj/item/storage/belt/security/response_team pda = /obj/item/pda/heads/ert/security @@ -130,12 +130,12 @@ suit = /obj/item/clothing/suit/armor/vest/ert/security suit_store = /obj/item/gun/energy/gun/advtaser glasses = /obj/item/clothing/glasses/hud/security/sunglasses + mask = /obj/item/clothing/mask/gas/sechailer r_hand = /obj/item/gun/energy/laser backpack_contents = list( /obj/item/clothing/head/helmet/ert/security = 1, - /obj/item/clothing/mask/gas/sechailer = 1, /obj/item/storage/box/zipties = 1, /obj/item/storage/box/teargas = 1, /obj/item/flashlight/seclite = 1 @@ -149,6 +149,7 @@ suit = /obj/item/clothing/suit/space/hardsuit/ert/security suit_store = /obj/item/gun/energy/gun/blueshield/pdw9 glasses = /obj/item/clothing/glasses/sunglasses + mask = /obj/item/clothing/mask/gas/sechailer r_hand = /obj/item/gun/projectile/automatic/lasercarbine @@ -159,11 +160,9 @@ ) backpack_contents = list( - /obj/item/clothing/mask/gas/sechailer = 1, /obj/item/clothing/shoes/magboots = 1, /obj/item/storage/box/handcuffs = 1, - /obj/item/storage/box/teargas = 1, - /obj/item/grenade/flashbang = 1, + /obj/item/grenade/flashbang = 2, /obj/item/ammo_box/magazine/laser = 2 ) @@ -175,13 +174,13 @@ belt = /obj/item/storage/belt/security/response_team_gamma suit_store = /obj/item/gun/energy/gun/nuclear glasses = /obj/item/clothing/glasses/night + mask = /obj/item/clothing/mask/gas/sechailer/swat l_pocket = /obj/item/restraints/legcuffs/bola/energy r_pocket = /obj/item/extinguisher/mini r_hand = /obj/item/gun/energy/immolator/multi backpack_contents = list( - /obj/item/clothing/mask/gas/sechailer/swat = 1, /obj/item/storage/box/handcuffs = 1, /obj/item/storage/box/flashbangs = 1, /obj/item/whetstone = 1, @@ -191,9 +190,9 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/chest/nutriment/plus, /obj/item/organ/internal/cyberimp/eyes/hud/security, - /obj/item/organ/internal/cyberimp/brain/anti_stun, + /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, /obj/item/organ/internal/cyberimp/arm/telebaton, - /obj/item/organ/internal/cyberimp/chest/reviver + /obj/item/organ/internal/cyberimp/chest/reviver/hardened ) @@ -217,12 +216,12 @@ suit = /obj/item/clothing/suit/space/hardsuit/ert/engineer suit_store = /obj/item/tank/emergency_oxygen/engi glasses = /obj/item/clothing/glasses/meson + mask = /obj/item/clothing/mask/gas l_pocket = /obj/item/gun/energy/gun/mini r_pocket = /obj/item/melee/classic_baton/telescopic backpack_contents = list( - /obj/item/clothing/mask/gas = 1, /obj/item/t_scanner = 1, /obj/item/stack/sheet/glass/fifty = 1, /obj/item/stack/sheet/metal/fifty = 1, @@ -237,6 +236,7 @@ suit = /obj/item/clothing/suit/space/hardsuit/ert/engineer/gamma suit_store = /obj/item/tank/emergency_oxygen/engi glasses = /obj/item/clothing/glasses/meson + mask = /obj/item/clothing/mask/gas cybernetic_implants = list( /obj/item/organ/internal/cyberimp/eyes/shield, /obj/item/organ/internal/cyberimp/chest/nutriment @@ -245,7 +245,6 @@ r_pocket = /obj/item/melee/classic_baton/telescopic backpack_contents = list( - /obj/item/clothing/mask/gas = 1, /obj/item/rcd/preloaded = 1, /obj/item/rcd_ammo = 3, /obj/item/gun/energy/gun = 1 @@ -259,12 +258,12 @@ suit = /obj/item/clothing/suit/space/hardsuit/ert/engineer/gamma suit_store = /obj/item/gun/energy/gun/blueshield/pdw9 glasses = /obj/item/clothing/glasses/meson/night + mask = /obj/item/clothing/mask/gas/sechailer/swat l_pocket = /obj/item/t_scanner/extended_range r_pocket = /obj/item/melee/classic_baton/telescopic backpack_contents = list( - /obj/item/clothing/mask/gas/sechailer/swat = 1, /obj/item/rcd/combat = 1, /obj/item/rcd_ammo/large = 3 ) @@ -272,7 +271,7 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/chest/nutriment/plus, /obj/item/organ/internal/cyberimp/eyes/hud/security, - /obj/item/organ/internal/cyberimp/brain/anti_stun, + /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, /obj/item/organ/internal/cyberimp/eyes/shield, /obj/item/organ/internal/cyberimp/arm/toolset ) @@ -353,6 +352,7 @@ gloves = /obj/item/clothing/gloves/combat suit = /obj/item/clothing/suit/space/hardsuit/ert/medical/gamma glasses = /obj/item/clothing/glasses/night + mask = /obj/item/clothing/mask/gas/sechailer/swat suit_store = /obj/item/gun/energy/gun/blueshield/pdw9 belt = /obj/item/defibrillator/compact/loaded @@ -361,7 +361,6 @@ r_pocket = /obj/item/reagent_containers/hypospray/autoinjector backpack_contents = list( - /obj/item/clothing/mask/gas/sechailer/swat = 1, /obj/item/bodyanalyzer/advanced = 1, /obj/item/extinguisher/mini = 1, /obj/item/roller = 1, @@ -375,7 +374,7 @@ /obj/item/organ/internal/cyberimp/arm/medibeam, /obj/item/organ/internal/cyberimp/chest/nutriment/plus, /obj/item/organ/internal/cyberimp/eyes/hud/medical, - /obj/item/organ/internal/cyberimp/brain/anti_stun + /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened ) //////////////////// PARANORMAL /////////////////// @@ -390,11 +389,11 @@ shoes = /obj/item/clothing/shoes/combat l_ear = /obj/item/radio/headset/ert/alt glasses = /obj/item/clothing/glasses/hud/security/sunglasses + mask = /obj/item/clothing/mask/gas/sechailer/swat belt = /obj/item/storage/belt/security/response_team id = /obj/item/card/id/centcom pda = /obj/item/pda/centcom backpack_contents = list( - /obj/item/clothing/mask/gas/sechailer/swat = 1, /obj/item/storage/box/zipties = 1, /obj/item/flashlight/seclite = 1 ) @@ -435,7 +434,7 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/chest/nutriment/plus, /obj/item/organ/internal/cyberimp/eyes/hud/security, - /obj/item/organ/internal/cyberimp/brain/anti_stun + /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened ) //////////////////// JANITORIAL /////////////////// @@ -444,7 +443,7 @@ name = "RT Janitor" rt_job = "Emergency Response Team Janitor" rt_mob_job = "ERT Janitor" - uniform = /obj/item/clothing/under/color/purple + uniform = /obj/item/clothing/under/color/purple/sensor back = /obj/item/storage/backpack/ert/janitor belt = /obj/item/storage/belt/janitor/full gloves = /obj/item/clothing/gloves/color/yellow @@ -500,5 +499,6 @@ ) cybernetic_implants = list( - /obj/item/organ/internal/cyberimp/arm/advmop + /obj/item/organ/internal/cyberimp/arm/advmop, + /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened ) diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 19ff7fa37d8..b211d903e8a 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -1,5 +1,3 @@ -#define STUN_SET_AMOUNT 2 - /obj/item/organ/internal/cyberimp name = "cybernetic implant" desc = "a state-of-the-art implant that improves a baseline's functionality" @@ -128,15 +126,16 @@ implant_color = "#FFFF00" slot = "brain_antistun" origin_tech = "materials=5;programming=4;biotech=5" + var/stun_max_amount = 2 /obj/item/organ/internal/cyberimp/brain/anti_stun/on_life() ..() if(crit_fail) return - if(owner.stunned > STUN_SET_AMOUNT) - owner.SetStunned(STUN_SET_AMOUNT) - if(owner.weakened > STUN_SET_AMOUNT) - owner.SetWeakened(STUN_SET_AMOUNT) + if(owner.stunned > stun_max_amount) + owner.SetStunned(stun_max_amount) + if(owner.weakened > stun_max_amount) + owner.SetWeakened(stun_max_amount) /obj/item/organ/internal/cyberimp/brain/anti_stun/emp_act(severity) if(crit_fail || emp_proof) @@ -147,6 +146,12 @@ /obj/item/organ/internal/cyberimp/brain/anti_stun/proc/reboot() crit_fail = FALSE +/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened + name = "Hardened CNS Rebooter implant" + desc = "A military-grade version of the standard implant, for NT's more elite forces." + origin_tech = "materials=6;programming=5;biotech=5" + emp_proof = TRUE + /obj/item/organ/internal/cyberimp/brain/clown_voice name = "Comical implant" desc = "Uh oh."