vgstation-coders / vgstation13

Butts
GNU Affero General Public License v3.0
265 stars 544 forks source link

You can transform blood into another blood type #30583

Open Armadingus opened 3 years ago

Armadingus commented 3 years ago

Description of issue

By pouring blood into blood of a different type, you can transform it into a different type. For example if I have a beaker of AB+ and pour some B- into it, I will end up with even more AB+. This is an issue because you can trivialize your entire blood refrigerator by putting O- in a large container and dumping the rest of your bank into it.

Difference between expected and actual behavior

I personally don't exactly know what to expect from mixing bloodtypes outside of a living being, but I imagine it certainly won't mix into an universal blood donor type. I'd expect mixing 5u A+ and 5u B+ would be just those two types or mix into some kind of new reagent type, like murky blood.

Steps to reproduce

You will need 3 bloodbags, A+, O- and an empty one, along with a syringe.

  1. Transfer from the O- bag to the empty one
  2. Transfer from the A+ bag to the previously empty one
  3. Notice how all of the blood is O-

Server revision

409ae193c20ac2ed24cbcb4e00f3e4ba3eed9183

DeityLink commented 3 years ago

We really have poor support of mixing blood as things stand and a large overhaul would be necessary. While a blood splatter can have serveral DNAs on it, a beaker of blood can only contain one DNA, one blood type, one blood color, and also one immunity data, and as such adding more blood into it just converts it into more blood.

Only viruses properly merge when mixing blood.

I'm not really sure where to even begin on this rewrite. So many edge cases to take into account.