BeeStation-Hornet icon indicating copy to clipboard operation
BeeStation-Hornet copied to clipboard

Updates bleeding

Open PowerfulBacon opened this issue 1 year ago • 50 comments

About The Pull Request

fixes #11036

Updates bleeding:

  • Amount of bleeding caused by a weapon is now determined by its bleed_force variable.
  • Limbs with over 20 damage will no longer cause bleeding.
  • Bleeding is now a status effect and will display an alert.
  • Armour now has a bleed protection value
  • Weapons that deal fire damage will now cauterise bleeding wounds.
  • Oxygen damage caused by bleeding is now a maxHealth limitation and won't actually ever kill you until you lose enough blood.
  • Bleeding no longer stacks additively, instead it adds according to an equation bleed.bleed_rate + max(min(bleed_level * bleed_level, sqrt(bleed_level)) / max(bleed.bleed_rate, 1),bleed_level - bleed.bleed_rate) (Bleed rate will increase slowly if you are already bleeding a lot),
  • Once bleeding is serious enough, it will no longer heal naturally
  • Clicking the allow will apply pressure to the wound, which allows it to heal as if it was bandaged but takes up an active hand slot.
  • A new surgery has been added that cauterises wounds instantly.
  • Bandages will no longer disable bleeding for [X] seconds, instead they will convert bleeding into 'bandaged bleeding' which doesn't bleed and heals slowly over time.

This makes bleeding communicated to the user, it will be shown when they are bleeding and when that is serious.

This also makes bleeding significantly more serious, and something that will quickly result in death if not treated. Getting shot or stabbed won't kill you instantly, but it will certainly kill you if you can't get a bandage to it quickly.

Sounds in the PR were adapted surgery sounds created by me. (I think it was organ2.ogg cut and with speed changes)

There are some additional interactions with mechanical limbs:

  • If a mob has a mechanical chest, they can stop bleeding by using a welder.
  • IPCs leak instead of bleed and have a different status effect and icon.
  • IPCs will never naturally heal bleeding, and need to use a welding tool to stop bleeding.

Why It's Good For The Game

Previously bleeding was a background mechanic where you suddenly start dying 20 minutes after you start bleeding. The main problems I see with it are:

  • It's too slow
  • It's not communicated

This PR makes bleeding a lot more important and something that you will need to deal with during combat and after combat, otherwise everyone else will come out dead. If you get shot then you will die unless you can get a bandage that deep wound. Getting stabbed with a knife will most likely be fine at first, but if you get stabbed multiple times then the bleeding will become serious enough that you need a bandage.

You will now have to acknowledge any heavy wounds that you take during combat, by healing them or holding the wound until it heals.

Testing Photographs and Procedure

image

image

image

https://github.com/BeeStation/BeeStation-Hornet/assets/26465327/fef4f332-1934-4138-8323-80ae1982f637

https://github.com/BeeStation/BeeStation-Hornet/assets/26465327/1ba5ec15-a022-4e8a-a550-e5c89e408566

Changelog

:cl: balance: Rebalances bleeding making it significantly more dangerous, it now has a status effect. balance: You can now hold your bleeding wounds to slow the rate of blood-loss. balance: Burn weapons can cauterise bleeding wounds. fix: Medical items that heal multiple types of damage will now function if only 1 of those types of damages need healing, rather than all of them. add: Blood type and volume percentage will now show up on medhuds. balance: Surgery tables and stasis beds will now temporarilly stop your bleeding while you are lying on them. /:cl:

PowerfulBacon avatar Dec 21 '23 17:12 PowerfulBacon

Simplemobs need to be given the ability to deal bleed damage. Xenomorphs infinitely bleed and can't stop their bleeding ~~You can apply pressure to wounds while dead~~ ~~Bleeding examine messages aren't line broken~~

PowerfulBacon avatar Dec 22 '23 17:12 PowerfulBacon

Maybe bruised limbs should be more suspectable to opening up and bleeding

PowerfulBacon avatar Dec 22 '23 17:12 PowerfulBacon

Heparin is a reagent that causes bleeding - it's been a bit of an anomaly because it presumably is supposed to replicate internal bleeding, but it causes blood to drip out.

How does Heparin interact with this system? How do you treat Heparin bleeding? This PR seems like a good time to completely rework the toxin.

With this PR I think Heparin should be adjusted to reduce blood volume over time instead of inflicting bleeding (and by extension the now very obvious debuff) or any kind of damage directly - a slow acting and stealthy toxin, but one with outward symptoms.

Rukofamicom avatar Jan 02 '24 16:01 Rukofamicom

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Jan 02 '24 17:01 github-actions[bot]

Heparin is a reagent that causes bleeding - it's been a bit of an anomaly because it presumably is supposed to replicate internal bleeding, but it causes blood to drip out.

How does Heparin interact with this system? How do you treat Heparin bleeding? This PR seems like a good time to completely rework the toxin.

With this PR I think Heparin should be adjusted to reduce blood volume over time instead of inflicting bleeding (and by extension the now very obvious debuff) or any kind of damage directly - a slow acting and stealthy toxin, but one with outward symptoms.

It causes external bleeding like usual, the blood coming out of your skin

PowerfulBacon avatar Feb 23 '24 23:02 PowerfulBacon

Seems to be working as intended

PowerfulBacon avatar Feb 23 '24 23:02 PowerfulBacon

I dislike that you cannot bandage someone while they are holding their wounds, and that holding wounds is indistinguishable for properly suppressed bleeding

PowerfulBacon avatar Feb 24 '24 23:02 PowerfulBacon

Surgery seems to cause bleeding and doesn't stop after surgery has been closed up. Is this an intentional change? Was a robo and had a poor seccie bleed out very quickly due to this.

Programs-The-Station avatar Feb 25 '24 06:02 Programs-The-Station

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar Mar 10 '24 12:03 github-actions[bot]

Could be nice if this was made more generic to serve as a wounds system. The extensibility to be able to make it so that it can stack up and eventually require stitches or have other non-bleeding related long-term status effects would be nice.

PowerfulBacon avatar Mar 10 '24 12:03 PowerfulBacon

I might make it so bloodloss slows as you have less blood, to prevent people reaching 0 blood easilly. Also if your heart stops, it should be way slower loss since its not flowing around the body.

PowerfulBacon avatar May 09 '24 11:05 PowerfulBacon

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar May 10 '24 08:05 github-actions[bot]

Once you bandage any bleed. All future bleeds are still bandaged... which is pretty dumb.

BlueHNT avatar May 15 '24 02:05 BlueHNT

does this take effect on IPCs? does this function as another indirect nerf to laser weapons?

Pockets-byte avatar May 15 '24 04:05 Pockets-byte

I'm trying to add some fixes to 2 misc toys which are not doing what they're supposed to. But my VSC just won't work with me and I can't fix the funny clicks.

So I added a PR to your PR. https://github.com/PowerfulBacon/BeeStation-Hornet-Bacons-Fork/pull/19

BlueHNT avatar May 15 '24 04:05 BlueHNT

Suggested edit:

diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 041843fcad..66846a69cd 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -419,6 +419,11 @@
 	block_level = 0
 	item_flags = ISWEAPON
 
+/obj/item/dualsaber/toy/on_wield(obj/item/source, mob/living/carbon/user)
+	. = ..()
+	sharpness = IS_BLUNT
+	bleed_force = 0
+
 /obj/item/dualsaber/toy/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
 	return 0
 
@@ -445,6 +450,8 @@
 	w_class = WEIGHT_CLASS_NORMAL
 	attack_verb = list("attacked", "slashed", "stabbed", "sliced")
 	hitsound = 'sound/weapons/bladeslice.ogg'
+	sharpness = IS_SHARP
+	bleed_force = BLEED_SURFACE
 	block_flags = BLOCKING_ACTIVE | BLOCKING_PROJECTILE //if it some how gets block level, katanas block projectiles for the meme
 	item_flags = ISWEAPON
 

BlueHNT avatar May 15 '24 05:05 BlueHNT

Well I figured it out and now I can kill the PR. GREAT.

BlueHNT avatar May 15 '24 05:05 BlueHNT

does this take effect on IPCs? does this function as another indirect nerf to laser weapons?

Yes to both

PowerfulBacon avatar May 15 '24 07:05 PowerfulBacon

Once you bandage any bleed. All future bleeds are still bandaged... which is pretty dumb.

Fixed in 6d4215b2d3ae727061cb290299aa4d81272d9361

PowerfulBacon avatar May 15 '24 07:05 PowerfulBacon

I heard some people in dchat talk about blood cult and bleeding issues.

Have not tested it myself but might need a balance change for blood cultists (rapid coagulation//regenaration)?

lowwy avatar May 15 '24 20:05 lowwy

I heard some people in dchat talk about blood cult and bleeding issues.

Have not tested it myself but might need a balance change for blood cultists (rapid coagulation//regenaration)?

lowwy avatar May 15 '24 20:05 lowwy

Alright:

  • Mime gun causes bleeding
  • Doctors need to know when a bandage is fully applied
  • Bleeding should be adjusted to be kinder on the damage curve, but kill them once they reach the crit stage

PowerfulBacon avatar May 15 '24 20:05 PowerfulBacon

medical items are bugged and show the user instead of the target in the message. Gauzes also do not round their number.

PowerfulBacon avatar May 16 '24 21:05 PowerfulBacon

Due to the amount of blood being spilled, Do you think we should get a machine that could create blood from synthflesh+iron//chem cartridge or something? Kinda like the limb-grower but for blood.

Medbay usually starts with 1 bag of each type, and the only way to get more is from blood donors or Cargo. Rounds I played we kinda ran out fast (given the rounds I did play there were blood cult and nukies, high blood tax)

lowwy avatar May 17 '24 13:05 lowwy

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar May 18 '24 11:05 github-actions[bot]

does this take effect on IPCs? does this function as another indirect nerf to laser weapons?

Yes to both

I like the first, but the second is less great, perhaps not in the bounds of this one, but laser weapons probably shouldn't be powercrept out of existence

Pockets-byte avatar May 19 '24 21:05 Pockets-byte

I am very happy with this in the current iteration. It's managable but feels very deadly, making bleed causing attacks feel dangerous even after the fight finishes. It leads to some very chaotic scenes in medbay, although perhaps there should be more off-license ways to regenerate blood for the lone wolfs wandering maintenance (sleeping while full makes it faster to regenerate?)

PowerfulBacon avatar May 22 '24 10:05 PowerfulBacon

Bleeding during surgery is around 2.0/s which is an insane number, please either lower it or add make it so you can clamp bleeders on every surgery reducing the bleeding to like 0.1-0.3/s so ya dont bleed out if the surgeon isnt the fastest man alive.

BlueHNT avatar May 22 '24 13:05 BlueHNT

Bleeding during surgery is around 2.0/s which is an insane number, please either lower it or add make it so you can clamp bleeders on every surgery reducing the bleeding to like 0.1-0.3/s so ya dont bleed out if the surgeon isnt the fastest man alive.

I am more interested to see implementing a usage of sterilizer reagent to lower bleeding severity during surgery.

EvilDragonfiend avatar May 22 '24 13:05 EvilDragonfiend

This pull request has conflicts, please resolve those before we can evaluate the pull request.

github-actions[bot] avatar May 24 '24 10:05 github-actions[bot]