diff --git a/code/__defines/_planes+layers.dm b/code/__defines/_planes+layers.dm index deb6567165..a06ef90f7a 100644 --- a/code/__defines/_planes+layers.dm +++ b/code/__defines/_planes+layers.dm @@ -161,6 +161,7 @@ What is the naming convention for planes or layers? #define PLANE_CH_STATUS_OOC 24 //OOC status hud for spooks #define PLANE_MESONS 30 //Stuff seen with mesons, like open ceilings. This is 30 for downstreams. +#define PLANE_JANHUD 31 //Stuff seen with janiHUD. Mostly highlight of dirt. #define PLANE_ADMIN2 33 //Purely for shenanigans (above lighting) diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 3bb8ebe6b0..9478891464 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -28,6 +28,7 @@ #define BORGXRAY 0x4 #define BORGMATERIAL 0x8 #define BORGANOMALOUS 0x10 +#define BORGJAN 0x20 #define STANCE_ATTACK 11 // Backwards compatability #define STANCE_ATTACKING 12 // Ditto @@ -401,18 +402,19 @@ #define VIS_ADMIN3 20 #define VIS_MESONS 21 +#define VIS_JANHUD 22 -#define VIS_TURFS 22 -#define VIS_OBJS 23 -#define VIS_MOBS 24 +#define VIS_TURFS 23 +#define VIS_OBJS 24 +#define VIS_MOBS 25 -#define VIS_BUILDMODE 25 +#define VIS_BUILDMODE 26 -#define VIS_CLOAKED 26 +#define VIS_CLOAKED 27 -#define VIS_STATUS 27 +#define VIS_STATUS 28 -#define VIS_COUNT 27 //Must be highest number from above. +#define VIS_COUNT 28 //Must be highest number from above. //Some mob icon layering defines #define BODY_LAYER -100 diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm index 5ef9749e00..02215b03f5 100644 --- a/code/datums/supplypacks/supply.dm +++ b/code/datums/supplypacks/supply.dm @@ -57,6 +57,7 @@ /obj/item/weapon/reagent_containers/spray/cleaner, /obj/item/weapon/reagent_containers/glass/rag, /obj/item/weapon/grenade/chem_grenade/cleaner = 3, + /obj/item/clothing/glasses/hud/janitor, /obj/structure/mopbucket ) cost = 10 diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 1e3393c857..16a0515e63 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -193,6 +193,7 @@ var/global/list/image/splatter_cache=list() icon = blood cut_overlays() + add_overlay(janhud) add_overlay(giblets) /obj/effect/decal/cleanable/blood/gibs/up diff --git a/code/game/objects/effects/decals/Cleanable/tracks.dm b/code/game/objects/effects/decals/Cleanable/tracks.dm index 8c8344df2c..41b5498340 100644 --- a/code/game/objects/effects/decals/Cleanable/tracks.dm +++ b/code/game/objects/effects/decals/Cleanable/tracks.dm @@ -130,6 +130,7 @@ var/global/list/image/fluidtrack_cache=list() /obj/effect/decal/cleanable/blood/tracks/update_icon() cut_overlays() + add_overlay(janhud) color = "#FFFFFF" var/truedir=0 diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index d30a548ab2..a3c5dc6a4b 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -12,6 +12,7 @@ generic_filth = TRUE means when the decal is saved, it will be switched out for var/generic_filth = FALSE var/age = 0 var/list/random_icon_states = list() + var/list/janhud = list() /obj/effect/decal/cleanable/Initialize(var/mapload, var/_age) if(!isnull(_age)) @@ -20,10 +21,13 @@ generic_filth = TRUE means when the decal is saved, it will be switched out for src.icon_state = pick(src.random_icon_states) if(!mapload || !config.persistence_ignore_mapload) SSpersistence.track_value(src, /datum/persistent/filth) + janhud += gen_hud_image(ingame_hud, src, "janhud[rand(1,9)]", plane = PLANE_JANHUD) + add_overlay(janhud) . = ..() /obj/effect/decal/cleanable/Destroy() SSpersistence.forget_value(src, /datum/persistent/filth) + cut_overlays() . = ..() /obj/effect/decal/cleanable/clean_blood(var/ignore = 0) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 30ff96b052..b1fe260b40 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -59,6 +59,12 @@ icon_state = "material" icon = 'icons/inventory/eyes/item.dmi' +/obj/item/borg/sight/janitor + name = "\proper contaminant detector vision" + sight_mode = BORGJAN + icon_state = "janhud" + icon = 'icons/inventory/eyes/item.dmi' + /obj/item/borg/sight/anomalous name = "\proper anomaly vision" sight_mode = BORGANOMALOUS diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index e26ff9bd57..53cff1878f 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -485,7 +485,8 @@ /obj/item/taperoll, /obj/item/weapon/reagent_containers/spray, /obj/item/weapon/soap, - /obj/item/device/lightreplacer //VOREStation edit + /obj/item/device/lightreplacer, + /obj/item/clothing/glasses/hud/janitor ) /obj/item/weapon/storage/belt/archaeology diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm index 8062d7db2a..39d26b69cd 100644 --- a/code/game/objects/random/mapping.dm +++ b/code/game/objects/random/mapping.dm @@ -915,6 +915,7 @@ /obj/item/clothing/head/soft/purple, /obj/item/weapon/storage/belt/janitor, /obj/item/clothing/shoes/galoshes, + /obj/item/clothing/glasses/hud/janitor, /obj/item/weapon/storage/bag/trash, /obj/item/device/lightreplacer, /obj/item/weapon/reagent_containers/spray/cleaner, @@ -1193,6 +1194,7 @@ /obj/item/clothing/head/soft/purple, /obj/item/weapon/storage/belt/janitor, /obj/item/clothing/shoes/galoshes, + /obj/item/clothing/glasses/hud/janitor, /obj/item/weapon/storage/bag/trash, /obj/item/device/lightreplacer, /obj/item/weapon/reagent_containers/spray/cleaner, diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index a33e39a219..c9754da28b 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -80,7 +80,8 @@ /obj/item/device/lightreplacer, /obj/item/weapon/storage/bag/trash, /obj/item/weapon/storage/belt/janitor, - /obj/item/clothing/shoes/galoshes + /obj/item/clothing/shoes/galoshes, + /obj/item/clothing/glasses/hud/janitor ) /* diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes.dm b/code/modules/client/preference_setup/loadout/loadout_eyes.dm index 67495b1a82..101ba17368 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes.dm @@ -105,6 +105,15 @@ display_name = "Medical HUD Aviators, prescription (Medical)" path = /obj/item/clothing/glasses/hud/health/aviator/prescription +/datum/gear/eyes/janitor + display_name = "Contaminant HUD (Janitor)" + path = /obj/item/clothing/glasses/hud/janitor + allowed_roles = list("Janitor") + +/datum/gear/eyes/janitor/prescriptionjan + display_name = "Contaminant HUD, prescription (Janitor)" + path = /obj/item/clothing/glasses/hud/janitor/prescription + /datum/gear/eyes/meson display_name = "Optical Meson Scanners (Engineering, Science, Mining)" path = /obj/item/clothing/glasses/meson diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index e0d3177b52..fe294c7186 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -41,3 +41,18 @@ item_state_slots = list(slot_r_hand_str = "sunglasses", slot_l_hand_str = "sunglasses") vision_flags = SEE_MOBS see_invisible = SEE_INVISIBLE_NOLIGHTING + +/obj/item/clothing/glasses/hud/janitor + name = "Contaminant Detector HUD" + desc = "A heads-up display that scans the environment for contaminations." + icon_state = "janhud" + item_state_slots = list(slot_r_hand_str = "headset", slot_l_hand_str = "headset") + body_parts_covered = 0 + enables_planes = list(VIS_JANHUD) + +/obj/item/clothing/glasses/hud/janitor/prescription + name = "Prescription Contaminant Detector HUD" + desc = "A heads-up display that scans the environment for contaminations." + prescription = 1 + icon_state = "janhudpresc" + item_state_slots = list(slot_r_hand_str = "glasses", slot_l_hand_str = "glasses") diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm index a03afca62e..aeb5f52544 100644 --- a/code/modules/economy/vending_machines.dm +++ b/code/modules/economy/vending_machines.dm @@ -1619,6 +1619,7 @@ /obj/item/clothing/gloves/black = 5, /obj/item/weapon/storage/belt/janitor = 5, /obj/item/clothing/shoes/galoshes = 5, + /obj/item/clothing/glasses/hud/janitor = 5, /obj/item/weapon/cartridge/janitor = 5 ) req_log_access = access_hop diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index fa2855f0e7..203f2e9d64 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -155,6 +155,7 @@ /mob/living/silicon/robot/handle_regular_hud_updates() var/fullbright = FALSE var/seemeson = FALSE + var/seejanhud = src.sight_mode & BORGJAN var/area/A = get_area(src) if(A?.no_spoilers) @@ -209,6 +210,7 @@ if(plane_holder) plane_holder.set_vis(VIS_FULLBRIGHT,fullbright) plane_holder.set_vis(VIS_MESONS,seemeson) + plane_holder.set_vis(VIS_JANHUD,seejanhud) ..() diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index ea34d54e55..511137caf3 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -514,6 +514,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/mop(src) src.modules += new /obj/item/pupscrubber(src) src.modules += new /obj/item/device/lightreplacer(src) + src.modules += new /obj/item/borg/sight/janitor(src) var/obj/item/weapon/reagent_containers/spray/LS = new /obj/item/weapon/reagent_containers/spray(src) src.emag += LS LS.reagents.add_reagent("lube", 250) diff --git a/code/modules/mob/mob_planes.dm b/code/modules/mob/mob_planes.dm index 4235d7470a..e1209175e6 100644 --- a/code/modules/mob/mob_planes.dm +++ b/code/modules/mob/mob_planes.dm @@ -40,6 +40,7 @@ plane_masters[VIS_ADMIN3] = new /obj/screen/plane_master{plane = PLANE_ADMIN3} //For admin use plane_masters[VIS_MESONS] = new /obj/screen/plane_master{plane = PLANE_MESONS} //Meson-specific things like open ceilings. + plane_masters[VIS_JANHUD] = new /obj/screen/plane_master{plane = PLANE_JANHUD} //Meson-specific things like open ceilings. plane_masters[VIS_BUILDMODE] = new /obj/screen/plane_master{plane = PLANE_BUILDMODE} //Things that only show up while in build mode @@ -113,7 +114,7 @@ alter_values(SP, values) - + //////////////////// // The Plane Master diff --git a/code/modules/research/designs/HUDs.dm b/code/modules/research/designs/HUDs.dm index 58a562a9e2..42d72fa1fa 100644 --- a/code/modules/research/designs/HUDs.dm +++ b/code/modules/research/designs/HUDs.dm @@ -24,19 +24,26 @@ build_path = /obj/item/clothing/glasses/hud/security sort_string = "EAAAB" +/datum/design/item/hud/janitor + name = "contaminant detector" + id = "janitor_hud" + req_tech = list(TECH_MAGNET = 2) + build_path = /obj/item/clothing/glasses/hud/janitor + sort_string = "EAAAC" + /datum/design/item/hud/mesons name = "optical meson scanner" id = "mesons" req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2) build_path = /obj/item/clothing/glasses/meson - sort_string = "EAAAC" + sort_string = "EAAAD" /datum/design/item/hud/material name = "optical material scanner" id = "material" req_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 3) build_path = /obj/item/clothing/glasses/material - sort_string = "EAAAD" + sort_string = "EAAAE" /datum/design/item/hud/graviton_visor name = "graviton visor" @@ -44,4 +51,4 @@ req_tech = list(TECH_MAGNET = 5, TECH_ENGINEERING = 3, TECH_BLUESPACE = 3, TECH_PHORON = 3, TECH_ARCANE = 1) materials = list(MAT_PLASTEEL = 2000, MAT_GLASS = 3000, MAT_PHORON = 1500, MAT_DIAMOND = 500) build_path = /obj/item/clothing/glasses/graviton - sort_string = "EAAAE" \ No newline at end of file + sort_string = "EAAAF" \ No newline at end of file diff --git a/icons/inventory/eyes/item.dmi b/icons/inventory/eyes/item.dmi index 0d3623eb40..3ed94616da 100644 Binary files a/icons/inventory/eyes/item.dmi and b/icons/inventory/eyes/item.dmi differ diff --git a/icons/inventory/eyes/mob.dmi b/icons/inventory/eyes/mob.dmi index ecc8ccd7c8..aa54eba9c5 100644 Binary files a/icons/inventory/eyes/mob.dmi and b/icons/inventory/eyes/mob.dmi differ diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 2c993002fb..bb2c0726b0 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/vorestation.dme b/vorestation.dme index cd057eceee..eedecffbbf 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -4303,6 +4303,7 @@ #include "maps\southern_cross\loadout\loadout_suit.dm" #include "maps\southern_cross\loadout\loadout_uniform.dm" #include "maps\southern_cross\loadout\loadout_vr.dm" +#include "maps\stellar_delight\stellar_delight.dm" #include "maps\submaps\_helpers.dm" #include "maps\submaps\_readme.dm" #include "maps\submaps\admin_use_vr\event_autonomous_drone.dm" @@ -4313,6 +4314,5 @@ #include "maps\submaps\space_submaps\debrisfield\debrisfield.dm" #include "maps\submaps\surface_submaps\wilderness\wilderness.dm" #include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm" -#include "maps\stellar_delight\stellar_delight.dm" #include "maps\~map_system\maps.dm" // END_INCLUDE