diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
index d3384fce72b..7d052c02dbb 100644
--- a/code/__DEFINES/atmospherics.dm
+++ b/code/__DEFINES/atmospherics.dm
@@ -311,4 +311,3 @@ GLOBAL_LIST_INIT(pipe_paint_colors, list(
#define MIASMA_CORPSE_MOLES 0.02
#define MIASMA_GIBS_MOLES 0.005
-#define MIASMA_HYGIENE_MOLES 0.002
diff --git a/code/__DEFINES/economy.dm b/code/__DEFINES/economy.dm
index 6924cb17e33..cbeee67fc19 100644
--- a/code/__DEFINES/economy.dm
+++ b/code/__DEFINES/economy.dm
@@ -7,8 +7,6 @@
#define PAYCHECK_HARD 40
#define PAYCHECK_COMMAND 100
-#define PAYCHECK_WELFARE 5 //NEETbucks
-
#define MAX_GRANT_CIV 2500
#define MAX_GRANT_ENG 3000
#define MAX_GRANT_SCI 5000
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 16fc47f711b..c9312dde5a2 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -11,36 +11,35 @@
//Human Overlays Indexes/////////
-#define MUTATIONS_LAYER 29 //mutations. Tk headglows, cold resistance glow, etc
-#define BODY_BEHIND_LAYER 28 //certain mutantrace features (tail when looking south) that must appear behind the body parts
-#define BODYPARTS_LAYER 27 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
-#define BODY_ADJ_LAYER 26 //certain mutantrace features (snout, body markings) that must appear above the body parts
-#define BODY_LAYER 25 //underwear, undershirts, socks, eyes, lips(makeup)
-#define FRONT_MUTATIONS_LAYER 24 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
-#define DAMAGE_LAYER 23 //damage indicators (cuts and burns)
-#define UNIFORM_LAYER 22
-#define ID_LAYER 21 //lmao at the idiot who put both ids and hands on the same layer
-#define HANDS_PART_LAYER 20
-#define GLOVES_LAYER 19
-#define SHOES_LAYER 18
-#define EARS_LAYER 17
-#define SUIT_LAYER 16
-#define GLASSES_LAYER 15
-#define BELT_LAYER 14 //Possible make this an overlay of somethign required to wear a belt?
-#define SUIT_STORE_LAYER 13
-#define NECK_LAYER 12
-#define BACK_LAYER 11
-#define HAIR_LAYER 10 //TODO: make part of head layer?
-#define FACEMASK_LAYER 9
-#define HEAD_LAYER 8
-#define HANDCUFF_LAYER 7
-#define LEGCUFF_LAYER 6
-#define HANDS_LAYER 5
-#define BODY_FRONT_LAYER 4
-#define SMELL_LAYER 3
+#define MUTATIONS_LAYER 28 //mutations. Tk headglows, cold resistance glow, etc
+#define BODY_BEHIND_LAYER 27 //certain mutantrace features (tail when looking south) that must appear behind the body parts
+#define BODYPARTS_LAYER 26 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
+#define BODY_ADJ_LAYER 25 //certain mutantrace features (snout, body markings) that must appear above the body parts
+#define BODY_LAYER 24 //underwear, undershirts, socks, eyes, lips(makeup)
+#define FRONT_MUTATIONS_LAYER 23 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
+#define DAMAGE_LAYER 22 //damage indicators (cuts and burns)
+#define UNIFORM_LAYER 21
+#define ID_LAYER 20 //lmao at the idiot who put both ids and hands on the same layer
+#define HANDS_PART_LAYER 19
+#define GLOVES_LAYER 18
+#define SHOES_LAYER 17
+#define EARS_LAYER 16
+#define SUIT_LAYER 15
+#define GLASSES_LAYER 14
+#define BELT_LAYER 13 //Possible make this an overlay of somethign required to wear a belt?
+#define SUIT_STORE_LAYER 12
+#define NECK_LAYER 11
+#define BACK_LAYER 10
+#define HAIR_LAYER 9 //TODO: make part of head layer?
+#define FACEMASK_LAYER 8
+#define HEAD_LAYER 7
+#define HANDCUFF_LAYER 6
+#define LEGCUFF_LAYER 5
+#define HANDS_LAYER 4
+#define BODY_FRONT_LAYER 3
#define HALO_LAYER 2 //blood cult ascended halo, because there's currently no better solution for adding/removing
#define FIRE_LAYER 1 //If you're on fire
-#define TOTAL_LAYERS 29 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
+#define TOTAL_LAYERS 28 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
//Because I *KNOW* somebody will think layer+1 means "above"
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index 9ba5f5b691c..e7f082f5062 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -146,11 +146,6 @@
#define SANITY_CRAZY 25
#define SANITY_INSANE 0
-//Hygiene levels for humans
-#define HYGIENE_LEVEL_CLEAN 250
-#define HYGIENE_LEVEL_NORMAL 200
-#define HYGIENE_LEVEL_DIRTY 75
-
//Nutrition levels for humans
#define NUTRITION_LEVEL_FAT 600
#define NUTRITION_LEVEL_FULL 550
@@ -268,7 +263,6 @@
#define HUNGER_FACTOR 0.1 //factor at which mob nutrition decreases
#define ETHEREAL_CHARGE_FACTOR 0.12 //factor at which ethereal's charge decreases
-#define HYGIENE_FACTOR 0.1 //factor at which mob hygiene decreases
#define REAGENTS_METABOLISM 0.4 //How many units of reagent are consumed per tick, by default.
#define REAGENTS_EFFECT_MULTIPLIER (REAGENTS_METABOLISM / 0.4) // By defining the effect multiplier this way, it'll exactly adjust all effects according to how they originally were with the 0.4 metabolism
diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm
index b301ad18b39..6d7cbac8c29 100644
--- a/code/__DEFINES/obj_flags.dm
+++ b/code/__DEFINES/obj_flags.dm
@@ -38,5 +38,4 @@
#define THICKMATERIAL (1<<5) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
#define VOICEBOX_TOGGLABLE (1<<6) // The voicebox in this clothing can be toggled.
#define VOICEBOX_DISABLED (1<<7) // The voicebox is currently turned off.
-#define SHOWEROKAY (1<<8) //prevents you from being stupid if you shower in them
#define SCAN_REAGENTS (1<<9) // Allows helmets and glasses to scan reagents.
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 2ef297487b2..c0105d5e016 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -159,8 +159,6 @@
#define TRAIT_SKITTISH "skittish"
#define TRAIT_POOR_AIM "poor_aim"
#define TRAIT_PROSOPAGNOSIA "prosopagnosia"
-#define TRAIT_NEET "NEET"
-#define TRAIT_NEAT "neat"
#define TRAIT_DRUNK_HEALING "drunk_healing"
#define TRAIT_TAGGER "tagger"
#define TRAIT_PHOTOGRAPHER "photographer"
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index 6d2b637b680..b421d2aac0a 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -143,7 +143,6 @@ GLOBAL_LIST_INIT(bitfields, list(
"THICKMATERIAL" = THICKMATERIAL,
"VOICEBOX_TOGGLABLE" = VOICEBOX_TOGGLABLE,
"VOICEBOX_DISABLED" = VOICEBOX_DISABLED,
- "SHOWEROKAY" = SHOWEROKAY,
"SCAN_REAGENTS" = SCAN_REAGENTS,
),
"tesla_flags" = list(
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 47e966f3ff4..590fe26ca9a 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -110,9 +110,6 @@
add_splatter_floor(location)
if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood
user.add_mob_blood(src)
- if(ishuman(user))
- var/mob/living/carbon/human/dirtyboy = user
- dirtyboy.adjust_hygiene(-10)
return TRUE //successful attack
/mob/living/simple_animal/attacked_by(obj/item/I, mob/living/user)
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index ce3ab89472e..d512ce2ebd0 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -17,7 +17,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
if(!quirks.len)
SetupQuirks()
- quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic","Hypersensitive"),list("Ageusia","Vegetarian","Deviant Tastes"),list("Ananas Affinity","Ananas Aversion"),list("Alcohol Tolerance","Light Drinker"),list(list("Neat","NEET")))
+ quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic","Hypersensitive"),list("Ageusia","Vegetarian","Deviant Tastes"),list("Ananas Affinity","Ananas Aversion"),list("Alcohol Tolerance","Light Drinker"))
return ..()
/datum/controller/subsystem/processing/quirks/proc/SetupQuirks()
diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm
index 708c200533f..be173419407 100644
--- a/code/datums/components/mood.dm
+++ b/code/datums/components/mood.dm
@@ -193,7 +193,6 @@
setSanity(sanity+0.6, maximum=INFINITY)
HandleNutrition(owner)
- HandleHygiene(owner)
/datum/component/mood/proc/setSanity(amount, minimum=SANITY_INSANE, maximum=SANITY_GREAT)
var/mob/living/owner = parent
@@ -351,27 +350,6 @@
if(ETHEREAL_CHARGE_ALMOSTFULL to ETHEREAL_CHARGE_FULL)
add_event(null, "charge", /datum/mood_event/charged)
-/datum/component/mood/proc/HandleHygiene(mob/living/carbon/human/H)
- if(H.hygiene <= HYGIENE_LEVEL_DIRTY)
- HygieneMiasma(H)
-
-/datum/component/mood/proc/HygieneMiasma(mob/living/carbon/human/H)
- // Properly stored humans shouldn't create miasma
- if(istype(H.loc, /obj/structure/closet/crate/coffin)|| istype(H.loc, /obj/structure/closet/body_bag) || istype(H.loc, /obj/structure/bodycontainer))
- return
-
- var/turf/T = get_turf(H)
-
- if(!istype(T) || T.return_air().return_pressure() > (WARNING_HIGH_PRESSURE - 10))
- return
-
- var/datum/gas_mixture/stank = new
- ADD_GAS(/datum/gas/miasma, stank.gases)
- stank.gases[/datum/gas/miasma][MOLES] = MIASMA_HYGIENE_MOLES
- stank.temperature = BODYTEMP_NORMAL
- T.assume_air(stank)
- T.air_update_turf()
-
/datum/component/mood/proc/check_area_mood(datum/source, var/area/A)
if(A.mood_bonus)
var/datum/mood_event/M = add_event(null, "area", /datum/mood_event/area)
diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm
index 93ad08732e7..3310baecae4 100644
--- a/code/datums/mood_events/needs_events.dm
+++ b/code/datums/mood_events/needs_events.dm
@@ -53,19 +53,6 @@
description = "The stench of rotting carcasses is unbearable!\n"
mood_change = -12
-//Hygiene Events
-/datum/mood_event/neat
- description = "I'm so clean, I love it.\n"
- mood_change = 3
-
-/datum/mood_event/dirty
- description = "I smell horrid.\n"
- mood_change = -5
-
-/datum/mood_event/happy_neet
- description = "I smell horrid.\n"
- mood_change = 2
-
//Generic needs events
/datum/mood_event/favorite_food
description = "I really enjoyed eating that.\n"
diff --git a/code/datums/mutations/actions.dm b/code/datums/mutations/actions.dm
index f2fecbfa2f9..169298da0a3 100644
--- a/code/datums/mutations/actions.dm
+++ b/code/datums/mutations/actions.dm
@@ -22,24 +22,10 @@
synchronizer_coeff = 1
var/reek = 200
-/datum/mutation/human/olfaction/on_life()
- var/hygiene_now = owner.hygiene
-
- if(hygiene_now < 100 && prob(5))
- owner.adjust_disgust(GET_MUTATION_SYNCHRONIZER(src) * (rand(3,5)))
- if(hygiene_now < HYGIENE_LEVEL_DIRTY && prob(50))
- to_chat(owner,"You get a whiff of your stench and feel sick!")
- owner.adjust_disgust(GET_MUTATION_SYNCHRONIZER(src) * rand(5,10))
-
- if(hygiene_now < HYGIENE_LEVEL_NORMAL && reek >= HYGIENE_LEVEL_NORMAL)
- to_chat(owner,"Your inhumanly strong nose picks up a faint odor. Maybe you should shower soon.")
- if(hygiene_now < 150 && reek >= 150)
- to_chat(owner,"Your odor is getting bad, what with you having a super-nose and all.")
- if(hygiene_now < 100 && reek >= 100)
- to_chat(owner,"Your odor begins to make you gag. You silently curse your godly nose. You should really get clean!")
- if(hygiene_now < HYGIENE_LEVEL_DIRTY && reek >= HYGIENE_LEVEL_DIRTY)
- to_chat(owner,"Your super-nose is 100% fed up with your stench. You absolutely must get clean.")
- reek = hygiene_now
+/datum/mutation/human/olfaction/modify()
+ if(power)
+ var/obj/effect/proc_holder/spell/targeted/olfaction/S = power
+ S.sensitivity = GET_MUTATION_SYNCHRONIZER(src)
/obj/effect/proc_holder/spell/targeted/olfaction
name = "Remember the Scent"
@@ -51,8 +37,18 @@
action_icon_state = "nose"
var/mob/living/carbon/tracking_target
var/list/mob/living/carbon/possible = list()
+ var/sensitivity = 1
/obj/effect/proc_holder/spell/targeted/olfaction/cast(list/targets, mob/living/user = usr)
+ //can we sniff? is there miasma in the air?
+ var/datum/gas_mixture/air = user.loc.return_air()
+ var/list/cached_gases = air.gases
+
+ if(cached_gases[/datum/gas/miasma])
+ user.adjust_disgust(sensitivity * 45)
+ to_chat(user, "With your overly sensitive nose, you get a whiff of stench and feel sick! Try moving to a cleaner area!")
+ return
+
var/atom/sniffed = user.get_active_held_item()
if(sniffed)
var/old_target = tracking_target
diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm
index cc98e206a87..26626a08874 100644
--- a/code/datums/traits/good.dm
+++ b/code/datums/traits/good.dm
@@ -187,28 +187,3 @@
mob_trait = TRAIT_VORACIOUS
gain_text = "You feel HONGRY."
lose_text = "You no longer feel HONGRY."
- medical_record_text = "Patient demonstrates a disturbing capacity for eating."
-
-/datum/quirk/neet
- name = "NEET"
- desc = "For some reason you qualified for social welfare and you don't really care about your own personal hygiene."
- value = 1
- mob_trait = TRAIT_NEET
- gain_text = "You feel useless to society."
- lose_text = "You no longer feel useless to society."
- mood_quirk = TRUE
- medical_record_text = "Patient continues to qualify for welfare and has made no efforts to improve hygiene."
-
-/datum/quirk/neet/on_spawn()
- var/mob/living/carbon/human/H = quirk_holder
- var/datum/bank_account/D = H.get_bank_account()
- if(!D) //if their current mob doesn't have a bank account, likely due to them being a special role (ie nuke op)
- return
- D.welfare = TRUE
-
-/datum/quirk/neet/on_process()
- var/mob/living/carbon/human/H = quirk_holder
- if (H.hygiene <= HYGIENE_LEVEL_DIRTY)
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "NEET", /datum/mood_event/happy_neet)
- else
- SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "NEET")
diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm
index 66ac13905bb..fc5d444fd6c 100644
--- a/code/datums/traits/neutral.dm
+++ b/code/datums/traits/neutral.dm
@@ -93,25 +93,6 @@
species.liked_food = initial(species.liked_food)
species.disliked_food = initial(species.disliked_food)
-/datum/quirk/neat
- name = "Neat"
- desc = "You really don't like being unhygienic, and will get sad if you are."
- mob_trait = TRAIT_NEAT
- gain_text = "You feel like you have to stay clean."
- lose_text = "You no longer feel the need to always be clean."
- mood_quirk = TRUE
- medical_record_text = "While waiting for the exam to begin, patient cleaned the examination room."
-
-/datum/quirk/neat/on_process()
- var/mob/living/carbon/human/H = quirk_holder
- switch (H.hygiene)
- if(0 to HYGIENE_LEVEL_DIRTY)
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "neat", /datum/mood_event/dirty)
- if(HYGIENE_LEVEL_DIRTY to HYGIENE_LEVEL_NORMAL)
- SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "neat")
- if(HYGIENE_LEVEL_NORMAL to HYGIENE_LEVEL_CLEAN)
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "neat", /datum/mood_event/neat)
-
/datum/quirk/monochromatic
name = "Monochromacy"
desc = "You suffer from full colorblindness, and perceive nearly the entire world in blacks and whites."
diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scan_gate.dm
index f479fd24bc3..698e591c9da 100644
--- a/code/game/machinery/scan_gate.dm
+++ b/code/game/machinery/scan_gate.dm
@@ -5,7 +5,6 @@
#define SCANGATE_GUNS "Guns"
#define SCANGATE_WANTED "Wanted"
#define SCANGATE_SPECIES "Species"
-#define SCANGATE_HYGIENE "Hygiene"
#define SCANGATE_NUTRITION "Nutrition"
/obj/machinery/scanner_gate
@@ -25,7 +24,6 @@
var/nanite_cloud = 0
var/datum/species/detect_species = /datum/species/human
var/reverse = FALSE //If true, signals if the scan returns false
- var/detect_hygiene = HYGIENE_LEVEL_DIRTY
var/detect_nutrition = NUTRITION_LEVEL_FAT
/obj/machinery/scanner_gate/Initialize()
@@ -118,13 +116,6 @@
if(istype(I, /obj/item/gun))
beep = TRUE
break
- if(SCANGATE_HYGIENE)
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- if(H.hygiene >= detect_hygiene && detect_hygiene == HYGIENE_LEVEL_CLEAN)
- beep = TRUE
- if(H.hygiene <= detect_hygiene && detect_hygiene == HYGIENE_LEVEL_DIRTY)
- beep = TRUE
if(SCANGATE_NUTRITION)
if(ishuman(M))
var/mob/living/carbon/human/H = M
@@ -166,7 +157,6 @@
data["nanite_cloud"] = nanite_cloud
data["disease_threshold"] = disease_threshold
data["target_species"] = initial(detect_species.name)
- data["target_hygiene"] = detect_hygiene
data["target_nutrition"] = detect_nutrition
return data
@@ -182,7 +172,6 @@
SCANGATE_GUNS,
SCANGATE_WANTED,
SCANGATE_SPECIES,
- SCANGATE_HYGIENE,
SCANGATE_NUTRITION)
if(new_mode)
scangate_mode = new_mode
@@ -238,16 +227,6 @@
if("Zombie")
detect_species = /datum/species/zombie
. = TRUE
- if("set_target_hygiene")
- var/new_hygiene = input("Set target hygiene level","Scan Mode") as null|anything in list("Clean",
- "Filthy")
- if(new_hygiene)
- switch(new_hygiene)
- if("Clean")
- detect_hygiene = HYGIENE_LEVEL_CLEAN
- if("Filthy")
- detect_hygiene = HYGIENE_LEVEL_DIRTY
- . = TRUE
if("set_target_nutrition")
var/new_nutrition = input("Set target nutrition level","Scan Mode") as null|anything in list("Starving",
"Obese")
@@ -266,5 +245,4 @@
#undef SCANGATE_GUNS
#undef SCANGATE_WANTED
#undef SCANGATE_SPECIES
-#undef SCANGATE_HYGIENE
#undef SCANGATE_NUTRITION
diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm
index d2409286b7f..0317a7efaa8 100644
--- a/code/game/objects/items/clown_items.dm
+++ b/code/game/objects/items/clown_items.dm
@@ -102,13 +102,8 @@
else if(ishuman(target) && user.zone_selected == BODY_ZONE_PRECISE_MOUTH)
var/mob/living/carbon/human/H = user
- if(user.zone_selected == "mouth")
- user.visible_message("\the [user] washes \the [target]'s mouth out with [src.name]!", "You wash \the [target]'s mouth out with [src.name]!") //washes mouth out with soap sounds better than 'the soap' here
- H.lip_style = null //removes lipstick
- H.adjust_hygiene(5) //it kinda works i guess
- else
- user.visible_message("\the [user] washes \the [target] with [src.name]!", "You wash \the [target] with [src.name]!")
- H.adjust_hygiene(20)
+ user.visible_message("\the [user] washes \the [target]'s mouth out with [src.name]!", "You wash \the [target]'s mouth out with [src.name]!") //washes mouth out with soap sounds better than 'the soap' here if(user.zone_selected == "mouth")
+ H.lip_style = null //removes lipstick
H.update_body()
decreaseUses(user)
return
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
index e9540a92c1c..cc47312f5a0 100644
--- a/code/game/objects/structures/shower.dm
+++ b/code/game/objects/structures/shower.dm
@@ -128,6 +128,7 @@
SEND_SIGNAL(L, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
L.wash_cream()
L.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
+ SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "shower", /datum/mood_event/nice_shower)
if(iscarbon(L))
var/mob/living/carbon/M = L
. = TRUE
@@ -164,12 +165,6 @@
if(ishuman(M))
var/mob/living/carbon/human/H = M
- if(check_clothes(L))
- if(H.hygiene <= 75)
- to_chat(H, "You have to remove your clothes to get clean!")
- else
- H.set_hygiene(HYGIENE_LEVEL_CLEAN)
- SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "shower", /datum/mood_event/nice_shower)
if(H.wear_suit && wash_obj(H.wear_suit))
H.update_inv_wear_suit()
@@ -187,10 +182,8 @@
H.update_inv_belt()
else
SEND_SIGNAL(M, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
- SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "shower", /datum/mood_event/nice_shower)
else
SEND_SIGNAL(L, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
- SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "shower", /datum/mood_event/nice_shower)
/obj/machinery/shower/proc/contamination_cleanse(atom/thing)
var/datum/component/radioactive/healthy_green_glow = thing.GetComponent(/datum/component/radioactive)
@@ -227,23 +220,6 @@
L.adjustFireLoss(5)
to_chat(L, "[src] is searing!")
-/obj/machinery/shower/proc/check_clothes(mob/living/carbon/human/H)
- if(H.wear_suit && (H.wear_suit.clothing_flags & SHOWEROKAY))
- // Do not check underclothing if the over-suit is suitable.
- // This stops people feeling dumb if they're showering
- // with a radiation suit on.
- return FALSE
-
- . = FALSE
- if(H.wear_suit && !(H.wear_suit.clothing_flags & SHOWEROKAY))
- . = TRUE
- else if(H.w_uniform && !(H.w_uniform.clothing_flags & SHOWEROKAY))
- . = TRUE
- else if(H.wear_mask && !(H.wear_mask.clothing_flags & SHOWEROKAY))
- . = TRUE
- else if(H.head && !(H.head.clothing_flags & SHOWEROKAY))
- . = TRUE
-
/obj/effect/mist
name = "mist"
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 3c97808deca..c10f42cc15c 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -261,13 +261,9 @@
H.lip_color = initial(H.lip_color)
H.wash_cream()
H.regenerate_icons()
- H.adjust_hygiene(10)
user.drowsyness = max(user.drowsyness - rand(2,3), 0) //Washing your face wakes you up if you're falling asleep
else
SEND_SIGNAL(user, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
- if(ishuman(user))
- var/mob/living/carbon/human/dirtyboy = user
- dirtyboy.adjust_hygiene(10)
/obj/structure/sink/attackby(obj/item/O, mob/living/user, params)
if(busy)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 5f363d9dc2c..dac42005a15 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 22
+#define SAVEFILE_VERSION_MAX 23
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -104,6 +104,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
new_value = JP_LOW
if(new_value)
job_preferences[initial(J.title)] = new_value
+ if(current_version < 23)
+ all_quirks -= "Physically Obstructive"
+ all_quirks -= "Neat"
+ all_quirks -= "NEET"
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
if(!ckey)
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index e5b46a26e79..feba75972d9 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -51,7 +51,7 @@
/obj/item/clothing/mask/gas/clown_hat
name = "clown wig and mask"
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
- clothing_flags = MASKINTERNALS | SHOWEROKAY
+ clothing_flags = MASKINTERNALS
icon_state = "clown"
item_state = "clown_hat"
flags_cover = MASKCOVERSEYES
@@ -84,7 +84,7 @@
/obj/item/clothing/mask/gas/sexyclown
name = "sexy-clown wig and mask"
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
- clothing_flags = MASKINTERNALS | SHOWEROKAY
+ clothing_flags = MASKINTERNALS
icon_state = "sexyclown"
item_state = "sexyclown"
flags_cover = MASKCOVERSEYES
@@ -93,7 +93,7 @@
/obj/item/clothing/mask/gas/mime
name = "mime mask"
desc = "The traditional mime's mask. It has an eerie facial posture."
- clothing_flags = MASKINTERNALS | SHOWEROKAY
+ clothing_flags = MASKINTERNALS
icon_state = "mime"
item_state = "mime"
flags_cover = MASKCOVERSEYES
@@ -134,7 +134,7 @@
/obj/item/clothing/mask/gas/sexymime
name = "sexy mime mask"
desc = "A traditional female mime's mask."
- clothing_flags = MASKINTERNALS | SHOWEROKAY
+ clothing_flags = MASKINTERNALS
icon_state = "sexymime"
item_state = "sexymime"
flags_cover = MASKCOVERSEYES
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index 6565862deae..d66c135bd3a 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -43,7 +43,6 @@
/obj/item/clothing/mask/fakemoustache/italian
name = "italian moustache"
desc = "Made from authentic Italian moustache hairs. Gives the wearer an irresistable urge to gesticulate wildly."
- clothing_flags = SHOWEROKAY
modifies_speech = TRUE
/obj/item/clothing/mask/fakemoustache/italian/handle_speech(datum/source, list/speech_args)
diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm
index c1dc8ebbec7..6224e2a3d91 100644
--- a/code/modules/clothing/spacesuits/_spacesuits.dm
+++ b/code/modules/clothing/spacesuits/_spacesuits.dm
@@ -4,7 +4,7 @@
name = "space helmet"
icon_state = "spaceold"
desc = "A special helmet with solar UV shielding to protect your eyes from harmful rays."
- clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SHOWEROKAY
+ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL
item_state = "spaceold"
permeability_coefficient = 0.01
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 50, "fire" = 80, "acid" = 70)
@@ -30,7 +30,7 @@
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.02
- clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SHOWEROKAY
+ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/flashlight, /obj/item/tank/internals)
slowdown = 1
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 166a660a8ca..cd50552f391 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -435,7 +435,7 @@
item_color = "medical"
flash_protect = 0
armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75)
- clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SHOWEROKAY | SCAN_REAGENTS
+ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SCAN_REAGENTS
/obj/item/clothing/suit/space/hardsuit/medical
icon_state = "hardsuit-medical"
@@ -457,7 +457,7 @@
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 100, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 80)
var/obj/machinery/doppler_array/integrated/bomb_radar
- clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SHOWEROKAY | SCAN_REAGENTS
+ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SCAN_REAGENTS
actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_research_scanner)
/obj/item/clothing/head/helmet/space/hardsuit/rd/Initialize()
diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm
index 463cf4900ff..350f9b14d5a 100644
--- a/code/modules/clothing/suits/bio.dm
+++ b/code/modules/clothing/suits/bio.dm
@@ -4,7 +4,7 @@
icon_state = "bio"
desc = "A hood that protects the head and face from biological contaminants."
permeability_coefficient = 0.01
- clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | SHOWEROKAY
+ clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 80, "fire" = 30, "acid" = 100)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE
resistance_flags = ACID_PROOF
@@ -18,7 +18,7 @@
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
- clothing_flags = THICKMATERIAL | SHOWEROKAY
+ clothing_flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 1
allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/pen, /obj/item/flashlight/pen, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray)
diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm
index f6679022684..b53ec05dda1 100644
--- a/code/modules/clothing/suits/utility.dm
+++ b/code/modules/clothing/suits/utility.dm
@@ -120,7 +120,7 @@
name = "radiation hood"
icon_state = "rad"
desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'"
- clothing_flags = THICKMATERIAL|SHOWEROKAY
+ clothing_flags = THICKMATERIAL
flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 60, "rad" = 100, "fire" = 30, "acid" = 30)
strip_delay = 60
@@ -137,7 +137,7 @@
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.9
permeability_coefficient = 0.5
- clothing_flags = THICKMATERIAL|SHOWEROKAY
+ clothing_flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/geiger_counter)
slowdown = 1.5
diff --git a/code/modules/economy/account.dm b/code/modules/economy/account.dm
index 6b037553369..627bfbd7f3e 100644
--- a/code/modules/economy/account.dm
+++ b/code/modules/economy/account.dm
@@ -7,7 +7,6 @@
var/list/bank_cards = list()
var/add_to_accounts = TRUE
var/account_id
- var/welfare = FALSE
var/being_dumped = FALSE //pink levels are rising
var/withdrawDelay = 0
@@ -50,8 +49,6 @@
/datum/bank_account/proc/payday(amt_of_paychecks, free = FALSE)
var/money_to_transfer = account_job.paycheck * amt_of_paychecks
- if(welfare)
- money_to_transfer += PAYCHECK_WELFARE
if(free)
adjust_money(money_to_transfer)
else
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 266bbae9dfa..d3af7ea214e 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -82,9 +82,6 @@
add_splatter_floor(location)
if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood
user.add_mob_blood(src)
- if(ishuman(user))
- var/mob/living/carbon/human/dirtyboy = user
- dirtyboy.adjust_hygiene(-10)
if(affecting.body_zone == BODY_ZONE_HEAD)
if(wear_mask)
wear_mask.add_mob_blood(src)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index af879de213d..98b616f722f 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -775,7 +775,6 @@
remove_all_embedded_objects()
set_heartattack(FALSE)
drunkenness = 0
- set_hygiene(HYGIENE_LEVEL_NORMAL)
for(var/datum/mutation/human/HM in dna.mutations)
if(HM.quality != POSITIVE)
dna.remove_mutation(HM.name)
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 5848ed09dcb..2351c629510 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -39,8 +39,6 @@
var/obj/item/l_store = null
var/obj/item/s_store = null
- var/hygiene = HYGIENE_LEVEL_NORMAL
-
var/special_voice = "" // For changing our voice. Used by a symptom.
var/bleed_rate = 0 //how much are we bleeding
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 99100292210..12e2e2b1cfe 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -42,9 +42,6 @@
//Stuff jammed in your limbs hurts
handle_embedded_objects()
- if(stat != DEAD)
- handle_hygiene()
-
dna.species.spec_life(src) // for mutantraces
//Update our name based on whether our face is obscured/disfigured
@@ -324,37 +321,6 @@
// Tissues die without blood circulation
adjustBruteLoss(2)
-/mob/living/carbon/human/proc/handle_hygiene()
- if(HAS_TRAIT(src, TRAIT_ALWAYS_CLEAN))
- set_hygiene(HYGIENE_LEVEL_CLEAN)
- return
-
- var/hygiene_loss = -HYGIENE_FACTOR * 0.25 //Small loss per life
-
- //If you're covered in blood, you'll start smelling like shit faster.
- var/obj/item/head = get_item_by_slot(SLOT_HEAD)
- if(head && HAS_BLOOD_DNA(head))
- hygiene_loss -= 1 * HYGIENE_FACTOR
-
- var/obj/item/mask = get_item_by_slot(SLOT_HEAD)
- if(mask && HAS_BLOOD_DNA(mask))
- hygiene_loss -= 1 * HYGIENE_FACTOR
-
- var/obj/item/uniform = get_item_by_slot(SLOT_W_UNIFORM)
- if(uniform && HAS_BLOOD_DNA(uniform))
- hygiene_loss -= 4 * HYGIENE_FACTOR
-
- var/obj/item/suit = get_item_by_slot(SLOT_WEAR_SUIT)
- if(suit && HAS_BLOOD_DNA(suit))
- hygiene_loss -= 3 * HYGIENE_FACTOR
-
- var/obj/item/feet = get_item_by_slot(SLOT_SHOES)
- if(feet && HAS_BLOOD_DNA(feet))
- hygiene_loss -= 0.5 * HYGIENE_FACTOR
-
- adjust_hygiene(hygiene_loss)
-
-
#undef THERMAL_PROTECTION_HEAD
#undef THERMAL_PROTECTION_CHEST
#undef THERMAL_PROTECTION_GROIN
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index efa8e49f30b..f9807723cbb 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1432,9 +1432,6 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.add_splatter_floor(location)
if(get_dist(user, H) <= 1) //people with TK won't get smeared with blood
user.add_mob_blood(H)
- if(ishuman(user))
- var/mob/living/carbon/human/dirtyboy = user
- dirtyboy.adjust_hygiene(-10)
switch(hit_area)
if(BODY_ZONE_HEAD)
diff --git a/code/modules/mob/living/carbon/human/status_procs.dm b/code/modules/mob/living/carbon/human/status_procs.dm
index aa0b39b982d..de2aec64c49 100644
--- a/code/modules/mob/living/carbon/human/status_procs.dm
+++ b/code/modules/mob/living/carbon/human/status_procs.dm
@@ -50,12 +50,4 @@
if(druggy)
grant_language(/datum/language/beachbum)
else
- remove_language(/datum/language/beachbum)
-
-/mob/living/carbon/human/proc/adjust_hygiene(amount)
- hygiene = CLAMP(hygiene+amount, 0, HYGIENE_LEVEL_CLEAN)
- update_smell()
-
-/mob/living/carbon/human/proc/set_hygiene(amount)
- hygiene = CLAMP(amount, 0, HYGIENE_LEVEL_CLEAN)
- update_smell()
+ remove_language(/datum/language/beachbum)
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index a8429951a76..bbe81326a84 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -479,14 +479,6 @@ There are several things that need to be remembered:
client.screen += I
update_observer_view(I)
-//Update whether we smell
-/mob/living/carbon/human/proc/update_smell(var/smelly_icon = "generic_mob_smell")
- remove_overlay(SMELL_LAYER)
- if(hygiene <= HYGIENE_LEVEL_DIRTY)
- var/mutable_appearance/new_smell_overlay = mutable_appearance('icons/mob/smelly.dmi', smelly_icon, -SMELL_LAYER)
- overlays_standing[SMELL_LAYER] = new_smell_overlay
- apply_overlay(SMELL_LAYER)
-
/*
Does everything in relation to building the /mutable_appearance used in the mob's overlays list
covers:
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index 17fc083544c..48077b34e67 100755
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -415,8 +415,6 @@
if(prob(20)) //stays in the system much longer than sprinkles/banana juice, so heals slower to partially compensate
H.heal_bodypart_damage(1,1, 0)
. = 1
- else //chefs' robust space-Italian metabolism lets them eat garlic without producing allyl methyl sulfide
- H.adjust_hygiene(-0.15 * volume)
..()
/datum/reagent/consumable/sprinkles
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 14e19f238f9..1f2263764c1 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -956,7 +956,6 @@
var/mob/living/carbon/C = M
if(ishuman(M))
var/mob/living/carbon/human/H = M
- H.adjust_hygiene((30 * reac_volume) / (3 + reac_volume))
if(H.lip_style)
H.lip_style = null
H.update_body()
diff --git a/icons/mob/smelly.dmi b/icons/mob/smelly.dmi
deleted file mode 100644
index 486ed200a75..00000000000
Binary files a/icons/mob/smelly.dmi and /dev/null differ