This commit is contained in:
Zuhayr
2014-10-18 07:52:27 +10:30
parent 08ca8e192a
commit dcca5ccb6e
2 changed files with 14 additions and 12 deletions

View File

@@ -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")

View File

@@ -73,10 +73,7 @@
// 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
else if(prob(20) && owner.dna && blood_incompatible(transplant_data["blood_type"],owner.dna.b_type))
rejecting = 1 rejecting = 1
else else
rejecting++ //Rejection severity increases over time. rejecting++ //Rejection severity increases over time.