diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 442044b15df..e22f2096230 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -12,9 +12,9 @@ #define MOVE_INTENT_RUN "run" /// Normal baseline blood volume -#define BLOOD_VOLUME_NORMAL 1000 +#define BLOOD_VOLUME_NORMAL 560 /// The amount blood typically regenerates to on its own -#define BLOOD_VOLUME_SAFE (BLOOD_VOLUME_NORMAL * 0.95) +#define BLOOD_VOLUME_SAFE (BLOOD_VOLUME_NORMAL * 0.90) /// First stage of bloodloss, mostly warnings #define BLOOD_VOLUME_SYMPTOMS_WARN (BLOOD_VOLUME_NORMAL * 0.70) /// Second stage of bloodloss, minor harmless symptoms diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm index 9e8025af1da..6031e6c18fa 100644 --- a/code/datums/elements/_element.dm +++ b/code/datums/elements/_element.dm @@ -25,8 +25,8 @@ /// Deactivates the functionality defines by the element on the given datum /datum/element/proc/Detach(datum/source, force) - SEND_SIGNAL(source, COMSIG_ELEMENT_DETACH, src) SHOULD_CALL_PARENT(1) + SEND_SIGNAL(source, COMSIG_ELEMENT_DETACH, src) UnregisterSignal(source, COMSIG_PARENT_QDELETING) /datum/element/Destroy(force) diff --git a/code/datums/wounds/bleed.dm b/code/datums/wounds/bleed.dm index 936f7f53f7c..eecb3d979d1 100644 --- a/code/datums/wounds/bleed.dm +++ b/code/datums/wounds/bleed.dm @@ -201,7 +201,7 @@ /datum/wound/bleed/receive_damage(wounding_type, wounding_dmg, wound_bonus) if(victim.stat != DEAD && wounding_type == WOUND_SLASH) // can't stab dead bodies to make it bleed faster this way - blood_flow += 0.05 * wounding_dmg + blood_flow += 0.5 * wounding_dmg if(victim.get_blood(TRUE) && prob(internal_bleeding_chance + wounding_dmg)) if(limb.current_gauze && limb.current_gauze.splint_factor) wounding_dmg *= (1 - limb.current_gauze.splint_factor) @@ -253,7 +253,7 @@ limb.check_gauze_time() limb.check_suture_time() - reduce_bloodflow() +// reduce_bloodflow() /* if(get_blood_flow(FALSE) < minimum_flow) to_chat(victim, span_green("The cut on your [limb.name] has stopped bleeding!")) diff --git a/code/datums/wounds/loss.dm b/code/datums/wounds/loss.dm index ad4bbba027d..9d8dc2cc62e 100644 --- a/code/datums/wounds/loss.dm +++ b/code/datums/wounds/loss.dm @@ -1,8 +1,11 @@ -/datum/wound/loss +/datum/wound/bleed/loss name = "Dismembered" desc = "oof ouch!!" sound_effect = 'sound/effects/dismember.ogg' + initial_flow = 30 + minimum_flow = 10 + clot_rate = 0.2 severity = WOUND_SEVERITY_LOSS threshold_minimum = 180 status_effect_type = null @@ -10,7 +13,7 @@ wound_flags = null /// Our special proc for our special dismembering, the wounding type only matters for what text we have -/datum/wound/loss/proc/apply_dismember(obj/item/bodypart/dismembered_part, wounding_type=WOUND_SLASH) +/datum/wound/bleed/loss/proc/apply_dismember(obj/item/bodypart/dismembered_part, wounding_type=WOUND_SLASH) if(!istype(dismembered_part) || !dismembered_part.owner || !(dismembered_part.body_zone in viable_zones) || isalien(dismembered_part.owner) || !dismembered_part.can_dismember()) qdel(src) return diff --git a/code/datums/wounds/pierce.dm b/code/datums/wounds/pierce.dm index f8a17aa5c7a..6acb34bd2d5 100644 --- a/code/datums/wounds/pierce.dm +++ b/code/datums/wounds/pierce.dm @@ -89,4 +89,4 @@ demotes_to = /datum/wound/bleed/pierce/severe status_effect_type = /datum/status_effect/wound/pierce/critical scar_keyword = "piercecritical" - wound_flags = (FLESH_WOUND | ACCEPTS_GAUZE | MANGLES_FLESH | ACCEPTS_SUTURE) + wound_flags = (FLESH_WOUND | ACCEPTS_GAUZE | ACCEPTS_SUTURE) diff --git a/code/datums/wounds/slash.dm b/code/datums/wounds/slash.dm index 81140678419..94194619e1e 100644 --- a/code/datums/wounds/slash.dm +++ b/code/datums/wounds/slash.dm @@ -86,4 +86,4 @@ demotes_to = /datum/wound/bleed/slash/severe status_effect_type = /datum/status_effect/wound/slash/critical scar_keyword = "slashcritical" - wound_flags = (FLESH_WOUND | ACCEPTS_GAUZE | MANGLES_FLESH | ACCEPTS_SUTURE) + wound_flags = (FLESH_WOUND | ACCEPTS_GAUZE | ACCEPTS_SUTURE) diff --git a/code/game/objects/effects/wanted_poster.dm b/code/game/objects/effects/wanted_poster.dm index 8f58a0ccd8d..d2341be0401 100644 --- a/code/game/objects/effects/wanted_poster.dm +++ b/code/game/objects/effects/wanted_poster.dm @@ -66,7 +66,7 @@ var/textLen = min(length(text), 7) var/startX = 16 - (2*textLen) var/i - for(i=1; i <= textLen, i++) + for(i=1; i <= textLen; i++) var/letter = uppertext(text[i]) var/icon/letter_icon = icon("icon" = 'icons/Font_Minimal.dmi', "icon_state" = letter) letter_icon.Shift(EAST, startX) //16 - (2*n) diff --git a/code/modules/arousal/genitals.dm b/code/modules/arousal/genitals.dm index 0ee3de003b5..812afaf337b 100644 --- a/code/modules/arousal/genitals.dm +++ b/code/modules/arousal/genitals.dm @@ -614,7 +614,7 @@ GLOBAL_LIST_INIT(genital_layers, list( // set the sprite's layer genital_overlay.layer = -layer_to_put_it //gross_image.layer = -layer_to_put_it - genital_overlay.loc = src + // genital_overlay.loc = src gross_image.loc = src gross_image.layer = SSpornhud.get_layer(src, nad.pornhud_slot, position) // and then add it to the genital_sprites layer list thing diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 7e010c78dd0..23036779ee7 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -23,9 +23,9 @@ sharpness = SHARP_POINTY //gotta figure out if this was a good idea later -vide embedding = list( - embed_chance=5, - fall_chance=4, - jostle_chance=1, + embed_chance=90, + fall_chance=0.5, + jostle_chance=20, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.5, pain_mult=4, diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index aa9378343e3..4e40a04a9ce 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -197,11 +197,12 @@ if(!prob(base_chance)) return - var/datum/wound/loss/dismembering = new + var/datum/wound/bleed/loss/dismembering = new dismembering.apply_dismember(src, wounding_type) return TRUE + //when a limb is dropped, the internal organs are removed from the mob and put into the limb /obj/item/organ/proc/transfer_to_limb(obj/item/bodypart/LB, mob/living/carbon/C) Remove() @@ -434,7 +435,7 @@ L.brutestate = 0 L.burnstate = 0 var/datum/scar/scaries = new - var/datum/wound/loss/phantom_loss = new // stolen valor, really + var/datum/wound/bleed/loss/phantom_loss = new // stolen valor, really scaries.generate(L, phantom_loss) //if(HAS_TRAIT(src, ROBOTIC_LIMBS)) //Snowflake trait moment, but needed. // L.render_like_organic = TRUE diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 545b7656c39..6ec431912be 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -3,7 +3,7 @@ desc = "Didn't make sense not to live for fun, your brain gets smart but your head gets dumb." icon = 'icons/mob/human_parts.dmi' icon_state = "default_human_head" - max_damage = 300 + max_damage = 200 body_zone = BODY_ZONE_HEAD body_part = HEAD w_class = WEIGHT_CLASS_BULKY //Quite a hefty load @@ -35,8 +35,9 @@ //If the head is a special sprite var/custom_head - wound_resistance = 10 +// wound_resistance = 10 scars_covered_by_clothes = FALSE + dismemberable = 1 //Can be dismembered /obj/item/bodypart/head/can_dismember(obj/item/I) // Can't decap people alive or with some kind of headgear. Balance reasons. @@ -44,6 +45,7 @@ return FALSE return ..() + /obj/item/bodypart/head/drop_organs(mob/user) var/turf/T = get_turf(src) if(status != BODYPART_ROBOTIC) diff --git a/config/game_options.txt b/config/game_options.txt index 0c8f23249b9..79c0ea89dce 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -32,8 +32,8 @@ OOC_DURING_ROUND ## To speed things up make the number negative, to slow things down, make the number positive. ## These modify the run/walk speed of all mobs before the mob-specific modifiers are applied. -RUN_DELAY 1.8 -WALK_DELAY 2.8 +RUN_DELAY 2 +WALK_DELAY 3 ## This is subtracted from the run speed to get the final sprint speed. SPRINT_SPEED_INCREASE 0.65