diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm index d75f3ad4c2b..de0eb06a881 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm @@ -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) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm index aea882fcfde..4e72596d6c1 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm @@ -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) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm index a476e9ea7d2..ef40595c1c2 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm @@ -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() diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/viscerator.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/viscerator.dm index 98bd0a7ec22..0ae66fded99 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/viscerator.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/viscerator.dm @@ -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) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm b/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm index 95d97b26dd9..fc899683a52 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm @@ -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) diff --git a/code/modules/reagents/reagents/medicine.dm b/code/modules/reagents/reagents/medicine.dm index 183eb518fc5..124d7bfa81e 100644 --- a/code/modules/reagents/reagents/medicine.dm +++ b/code/modules/reagents/reagents/medicine.dm @@ -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