diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 79df39c740a..e2b9380850c 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -26,6 +26,7 @@ #define DIAG_TRACK_HUD "21"// Mech tracking beacon #define DIAG_AIRLOCK_HUD "22" // Airlock shock overlay #define GLAND_HUD "23"//Gland indicators for abductors +#define JANI_HUD "24" // Sign overlay over cleanable decals //by default everything in the hud_list of an atom is an image //a value in hud_list with one of these will change that behavior @@ -40,20 +41,21 @@ #define DATA_HUD_DIAGNOSTIC_BASIC 5 #define DATA_HUD_DIAGNOSTIC_ADVANCED 6 #define DATA_HUD_HYDROPONIC 7 +#define DATA_HUD_JANITOR 8 //antag HUD defines -#define ANTAG_HUD_CULT 8 -#define ANTAG_HUD_REV 9 -#define ANTAG_HUD_OPS 10 -#define ANTAG_HUD_WIZ 11 -#define ANTAG_HUD_SHADOW 12 -#define ANTAG_HUD_TRAITOR 13 -#define ANTAG_HUD_NINJA 14 -#define ANTAG_HUD_CHANGELING 15 -#define ANTAG_HUD_VAMPIRE 16 -#define ANTAG_HUD_ABDUCTOR 17 -#define DATA_HUD_ABDUCTOR 18 -#define ANTAG_HUD_EVENTMISC 19 -#define ANTAG_HUD_BLOB 20 +#define ANTAG_HUD_CULT 9 +#define ANTAG_HUD_REV 10 +#define ANTAG_HUD_OPS 11 +#define ANTAG_HUD_WIZ 12 +#define ANTAG_HUD_SHADOW 13 +#define ANTAG_HUD_TRAITOR 14 +#define ANTAG_HUD_NINJA 15 +#define ANTAG_HUD_CHANGELING 16 +#define ANTAG_HUD_VAMPIRE 17 +#define ANTAG_HUD_ABDUCTOR 18 +#define DATA_HUD_ABDUCTOR 19 +#define ANTAG_HUD_EVENTMISC 20 +#define ANTAG_HUD_BLOB 21 // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/datums/atom_hud.dm b/code/datums/atom_hud.dm index ff924e697d1..e79861e5877 100644 --- a/code/datums/atom_hud.dm +++ b/code/datums/atom_hud.dm @@ -10,6 +10,7 @@ GLOBAL_LIST_INIT(huds, list( DATA_HUD_DIAGNOSTIC_BASIC = new/datum/atom_hud/data/diagnostic/basic(), DATA_HUD_DIAGNOSTIC_ADVANCED = new/datum/atom_hud/data/diagnostic/advanced(), DATA_HUD_HYDROPONIC = new/datum/atom_hud/data/hydroponic(), + DATA_HUD_JANITOR = new/datum/atom_hud/data/janitor(), ANTAG_HUD_CULT = new/datum/atom_hud/antag(), ANTAG_HUD_REV = new/datum/atom_hud/antag(), ANTAG_HUD_OPS = new/datum/atom_hud/antag(), diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 7adac734b9f..6b019a4a91f 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -57,6 +57,9 @@ /datum/atom_hud/data/hydroponic hud_icons = list (PLANT_NUTRIENT_HUD, PLANT_WATER_HUD, PLANT_STATUS_HUD, PLANT_HEALTH_HUD, PLANT_TOXIN_HUD, PLANT_PEST_HUD, PLANT_WEED_HUD) +/datum/atom_hud/data/janitor + hud_icons = list(JANI_HUD) + /* MED/SEC/DIAG HUD HOOKS */ /* @@ -492,6 +495,15 @@ else holder.icon_state = "" +/*~~~~~~~~~~~~~~ + JANI HUD +~~~~~~~~~~~~~~~*/ +/obj/effect/decal/cleanable/proc/jani_hud_set_sign() + var/image/holder = hud_list[JANI_HUD] + holder.icon_state = "hudjani" + holder.alpha = 130 + holder.plane = ABOVE_LIGHTING_PLANE + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I'll just put this somewhere near the end... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index b3457fc2149..8e70132e678 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -11,6 +11,14 @@ plane = FLOOR_PLANE ///for blood n vomit in zero G --- IN GRAVITY=TRUE; NO GRAVITY=FALSE var/gravity_check = TRUE + hud_possible = list(JANI_HUD) + +/obj/effect/decal/cleanable/Initialize(mapload) + . = ..() + var/datum/atom_hud/data/janitor/jani_hud = GLOB.huds[DATA_HUD_JANITOR] + prepare_huds() + jani_hud.add_to_hud(src) + jani_hud_set_sign() /obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal if(mergeable_decal) diff --git a/code/modules/clothing/glasses/hudglasses.dm b/code/modules/clothing/glasses/hudglasses.dm index 784eb833ba3..a87eedd9ea8 100644 --- a/code/modules/clothing/glasses/hudglasses.dm +++ b/code/modules/clothing/glasses/hudglasses.dm @@ -235,3 +235,32 @@ "Vox" = 'icons/mob/clothing/species/vox/eyes.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/eyes.dmi' ) + +/obj/item/clothing/glasses/hud/janitor + name = "janitor HUD" + desc = "A heads-up display that scans for messes and alerts the user. Good for finding puddles hiding under catwalks." + icon_state = "janihud" + hud_types = DATA_HUD_JANITOR + + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/eyes.dmi', + "Drask" = 'icons/mob/clothing/species/drask/eyes.dmi', + "Grey" = 'icons/mob/clothing/species/grey/eyes.dmi', + "Kidan" = 'icons/mob/clothing/species/kidan/eyes.dmi' + ) + +/obj/item/clothing/glasses/hud/janitor/sunglasses + name = "janitor HUD sunglasses" + desc = "Sunglasses with a build-in filth scanner, scans for messes and alerts the user." + icon_state = "sunhudjani" + see_in_dark = 1 + flash_protect = FLASH_PROTECTION_FLASH + tint = FLASH_PROTECTION_FLASH + +/obj/item/clothing/glasses/hud/janitor/night + name = "night vision janitor HUD" + desc = "A janitorial filth scanner fitted with a light amplifier." + icon_state = "nvjanihud" + origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5" + see_in_dark = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE diff --git a/code/modules/crafting/tailoring.dm b/code/modules/crafting/tailoring.dm index 5415b415c22..5ce8299daee 100644 --- a/code/modules/crafting/tailoring.dm +++ b/code/modules/crafting/tailoring.dm @@ -194,6 +194,24 @@ reqs = list(/obj/item/clothing/glasses/hud/diagnostic/sunglasses = 1) category = CAT_CLOTHING +/datum/crafting_recipe/hudsunjani + name = "Janitor HUD sunglasses" + result = list(/obj/item/clothing/glasses/hud/janitor/sunglasses) + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/janitor = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunjaniremoval + name = "Janitor HUD sunglasses removal" + result = list(/obj/item/clothing/glasses/sunglasses, /obj/item/clothing/glasses/hud/janitor) + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/janitor/sunglasses = 1) + category = CAT_CLOTHING + /datum/crafting_recipe/beergoggles name = "Sunscanners" result = list(/obj/item/clothing/glasses/sunglasses/reagent) diff --git a/code/modules/mob/living/silicon/silicon_mob.dm b/code/modules/mob/living/silicon/silicon_mob.dm index 82f78017a5d..c36af97f0bf 100644 --- a/code/modules/mob/living/silicon/silicon_mob.dm +++ b/code/modules/mob/living/silicon/silicon_mob.dm @@ -40,6 +40,7 @@ var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use var/sec_hud = DATA_HUD_SECURITY_ADVANCED //Determines the sec hud to use var/d_hud = DATA_HUD_DIAGNOSTIC_BASIC //There is only one kind of diag hud + var/jani_hud = DATA_HUD_JANITOR /mob/living/silicon/New() GLOB.silicon_mob_list |= src @@ -350,9 +351,11 @@ var/datum/atom_hud/secsensor = GLOB.huds[sec_hud] var/datum/atom_hud/medsensor = GLOB.huds[med_hud] var/datum/atom_hud/diagsensor = GLOB.huds[d_hud] + var/datum/atom_hud/janisensor = GLOB.huds[jani_hud] secsensor.remove_hud_from(src) medsensor.remove_hud_from(src) diagsensor.remove_hud_from(src) + janisensor.remove_hud_from(src) /mob/living/silicon/proc/add_sec_hud() @@ -367,12 +370,16 @@ var/datum/atom_hud/diagsensor = GLOB.huds[d_hud] diagsensor.add_hud_to(src) +/mob/living/silicon/proc/add_jani_hud() + var/datum/atom_hud/janisensor = GLOB.huds[jani_hud] + janisensor.add_hud_to(src) /mob/living/silicon/proc/toggle_sensor_mode() to_chat(src, "Please select sensor type.") var/static/list/sensor_choices = list("Security" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "securityhud"), "Medical" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "healthhud"), "Diagnostic" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "diagnostichud"), + "Janitor" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "janihud"), "None" = image(icon = 'icons/mob/screen_gen.dmi', icon_state = "x")) var/sensor_type = show_radial_menu(src, src, sensor_choices) if(!sensor_type) @@ -388,6 +395,9 @@ if("Diagnostic") add_diag_hud() to_chat(src, "Robotics diagnostic overlay enabled.") + if("Janitor") + add_jani_hud() + to_chat(src, "Janitorial filth overlay enabled.") if("None") to_chat(src, "Sensor augmentations disabled.") diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm index 89c1502e61b..ed79318dbfa 100644 --- a/code/modules/research/designs/equipment_designs.dm +++ b/code/modules/research/designs/equipment_designs.dm @@ -81,6 +81,26 @@ build_path = /obj/item/clothing/glasses/hud/skills category = list("Equipment") +/datum/design/jani_hud + name = "Janitor HUD" + desc = "A heads-up display that scans for messes and alerts the user. Good for finding puddles hiding under catwalks." + id = "jani_hud" + req_tech = list("biotech" = 2, "magnets" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/glasses/hud/janitor + category = list("Equipment", "Janitorial") + +/datum/design/jani_night_vision_goggles + name = "Night Vision Janitor HUD" + desc = "A janitorial filth scanner fitted with a light amplifier." + id = "night_vision_jani" + req_tech = list("biotech" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) + build_path = /obj/item/clothing/glasses/hud/janitor/night + category = list("Equipment", "Janitorial") + /datum/design/mesons name = "Optical Meson Scanners" desc = "Used for seeing walls, floors, and stuff through anything." diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index a82989c1403..91620b6e399 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -386,6 +386,17 @@ build_path = /obj/item/organ/internal/cyberimp/arm/toolset_abductor category = list("Medical") +/datum/design/cyberimp_jani_hud + name = "Janitor HUD Implant" + desc = "These cybernetic eye implants will display a filth HUD over everything you see. Wiggle eyes to control." + id = "ci-janihud" + req_tech = list("materials" = 5, "engineering" = 4, "programming" = 4, "biotech" = 4) + build_type = PROTOLATHE | MECHFAB + construction_time = 5 SECONDS + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500) + build_path = /obj/item/organ/internal/cyberimp/eyes/hud/jani + category = list("Medical") + /datum/design/cyberimp_diagnostic_hud name = "Diagnostic HUD Implant" desc = "These cybernetic eye implants will display a diagnostic HUD over everything you see. Wiggle eyes to control." diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm index f75db89f9ff..008f7f0439e 100644 --- a/code/modules/response_team/ert_outfits.dm +++ b/code/modules/response_team/ert_outfits.dm @@ -498,7 +498,7 @@ backpack_contents = list( /obj/item/grenade/chem_grenade/antiweed = 2, - /obj/item/push_broom, + /obj/item/push_broom = 1, /obj/item/storage/box/lights/mixed = 1, /obj/item/melee/flyswatter = 1 ) @@ -507,7 +507,7 @@ name = "RT Janitor (Amber)" suit = /obj/item/clothing/suit/armor/vest/ert/janitor head = /obj/item/clothing/head/helmet/ert/janitor - glasses = /obj/item/clothing/glasses/sunglasses + glasses = /obj/item/clothing/glasses/hud/janitor/sunglasses r_pocket = /obj/item/flashlight/seclite suit_store = /obj/item/gun/energy/disabler @@ -518,12 +518,13 @@ /datum/outfit/job/centcom/response_team/janitorial/red name = "RT Janitor (Red)" suit = /obj/item/clothing/suit/space/hardsuit/ert/janitor - glasses = /obj/item/clothing/glasses/hud/security/sunglasses + glasses = /obj/item/clothing/glasses/hud/janitor/sunglasses shoes = /obj/item/clothing/shoes/galoshes/dry/lightweight r_pocket = /obj/item/scythe/tele suit_store = /obj/item/gun/energy/gun cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/eyes/hud/security, /obj/item/organ/internal/cyberimp/arm/janitorial/advanced, /obj/item/organ/internal/cyberimp/chest/nutriment/hardened ) @@ -535,7 +536,7 @@ /datum/outfit/job/centcom/response_team/janitorial/gamma name = "RT Janitor (Gamma)" - glasses = /obj/item/clothing/glasses/night + glasses = /obj/item/clothing/glasses/hud/janitor/night back = /obj/item/mod/control/pre_equipped/responsory/janitor r_pocket = /obj/item/scythe/tele shoes = /obj/item/clothing/shoes/magboots/elite diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 3637f1f4f83..5d7fb4d2bb5 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -61,3 +61,11 @@ aug_message = "Job indicator icons pop up in your vision. That is not a certified surgeon..." HUD_type = DATA_HUD_SECURITY_ADVANCED examine_extensions = list(EXAMINE_HUD_SECURITY_READ) + +/obj/item/organ/internal/cyberimp/eyes/hud/jani + name = "Janitor HUD implant" + desc = "These cybernetic eye implants will display a filth HUD over everything you see." + implant_color = "#AF00AF" + origin_tech = "materials=4;engineering=4;biotech=4" + aug_message = "You scan for filth spots around you..." + HUD_type = DATA_HUD_JANITOR diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi index 585217a02ce..92c2d1ee3fa 100644 Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ diff --git a/icons/mob/clothing/species/drask/eyes.dmi b/icons/mob/clothing/species/drask/eyes.dmi index bbe5ca72ad9..38a7b628099 100644 Binary files a/icons/mob/clothing/species/drask/eyes.dmi and b/icons/mob/clothing/species/drask/eyes.dmi differ diff --git a/icons/mob/clothing/species/grey/eyes.dmi b/icons/mob/clothing/species/grey/eyes.dmi index a17e4e2242f..7760cca8f60 100644 Binary files a/icons/mob/clothing/species/grey/eyes.dmi and b/icons/mob/clothing/species/grey/eyes.dmi differ diff --git a/icons/mob/clothing/species/kidan/eyes.dmi b/icons/mob/clothing/species/kidan/eyes.dmi index 67901173d8d..cc03d39fcdd 100644 Binary files a/icons/mob/clothing/species/kidan/eyes.dmi and b/icons/mob/clothing/species/kidan/eyes.dmi differ diff --git a/icons/mob/clothing/species/vox/eyes.dmi b/icons/mob/clothing/species/vox/eyes.dmi index 103dca449d1..ac19c03b436 100644 Binary files a/icons/mob/clothing/species/vox/eyes.dmi and b/icons/mob/clothing/species/vox/eyes.dmi differ diff --git a/icons/mob/hud/hud_misc.dmi b/icons/mob/hud/hud_misc.dmi index 7e81764ab0a..7e2d9c77043 100644 Binary files a/icons/mob/hud/hud_misc.dmi and b/icons/mob/hud/hud_misc.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 04310be5f5c..3eb8dfc83a7 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ