Makes some requested changes to mood (#38851)

cl Floyd
del: removed beauty / dirtyness
balance: Mood no longer gives you hallucinations, instead makes you go into crit sooner
/cl

oranges requested these changes, i havn't coded in DM for a while so I might have made some mistakes
This commit is contained in:
Qustinnus
2018-07-08 03:50:54 +02:00
committed by yogstation13-bot
parent c3ccc6faa9
commit c6e806e9d8
32 changed files with 38 additions and 186 deletions

View File

@@ -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

View File

@@ -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"
name = "Chemical Violent Psychosis"

View File

@@ -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()

View File

@@ -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)

View File

@@ -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')

View File

@@ -1,23 +0,0 @@
/datum/mood_event/horridroom
description = "<span class='boldwarning'>This room looks terrible!</span>\n"
mood_change = -5
/datum/mood_event/badroom
description = "<span class='warning'>This room looks really bad.</span>\n"
mood_change = -3
/datum/mood_event/mehroom
description = "<span class='warning'>This room doesn't look great.</span>\n"
mood_change = -1
/datum/mood_event/decentroom
description = "<span class='nicegreen'>This room looks alright.</span>\n"
mood_change = 2
/datum/mood_event/goodroom
description = "<span class='nicegreen'>This room looks really pretty!</span>\n"
mood_change = 4
/datum/mood_event/greatroom
description = "<span class='nicegreen'>This room is beautiful!</span>\n"
mood_change = 7

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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()
. = ..()

View File

@@ -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())

View File

@@ -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

View File

@@ -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()
. = ..()

View File

@@ -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."

View File

@@ -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)

View File

@@ -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."

View File

@@ -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)

View File

@@ -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)

View File

@@ -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()
update_health_hud()

View File

@@ -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

View File

@@ -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

View File

@@ -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]!", "<span class='notice'>You perform CPR on [C.name].</span>")

View File

@@ -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)

View File

@@ -709,7 +709,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)
@@ -1515,10 +1515,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)

View File

@@ -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")

View File

@@ -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, "<span class='notice'>You're too exhausted to keep going...</span>")
Knockdown(100)
setStaminaLoss(health - 2, FALSE, FALSE)

View File

@@ -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

View File

@@ -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"

View File

@@ -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, "<span class = 'notice'>You feel your heart slow down...</span>")
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

View File

@@ -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")

View File

@@ -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"