diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 64a4089543f..d90237ad16d 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -138,14 +138,6 @@ #define SANITY_CRAZY 25 #define SANITY_INSANE 0 -//Beauty levels of areas for carbons -#define BEAUTY_LEVEL_HORRID -100 -#define BEAUTY_LEVEL_BAD -66 -#define BEAUTY_LEVEL_MEH -33 -#define BEAUTY_LEVEL_DECENT 33 -#define BEAUTY_LEVEL_GOOD 66 -#define BEAUTY_LEVEL_GREAT 100 - //Nutrition levels for humans #define NUTRITION_LEVEL_FAT 600 #define NUTRITION_LEVEL_FULL 550 diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 0716d35ffb6..7d3c5f6d2fb 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -15,7 +15,7 @@ if(prob(4)) if(prob(33) && (owner.IsStun() || owner.IsKnockdown() || owner.IsUnconscious())) speak("unstun", TRUE) - else if(prob(60) && owner.health <= HEALTH_THRESHOLD_CRIT) + else if(prob(60) && owner.health <= owner.crit_modifier()) speak("heal", TRUE) else if(prob(30) && owner.a_intent == INTENT_HARM) speak("aggressive") @@ -133,4 +133,4 @@ QDEL_NULL(psychotic_brawling) /datum/brain_trauma/special/psychotic_brawling/bath_salts - name = "Chemical Violent Psychosis" \ No newline at end of file + name = "Chemical Violent Psychosis" diff --git a/code/datums/components/beauty.dm b/code/datums/components/beauty.dm deleted file mode 100644 index bf086feb20f..00000000000 --- a/code/datums/components/beauty.dm +++ /dev/null @@ -1,34 +0,0 @@ -/datum/component/beauty - var/beauty = 0 - -/datum/component/beauty/Initialize(beautyamount) - if(!ismovableatom(parent)) - return COMPONENT_INCOMPATIBLE - beauty = beautyamount - RegisterSignal(parent, COMSIG_ENTER_AREA, .proc/enter_area) - RegisterSignal(parent, COMSIG_EXIT_AREA, .proc/exit_area) - var/area/A = get_area(parent) - if(!A || A.outdoors) - return - A.totalbeauty += beauty - A.update_beauty() - -/datum/component/beauty/proc/enter_area(area/A) - if(A.outdoors) //Fuck the outside. - return FALSE - A.totalbeauty += beauty - A.update_beauty() - -/datum/component/beauty/proc/exit_area(area/A) - if(A.outdoors) //Fuck the outside. - return FALSE - A.totalbeauty -= beauty - A.update_beauty() - -/datum/component/beauty/Destroy() - . = ..() - var/area/A = get_area(parent) - if(!A || A.outdoors) - return - A.totalbeauty -= beauty - A.update_beauty() diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 3e37b075420..5f20c6fd5f4 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -6,21 +6,17 @@ var/mood_modifier = 1 //Modifier to allow certain mobs to be less affected by moodlets var/datum/mood_event/list/mood_events = list() var/mob/living/owner - var/datum/looping_sound/reverse_bear_trap/slow/soundloop //Insanity ticking /datum/component/mood/Initialize() if(!isliving(parent)) return COMPONENT_INCOMPATIBLE START_PROCESSING(SSmood, src) owner = parent - soundloop = new(list(owner), FALSE, TRUE) - RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, .proc/add_event) - RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) - RegisterSignal(parent, COMSIG_ENTER_AREA, .proc/update_beauty) + RegisterSignal(COMSIG_ADD_MOOD_EVENT, .proc/add_event) + RegisterSignal(COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) /datum/component/mood/Destroy() STOP_PROCESSING(SSmood, src) - QDEL_NULL(soundloop) return ..() /datum/component/mood/proc/print_mood() @@ -115,20 +111,12 @@ if(SANITY_INSANE to SANITY_CRAZY) owner.overlay_fullscreen("depression", /obj/screen/fullscreen/depression, 3) update_mood_icon() - if(prob(7)) - owner.playsound_local(null, pick(CREEPY_SOUNDS), 40, 1) - soundloop.start() if(SANITY_INSANE to SANITY_UNSTABLE) owner.overlay_fullscreen("depression", /obj/screen/fullscreen/depression, 2) - if(prob(3)) - owner.playsound_local(null, pick(CREEPY_SOUNDS), 20, 1) - soundloop.stop() if(SANITY_UNSTABLE to SANITY_DISTURBED) owner.overlay_fullscreen("depression", /obj/screen/fullscreen/depression, 1) - soundloop.stop() if(SANITY_DISTURBED to INFINITY) owner.clear_fullscreen("depression") - soundloop.stop() switch(mood_level) if(1) @@ -159,10 +147,6 @@ add_event("jolly", /datum/mood_event/jolly) clear_event("depression") - var/area/A = get_area(owner) - if(A) - update_beauty(A) - /datum/component/mood/proc/DecreaseSanity(amount, limit = 0) if(sanity < limit) //This might make KevinZ stop fucking pinging me. IncreaseSanity(0.5) @@ -199,23 +183,3 @@ mood_events -= category qdel(event) update_mood() - -/datum/component/mood/proc/update_beauty(area/A) - if(A.outdoors) //if we're outside, we don't care. - clear_event("area_beauty") - return FALSE - switch(A.beauty) - if(-INFINITY to BEAUTY_LEVEL_HORRID) - add_event("area_beauty", /datum/mood_event/horridroom) - if(BEAUTY_LEVEL_HORRID to BEAUTY_LEVEL_BAD) - add_event("area_beauty", /datum/mood_event/badroom) - if(BEAUTY_LEVEL_BAD to BEAUTY_LEVEL_MEH) - add_event("area_beauty", /datum/mood_event/mehroom) - if(BEAUTY_LEVEL_MEH to BEAUTY_LEVEL_DECENT) - clear_event("area_beauty") - if(BEAUTY_LEVEL_DECENT to BEAUTY_LEVEL_GOOD) - add_event("area_beauty", /datum/mood_event/decentroom) - if(BEAUTY_LEVEL_GOOD to BEAUTY_LEVEL_GREAT) - add_event("area_beauty", /datum/mood_event/goodroom) - if(BEAUTY_LEVEL_GREAT to INFINITY) - add_event("area_beauty", /datum/mood_event/greatroom) diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm index d0ec277b36c..d650f7294a8 100644 --- a/code/datums/looping_sounds/item_sounds.dm +++ b/code/datums/looping_sounds/item_sounds.dm @@ -41,11 +41,6 @@ mid_length = 3.5 volume = 25 -/datum/looping_sound/reverse_bear_trap/slow - mid_sounds = list('sound/effects/clock_tick.ogg') - mid_length = 10 - volume = 40 - /datum/looping_sound/reverse_bear_trap_beep mid_sounds = list('sound/machines/beep.ogg') diff --git a/code/datums/mood_events/beauty_events.dm b/code/datums/mood_events/beauty_events.dm deleted file mode 100644 index 534facdb213..00000000000 --- a/code/datums/mood_events/beauty_events.dm +++ /dev/null @@ -1,23 +0,0 @@ -/datum/mood_event/horridroom - description = "This room looks terrible!\n" - mood_change = -5 - -/datum/mood_event/badroom - description = "This room looks really bad.\n" - mood_change = -3 - -/datum/mood_event/mehroom - description = "This room doesn't look great.\n" - mood_change = -1 - -/datum/mood_event/decentroom - description = "This room looks alright.\n" - mood_change = 2 - -/datum/mood_event/goodroom - description = "This room looks really pretty!\n" - mood_change = 4 - -/datum/mood_event/greatroom - description = "This room is beautiful!\n" - mood_change = 7 diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 74349caa736..835eaa44cea 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -72,7 +72,7 @@ if(prob(20)) if(carbon_owner) carbon_owner.handle_dreams() - if(prob(10) && owner.health > HEALTH_THRESHOLD_CRIT) + if(prob(10) && owner.health > owner.crit_modifier()) owner.emote("snore") /obj/screen/alert/status_effect/asleep diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 8aa910b2e2a..5c37fb96950 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -29,8 +29,6 @@ var/outdoors = FALSE //For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room) - var/totalbeauty = 0 //All beauty in this area combined, only includes indoor area. - var/beauty = 0 // Beauty average per open turf in the area var/areasize = 0 //Size of the area in open turfs, only calculated for indoors areas. var/power_equip = TRUE @@ -135,7 +133,6 @@ GLOBAL_LIST_EMPTY(teleportlocs) /area/LateInitialize() power_change() // all machines set to current power level, also updates icon - update_beauty() /area/Destroy() STOP_PROCESSING(SSobj, src) @@ -488,11 +485,6 @@ GLOBAL_LIST_EMPTY(teleportlocs) blob_allowed = FALSE addSorted() -/area/proc/update_beauty() - if(!areasize) - return FALSE - beauty = totalbeauty / areasize - /area/proc/update_areasize() if(outdoors) return FALSE diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index d76a3358884..50d40697f8a 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -60,7 +60,6 @@ /obj/structure/sign/poster/Initialize() . = ..() - addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 75), 0) if(random_basetype) randomise(random_basetype) if(!ruined) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index e9bf9d5842f..ca70c4d7f97 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -5,7 +5,6 @@ var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA var/bloodiness = 0 //0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints var/mergeable_decal = TRUE //when two of these are on a same tile or do we need to merge them into just one? - var/beauty /obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases) . = ..() @@ -26,10 +25,6 @@ if(LAZYLEN(diseases_to_add)) AddComponent(/datum/component/infective, diseases_to_add) -/obj/effect/decal/cleanable/ComponentInitialize() - . = ..() - addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, beauty), 0) //inb4 i get yelled at for using the beauty var on cleanable instead of calling this proc on every subtype which would be pedantic and actually run worse. - /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) return TRUE diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index d34fac1b9d6..55d5d32ffca 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -8,7 +8,6 @@ random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7") bloodiness = MAX_SHOE_BLOODINESS blood_state = BLOOD_STATE_XENO - beauty = -75 /obj/effect/decal/cleanable/xenoblood/Initialize() . = ..() diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 0b6818c97b8..9d9d8d17a47 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -6,7 +6,6 @@ random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") blood_state = BLOOD_STATE_HUMAN bloodiness = MAX_SHOE_BLOODINESS - beauty = -60 /obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C) C.add_blood_DNA(return_blood_DNA()) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index a8a76ad2a94..5eab1623c84 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -3,7 +3,6 @@ desc = "Someone should clean that up." icon = 'icons/obj/objects.dmi' icon_state = "shards" - beauty = -50 /obj/effect/decal/cleanable/ash name = "ashes" @@ -11,7 +10,6 @@ icon = 'icons/obj/objects.dmi' icon_state = "ash" mergeable_decal = FALSE - beauty = -50 /obj/effect/decal/cleanable/ash/Initialize() . = ..() @@ -26,7 +24,6 @@ /obj/effect/decal/cleanable/ash/large name = "large pile of ashes" icon_state = "big_ash" - beauty = -100 /obj/effect/decal/cleanable/ash/large/Initialize() . = ..() @@ -37,7 +34,6 @@ desc = "Back to sand." icon = 'icons/obj/shards.dmi' icon_state = "tiny" - beauty = -60 /obj/effect/decal/cleanable/glass/Initialize() . = ..() @@ -51,20 +47,17 @@ desc = "Someone should clean that up." icon_state = "dirt" mouse_opacity = MOUSE_OPACITY_TRANSPARENT - beauty = -50 /obj/effect/decal/cleanable/flour name = "flour" desc = "It's still good. Four second rule!" icon_state = "flour" - beauty = -50 /obj/effect/decal/cleanable/greenglow name = "glowing goo" desc = "Jeez. I hope that's not for lunch." light_color = LIGHT_COLOR_GREEN icon_state = "greenglow" - beauty = -150 /obj/effect/decal/cleanable/greenglow/Initialize(mapload) . = ..() @@ -80,7 +73,6 @@ layer = WALL_OBJ_LAYER icon_state = "cobweb1" resistance_flags = FLAMMABLE - beauty = -50 /obj/effect/decal/cleanable/cobweb/cobweb2 icon_state = "cobweb2" @@ -92,12 +84,10 @@ icon = 'icons/effects/effects.dmi' icon_state = "molten" mergeable_decal = FALSE - beauty = -100 /obj/effect/decal/cleanable/molten_object/large name = "big gooey grey mass" icon_state = "big_molten" - beauty = -250 //Vomit (sorry) /obj/effect/decal/cleanable/vomit @@ -106,7 +96,6 @@ icon = 'icons/effects/blood.dmi' icon_state = "vomit_1" random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4") - beauty = -200 /obj/effect/decal/cleanable/vomit/attack_hand(mob/user) . = ..() @@ -141,14 +130,12 @@ gender = NEUTER icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3") - beauty = -50 /obj/effect/decal/cleanable/plant_smudge name = "plant smudge" gender = NEUTER icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("smashed_plant") - beauty = -50 /obj/effect/decal/cleanable/egg_smudge name = "smashed egg" @@ -156,7 +143,6 @@ gender = NEUTER icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3") - beauty = -50 /obj/effect/decal/cleanable/pie_smudge //honk name = "smashed pie" @@ -164,7 +150,6 @@ gender = NEUTER icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("smashed_pie") - beauty = -50 /obj/effect/decal/cleanable/chem_pile name = "chemical pile" @@ -172,7 +157,6 @@ gender = NEUTER icon = 'icons/obj/objects.dmi' icon_state = "ash" - beauty = -60 /obj/effect/decal/cleanable/shreds name = "shreds" @@ -180,7 +164,6 @@ icon_state = "shreds" gender = PLURAL mergeable_decal = FALSE - beauty = -75 /obj/effect/decal/cleanable/shreds/ex_act(severity, target) if(severity == 1) //so shreds created during an explosion aren't deleted by the explosion. @@ -197,14 +180,12 @@ icon = 'icons/effects/tomatodecal.dmi' icon_state = "salt_pile" gender = NEUTER - beauty = -50 /obj/effect/decal/cleanable/glitter name = "generic glitter pile" desc = "The herpes of arts and crafts." icon = 'icons/effects/tile_effects.dmi' gender = NEUTER - beauty = 100 /obj/effect/decal/cleanable/glitter/pink name = "pink glitter" @@ -223,7 +204,6 @@ desc = "A puddle of stabilized plasma." icon_state = "flour" color = "#C8A5DC" - beauty = -200 /obj/effect/decal/cleanable/insectguts name = "insect guts" @@ -231,4 +211,3 @@ icon = 'icons/effects/blood.dmi' icon_state = "xfloor1" random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7") - beauty = -300 diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm index b764e1f0cef..7d57d994f5a 100644 --- a/code/game/objects/effects/decals/cleanable/robots.dm +++ b/code/game/objects/effects/decals/cleanable/robots.dm @@ -10,7 +10,6 @@ blood_state = BLOOD_STATE_OIL bloodiness = MAX_SHOE_BLOODINESS mergeable_decal = FALSE - beauty = -100 /obj/effect/decal/cleanable/robot_debris/proc/streak(list/directions) set waitfor = 0 @@ -47,7 +46,6 @@ random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") blood_state = BLOOD_STATE_OIL bloodiness = MAX_SHOE_BLOODINESS - beauty = -150 /obj/effect/decal/cleanable/oil/Initialize() . = ..() diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index e8242118692..44c51099c6f 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -448,10 +448,6 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throw_range = 2 attack_verb = list("busted") -/obj/item/statuebust/Initialize() - . = ..() - addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 1000), 0) - /obj/item/tailclub name = "tail club" desc = "For the beating to death of lizards with their own tails." diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 079ef931188..4e274d50487 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -294,9 +294,6 @@ throw_speed = 2 throw_range = 4 -/obj/item/twohanded/required/kirbyplants/Initialize() - . = ..() - addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 750), 0) /obj/item/twohanded/required/kirbyplants/equipped(mob/living/user) var/image/I = image(icon = 'icons/obj/flora/plants.dmi' , icon_state = src.icon_state, loc = user) diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm index fe6785db2dc..5de3f0fc9a6 100644 --- a/code/game/objects/structures/showcase.dm +++ b/code/game/objects/structures/showcase.dm @@ -11,10 +11,6 @@ anchored = TRUE var/deconstruction_state = SHOWCASE_CONSTRUCTED -/obj/structure/showcase/Initialize() - . = ..() - addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 750), 0) - /obj/structure/showcase/fakeid name = "\improper CentCom identification console" desc = "You can use this to change ID's." diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index d22dbddd52e..b9cb3d984f6 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -13,7 +13,6 @@ /obj/structure/statue/Initialize() . = ..() - addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 1250), 0) /obj/structure/statue/attackby(obj/item/W, mob/living/user, params) add_fingerprint(user) diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index cbff942fc43..e50370ff448 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -63,7 +63,7 @@ /obj/item/organ/regenerative_core/on_life() ..() - if(owner.health < HEALTH_THRESHOLD_CRIT) + if(owner.health < owner.crit_modifier()) ui_action_click() /obj/item/organ/regenerative_core/afterattack(atom/target, mob/user, proximity_flag) diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index c379bf62187..9632fbc5e32 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -18,7 +18,7 @@ if(health<= -maxHealth || !getorgan(/obj/item/organ/brain)) death() return - if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (has_trait(TRAIT_FAKEDEATH)) || health <= HEALTH_THRESHOLD_CRIT) + if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (has_trait(TRAIT_FAKEDEATH)) || health <= crit_modifier()) if(stat == CONSCIOUS) stat = UNCONSCIOUS blind_eyes(1) @@ -30,4 +30,4 @@ adjust_blindness(-1) update_canmove() update_damage_hud() - update_health_hud() \ No newline at end of file + update_health_hud() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 0f983292b3f..857dede59c5 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -599,7 +599,7 @@ if(!client) return - if(health <= HEALTH_THRESHOLD_CRIT) + if(health <= crit_modifier()) var/severity = 0 switch(health) if(-20 to -10) @@ -728,7 +728,7 @@ stat = UNCONSCIOUS blind_eyes(1) else - if(health <= HEALTH_THRESHOLD_CRIT && !has_trait(TRAIT_NOSOFTCRIT)) + if(health <= crit_modifier() && !has_trait(TRAIT_NOSOFTCRIT)) stat = SOFT_CRIT else stat = CONSCIOUS diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index f18d6d363df..c9ac8655f90 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -372,3 +372,12 @@ var/obj/item/organ/ears/ears = getorganslot(ORGAN_SLOT_EARS) if(istype(ears) && !ears.deaf) . = TRUE + +/mob/living/carbon/crit_modifier() + . = ..() + GET_COMPONENT(mood, /datum/component/mood) + if(mood) + if(mood.sanity >= SANITY_UNSTABLE) + . += 5 + else if(mood.sanity >= SANITY_CRAZY) + . += 10 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 78ec5ec0538..e058f2525b5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -656,7 +656,7 @@ var/they_breathe = !C.has_trait(TRAIT_NOBREATH) var/they_lung = C.getorganslot(ORGAN_SLOT_LUNGS) - if(C.health > HEALTH_THRESHOLD_CRIT) + if(C.health > C.crit_modifier()) return src.visible_message("[src] performs CPR on [C.name]!", "You perform CPR on [C.name].") diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 7a41024f4ae..38e55e4de9d 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -84,7 +84,7 @@ var/L = getorganslot(ORGAN_SLOT_LUNGS) if(!L) - if(health >= HEALTH_THRESHOLD_CRIT) + if(health >= crit_modifier()) adjustOxyLoss(HUMAN_MAX_OXYLOSS + 1) else if(!has_trait(TRAIT_NOCRITDAMAGE)) adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index d715284cf96..065261a5cb5 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -708,7 +708,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.losebreath = 0 var/takes_crit_damage = (!H.has_trait(TRAIT_NOCRITDAMAGE)) - if((H.health < HEALTH_THRESHOLD_CRIT) && takes_crit_damage) + if((H.health < H.crit_modifier()) && takes_crit_damage) H.adjustBruteLoss(1) /datum/species/proc/spec_death(gibbed, mob/living/carbon/human/H) @@ -1514,10 +1514,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) // +/- 50 degrees from 310K is the 'safe' zone, where no damage is dealt. if(H.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT && !H.has_trait(TRAIT_RESISTHEAT)) //Body temperature is too hot. - + SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "hot", /datum/mood_event/hot) - + var/burn_damage switch(H.bodytemperature) if(BODYTEMP_HEAT_DAMAGE_LIMIT to 400) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 1088ce43857..cd36c13b08e 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -59,7 +59,7 @@ if(health <= HEALTH_THRESHOLD_FULLCRIT || (pulledby && pulledby.grab_state >= GRAB_KILL)) losebreath++ //You can't breath at all when in critical or when being choked, so you're going to miss a breath - else if(health <= HEALTH_THRESHOLD_CRIT) + else if(health <= crit_modifier()) losebreath += 0.25 //You're having trouble breathing in soft crit, so you'll miss a breath one in four times //Suffocate @@ -154,7 +154,7 @@ else //Enough oxygen failed_last_breath = 0 - if(health >= HEALTH_THRESHOLD_CRIT) + if(health >= crit_modifier()) adjustOxyLoss(-5) oxygen_used = breath_gases[/datum/gas/oxygen][MOLES] clear_alert("not_enough_oxy") diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index cac8b159b1f..15212431d06 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -281,7 +281,7 @@ return TRUE /mob/living/proc/InCritical() - return (health <= HEALTH_THRESHOLD_CRIT && (stat == SOFT_CRIT || stat == UNCONSCIOUS)) + return (health <= crit_modifier() && (stat == SOFT_CRIT || stat == UNCONSCIOUS)) /mob/living/proc/InFullCritical() return (health <= HEALTH_THRESHOLD_FULLCRIT && stat == UNCONSCIOUS) @@ -797,7 +797,7 @@ var/stam = getStaminaLoss() if(stam) var/total_health = (health - stam) - if(total_health <= HEALTH_THRESHOLD_CRIT && !stat) + if(total_health <= crit_modifier() && !stat) to_chat(src, "You're too exhausted to keep going...") Knockdown(100) setStaminaLoss(health - 2, FALSE, FALSE) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 0ce42af01b1..2823d604176 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -61,6 +61,9 @@ else return 0 +/mob/living/proc/crit_modifier() + return HEALTH_THRESHOLD_CRIT + /mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE) if(istype(AM, /obj/item)) var/obj/item/I = AM diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm index dbafe9451cc..bc716c148e9 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -67,7 +67,6 @@ desc = "A small pool of sludge, containing trace amounts of leaper venom." icon = 'icons/effects/tomatodecal.dmi' icon_state = "tomato_floor1" - beauty = -200 /obj/structure/leaper_bubble name = "leaper bubble" diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 54244866490..9eeb667e2fc 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -54,11 +54,11 @@ var/sound/fastbeat = sound('sound/health/fastbeat.ogg', repeat = TRUE) var/mob/living/carbon/H = owner - if(H.health <= HEALTH_THRESHOLD_CRIT && beat != BEAT_SLOW) + if(H.health <= H.crit_modifier() && beat != BEAT_SLOW) beat = BEAT_SLOW H.playsound_local(get_turf(H), slowbeat,40,0, channel = CHANNEL_HEARTBEAT) to_chat(owner, "You feel your heart slow down...") - if(beat == BEAT_SLOW && H.health > HEALTH_THRESHOLD_CRIT) + if(beat == BEAT_SLOW && H.health > H.crit_modifier()) H.stop_sound_channel(CHANNEL_HEARTBEAT) beat = BEAT_NONE diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 9e53a902a2e..e338c4aa0ca 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -64,7 +64,7 @@ if(!breath || (breath.total_moles() == 0)) if(H.reagents.has_reagent(crit_stabilizing_reagent)) return - if(H.health >= HEALTH_THRESHOLD_CRIT) + if(H.health >= H.crit_modifier()) H.adjustOxyLoss(HUMAN_MAX_OXYLOSS) else if(!H.has_trait(TRAIT_NOCRITDAMAGE)) H.adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS) @@ -111,7 +111,7 @@ H.throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) else H.failed_last_breath = FALSE - if(H.health >= HEALTH_THRESHOLD_CRIT) + if(H.health >= H.crit_modifier()) H.adjustOxyLoss(-5) gas_breathed = breath_gases[/datum/gas/oxygen][MOLES] H.clear_alert("not_enough_oxy") @@ -139,7 +139,7 @@ H.throw_alert("nitro", /obj/screen/alert/not_enough_nitro) else H.failed_last_breath = FALSE - if(H.health >= HEALTH_THRESHOLD_CRIT) + if(H.health >= H.crit_modifier()) H.adjustOxyLoss(-5) gas_breathed = breath_gases[/datum/gas/nitrogen][MOLES] H.clear_alert("nitro") @@ -176,7 +176,7 @@ H.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) else H.failed_last_breath = FALSE - if(H.health >= HEALTH_THRESHOLD_CRIT) + if(H.health >= H.crit_modifier()) H.adjustOxyLoss(-5) gas_breathed = breath_gases[/datum/gas/carbon_dioxide][MOLES] H.clear_alert("not_enough_co2") @@ -206,7 +206,7 @@ H.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox) else H.failed_last_breath = FALSE - if(H.health >= HEALTH_THRESHOLD_CRIT) + if(H.health >= H.crit_modifier()) H.adjustOxyLoss(-5) gas_breathed = breath_gases[/datum/gas/plasma][MOLES] H.clear_alert("not_enough_tox") diff --git a/tgstation.dme b/tgstation.dme index 7bcd552e5f0..87dca363abc 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -313,7 +313,6 @@ #include "code\datums\components\anti_magic.dm" #include "code\datums\components\archaeology.dm" #include "code\datums\components\armor_plate.dm" -#include "code\datums\components\beauty.dm" #include "code\datums\components\butchering.dm" #include "code\datums\components\caltrop.dm" #include "code\datums\components\chasm.dm" @@ -429,7 +428,6 @@ #include "code\datums\martial\psychotic_brawl.dm" #include "code\datums\martial\sleeping_carp.dm" #include "code\datums\martial\wrestling.dm" -#include "code\datums\mood_events\beauty_events.dm" #include "code\datums\mood_events\drug_events.dm" #include "code\datums\mood_events\generic_negative_events.dm" #include "code\datums\mood_events\generic_positive_events.dm"