mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 11:43:31 +00:00
Fixes #6763
This commit is contained in:
@@ -232,7 +232,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
|
|||||||
|
|
||||||
if (!injected || !our)
|
if (!injected || !our)
|
||||||
return
|
return
|
||||||
if(blood_incompatible(injected.data["blood_type"],our.data["blood_type"]) )
|
if(blood_incompatible(injected.data["blood_type"],our.data["blood_type"],injected.data["species"],our.data["species"]) )
|
||||||
reagents.add_reagent("toxin",amount * 0.5)
|
reagents.add_reagent("toxin",amount * 0.5)
|
||||||
reagents.update_total()
|
reagents.update_total()
|
||||||
else
|
else
|
||||||
@@ -250,13 +250,18 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
|
|||||||
return D
|
return D
|
||||||
return res
|
return res
|
||||||
|
|
||||||
proc/blood_incompatible(donor,receiver)
|
proc/blood_incompatible(donor,receiver,donor_species,receiver_species)
|
||||||
if(!donor || !receiver) return 0
|
if(!donor || !receiver) return 0
|
||||||
var
|
|
||||||
donor_antigen = copytext(donor,1,lentext(donor))
|
if(donor_species && receiver_species)
|
||||||
receiver_antigen = copytext(receiver,1,lentext(receiver))
|
if(donor_species != receiver_species)
|
||||||
donor_rh = (findtext(donor,"+")>0)
|
return 1
|
||||||
receiver_rh = (findtext(receiver,"+")>0)
|
|
||||||
|
var/donor_antigen = copytext(donor,1,lentext(donor))
|
||||||
|
var/receiver_antigen = copytext(receiver,1,lentext(receiver))
|
||||||
|
var/donor_rh = (findtext(donor,"+")>0)
|
||||||
|
var/receiver_rh = (findtext(receiver,"+")>0)
|
||||||
|
|
||||||
if(donor_rh && !receiver_rh) return 1
|
if(donor_rh && !receiver_rh) return 1
|
||||||
switch(receiver_antigen)
|
switch(receiver_antigen)
|
||||||
if("A")
|
if("A")
|
||||||
|
|||||||
@@ -73,11 +73,8 @@
|
|||||||
// Process unsuitable transplants. TODO: consider some kind of
|
// Process unsuitable transplants. TODO: consider some kind of
|
||||||
// immunosuppressant that changes transplant data to make it match.
|
// immunosuppressant that changes transplant data to make it match.
|
||||||
if(transplant_data)
|
if(transplant_data)
|
||||||
if(!rejecting) //Should this transplant reject?
|
if(!rejecting && prob(20) && owner.dna && blood_incompatible(transplant_data["blood_type"],owner.dna.b_type,owner.species,transplant_data["species"]))
|
||||||
if(owner.species != transplant_data["species"]) //Nope.
|
rejecting = 1
|
||||||
rejecting = 1
|
|
||||||
else if(prob(20) && owner.dna && blood_incompatible(transplant_data["blood_type"],owner.dna.b_type))
|
|
||||||
rejecting = 1
|
|
||||||
else
|
else
|
||||||
rejecting++ //Rejection severity increases over time.
|
rejecting++ //Rejection severity increases over time.
|
||||||
if(rejecting % 10 == 0) //Only fire every ten rejection ticks.
|
if(rejecting % 10 == 0) //Only fire every ten rejection ticks.
|
||||||
|
|||||||
Reference in New Issue
Block a user