Myelamine fixes and adjustments (#17297)

* Update medicine.dm

- myelamine now ACTUALLY heals internal wounds if you take a 10u dose of it. No more 'I took 10u and it had 0.1 damage remaining and I bled out 10 minutes later'
- myelamine has an updated description, informing you that it doesn't heal JUST internal wounds, but it also heals external wounds.

* grep
This commit is contained in:
Cameron Lennox
2025-03-09 19:37:52 -04:00
committed by GitHub
parent 2b4fb780e3
commit bf63b120b5
6 changed files with 22 additions and 22 deletions
@@ -81,7 +81,7 @@ GLOBAL_VAR_INIT(jellyfish_count, 0)
var/reproduction_cooldown = 0
/mob/living/simple_mob/vore/alienanimals/space_jellyfish/Initialize()
/mob/living/simple_mob/vore/alienanimals/space_jellyfish/Initialize(mapload)
. = ..()
AddComponent(/datum/component/swarming)
@@ -120,7 +120,7 @@
allow_mind_transfer = TRUE
/mob/living/simple_mob/animal/giant_spider/Initialize()
/mob/living/simple_mob/animal/giant_spider/Initialize(mapload)
. = ..()
AddComponent(/datum/component/swarming)
@@ -87,7 +87,7 @@
"silver" = "#fdfbf3", \
)
/mob/living/simple_mob/animal/space/carp/Initialize()
/mob/living/simple_mob/animal/space/carp/Initialize(mapload)
. = ..()
carp_randomify(rarechance)
update_icons()
@@ -50,7 +50,7 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
/mob/living/simple_mob/mechanical/viscerator/Initialize()
/mob/living/simple_mob/mechanical/viscerator/Initialize(mapload)
. = ..()
AddComponent(/datum/component/swarming)
@@ -46,7 +46,7 @@
allow_mind_transfer = TRUE
/mob/living/simple_mob/vore/bee/Initialize()
/mob/living/simple_mob/vore/bee/Initialize(mapload)
. = ..()
AddComponent(/datum/component/swarming)
+17 -17
View File
@@ -736,7 +736,7 @@
/datum/reagent/myelamine
name = REAGENT_MYELAMINE
id = REAGENT_ID_MYELAMINE
description = "Used to rapidly clot internal hemorrhages by increasing the effectiveness of platelets."
description = "Used to rapidly clot hemorrhages by increasing the effectiveness of platelets. An ideal dosage of 10 units will fully heal any internal hemorrhages."
reagent_state = LIQUID
color = "#4246C7"
metabolism = REM * 0.75
@@ -755,30 +755,30 @@
for(var/obj/item/organ/external/O in H.bad_external_organs)
for(var/datum/wound/W in O.wounds)
if(W.bleeding())
W.damage = max(W.damage - wound_heal, 0)
if(W.damage <= 0)
O.wounds -= W
if(W.internal)
W.damage = max(W.damage - wound_heal, 0)
if(W.damage <= 0)
W.bandage() //This is the ACTUAL clotting being performed.
W.damage = max(W.damage - (wound_heal*3.5), 0) //Removed should be 0.15 (can be higher if you have high/apex metabolism). repair_strength is 6. Making wound_heal .9. Multiply by 3.5 and that gives us a heal of 3.15 on our wounds.
if(W.damage <= 0) //We do this since this will only happen once per bleeding wound, as it's then bandaged (clotted). We do the heal as we want it to be somewhat like slapping them with an advanceed/bruise_pack. (Bruise packs heal 3.5 on application, as of the time of writing.)
O.wounds -= W
break //We only heal ONE external wound per go around.
for(var/datum/wound/internal_bleeding/W in O.wounds)
W.damage = max(W.damage - wound_heal, 0)
if(W.damage <= 0)
O.wounds -= W
else if(dose >= 9.5 && dose < 11) //If you are in the 'sweet zone' of 9.5u to 11u, your internal wounds instantly heal. This is to prevent people from using a clotting pen or taking a 10u clotting pill from medical and it not actually fixing their wounds.
W.damage = 0
O.wounds -= W
/datum/reagent/myelamine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
// Copypaste of affect_blood with slight adjustment. Heals slightly faster at the cost of high toxins
//Heals slightly faster at the cost of high toxins. Honestly you should never do this, but whatever.
..()
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/wound_heal = removed * repair_strength / 2
for(var/obj/item/organ/external/O in H.bad_external_organs)
for(var/datum/wound/W in O.wounds)
if(W.bleeding())
W.damage = max(W.damage - wound_heal, 0)
if(W.damage <= 0)
O.wounds -= W
if(W.internal)
W.damage = max(W.damage - wound_heal, 0)
if(W.damage <= 0)
O.wounds -= W
for(var/datum/wound/internal_bleeding/W in O.wounds)
W.damage = max(W.damage - wound_heal, 0)
if(W.damage <= 0)
O.wounds -= W
/datum/reagent/respirodaxon
name = REAGENT_RESPIRODAXON