03-02-2016, 06:28 PM
Welp, time to start fixing shit!
human.dm:4258, proc/handle_chemicals_in_body() appears to be the intended method of blood reabsorption from the reagent holder into blood_volume. blood_absorption_rate is 1, and the code looks fine, it should decrease blood reagent by one and increase blood volume by one. And while blood_volume does go up, all blood reagent is stripped out every life tick and only upping blood_volume by one! So blood bags, which transfer 5 units a tick, are only being 20% efficient.
The offender appears to be code/datums/chemistry/Reagents-Misc.dmi:2127, the blood reagent's on_mob_life miiiiight be deleting all blood in mobs every life tick. Scrapping the else clause here (and maybe upping the blood_adsorption_rate in human.dm by 2 to 4 to get faster results + not piling up a ton of blood in the reagent holder while it waits to be absorbed) might get blood bags working properly.
I haven't been able to get the silly thing running so I can't check if this actually solves the problem.
human.dm:4258, proc/handle_chemicals_in_body() appears to be the intended method of blood reabsorption from the reagent holder into blood_volume. blood_absorption_rate is 1, and the code looks fine, it should decrease blood reagent by one and increase blood volume by one. And while blood_volume does go up, all blood reagent is stripped out every life tick and only upping blood_volume by one! So blood bags, which transfer 5 units a tick, are only being 20% efficient.
The offender appears to be code/datums/chemistry/Reagents-Misc.dmi:2127, the blood reagent's on_mob_life miiiiight be deleting all blood in mobs every life tick. Scrapping the else clause here (and maybe upping the blood_adsorption_rate in human.dm by 2 to 4 to get faster results + not piling up a ton of blood in the reagent holder while it waits to be absorbed) might get blood bags working properly.
I haven't been able to get the silly thing running so I can't check if this actually solves the problem.