mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 18:02:57 +00:00
Allows pod people to be made using other fluids
This commit is contained in:
@@ -11,12 +11,12 @@
|
|||||||
var/gibs_reagent_id = /datum/reagent/liquidgibs
|
var/gibs_reagent_id = /datum/reagent/liquidgibs
|
||||||
var/gibs_bloodtype = "A+"
|
var/gibs_bloodtype = "A+"
|
||||||
|
|
||||||
/obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases)
|
/obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases, list/blood_data)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(random_icon_states && (icon_state == initial(icon_state)) && length(random_icon_states) > 0)
|
if(random_icon_states && (icon_state == initial(icon_state)) && length(random_icon_states) > 0)
|
||||||
icon_state = pick(random_icon_states)
|
icon_state = pick(random_icon_states)
|
||||||
if(gibs_reagent_id)
|
if(gibs_reagent_id)
|
||||||
reagents.add_reagent(gibs_reagent_id, 5)
|
reagents.add_reagent(gibs_reagent_id, 5, blood_data)
|
||||||
if(gibs_bloodtype)
|
if(gibs_bloodtype)
|
||||||
add_blood_DNA(list("Non-human DNA" = gibs_bloodtype), diseases)
|
add_blood_DNA(list("Non-human DNA" = gibs_bloodtype), diseases)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -31,7 +31,10 @@
|
|||||||
|
|
||||||
var/list/dna_to_add //find the dna to pass to the spawned gibs. do note this can be null if the mob doesn't have blood. add_blood_DNA() has built in null handling.
|
var/list/dna_to_add //find the dna to pass to the spawned gibs. do note this can be null if the mob doesn't have blood. add_blood_DNA() has built in null handling.
|
||||||
var/body_coloring = ""
|
var/body_coloring = ""
|
||||||
|
|
||||||
|
var/list/blood_data_to_add
|
||||||
if(source_mob)
|
if(source_mob)
|
||||||
|
blood_data_to_add = source_mob.get_blood_data()
|
||||||
if(!issilicon(source_mob))
|
if(!issilicon(source_mob))
|
||||||
dna_to_add = blood_dna || source_mob.get_blood_dna_list() //ez pz
|
dna_to_add = blood_dna || source_mob.get_blood_dna_list() //ez pz
|
||||||
if(ishuman(source_mob))
|
if(ishuman(source_mob))
|
||||||
@@ -65,7 +68,7 @@
|
|||||||
if(gibamounts[i])
|
if(gibamounts[i])
|
||||||
for(var/j = 1, j<= gibamounts[i], j++)
|
for(var/j = 1, j<= gibamounts[i], j++)
|
||||||
var/gibType = gibtypes[i]
|
var/gibType = gibtypes[i]
|
||||||
gib = new gibType(loc, diseases)
|
gib = new gibType(loc, diseases, blood_data_to_add)
|
||||||
if(iscarbon(loc))
|
if(iscarbon(loc))
|
||||||
var/mob/living/carbon/digester = loc
|
var/mob/living/carbon/digester = loc
|
||||||
digester.stomach_contents += gib
|
digester.stomach_contents += gib
|
||||||
|
|||||||
@@ -168,9 +168,9 @@
|
|||||||
R.clear_reagents()
|
R.clear_reagents()
|
||||||
R.maximum_volume = fluid_max_volume
|
R.maximum_volume = fluid_max_volume
|
||||||
if(fluid_id)
|
if(fluid_id)
|
||||||
R.add_reagent(fluid_id,amount)
|
R.add_reagent(fluid_id,amount, owner.get_blood_data())
|
||||||
else if(linked_organ?.fluid_id)
|
else if(linked_organ?.fluid_id)
|
||||||
R.add_reagent(linked_organ.fluid_id,amount)
|
R.add_reagent(linked_organ.fluid_id,amount, owner.get_blood_data())
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/obj/item/organ/genital/proc/update_link()
|
/obj/item/organ/genital/proc/update_link()
|
||||||
|
|||||||
@@ -53,31 +53,21 @@
|
|||||||
|
|
||||||
/obj/item/seeds/replicapod/on_reagent_change(changetype)
|
/obj/item/seeds/replicapod/on_reagent_change(changetype)
|
||||||
if(changetype == ADD_REAGENT)
|
if(changetype == ADD_REAGENT)
|
||||||
var/datum/reagent/blood/B = reagents.has_reagent(/datum/reagent/blood)
|
for(var/datum/reagent/R as anything in reagents.reagent_list)
|
||||||
if(B)
|
if(R.data["mind"])
|
||||||
if(B.data["mind"] && B.data["cloneable"])
|
if(R.data["cloneable"])
|
||||||
mind = B.data["mind"]
|
mind = R.data["mind"]
|
||||||
ckey = B.data["ckey"]
|
ckey = R.data["ckey"]
|
||||||
realName = B.data["real_name"]
|
realName = R.data["real_name"]
|
||||||
blood_gender = B.data["gender"]
|
blood_gender = R.data["gender"]
|
||||||
blood_type = B.data["blood_type"]
|
blood_type = R.data["blood_type"]
|
||||||
features = B.data["features"]
|
features = R.data["features"]
|
||||||
factions = B.data["factions"]
|
factions = R.data["factions"]
|
||||||
quirks = B.data["quirks"]
|
quirks = R.data["quirks"]
|
||||||
contains_sample = TRUE
|
contains_sample = TRUE
|
||||||
visible_message("<span class='notice'>The [src] is injected with a fresh blood sample.</span>")
|
visible_message("<span class='notice'>The [src] is injected with a fresh blood sample.</span>")
|
||||||
else
|
else
|
||||||
visible_message("<span class='warning'>The [src] rejects the sample!</span>")
|
visible_message("<span class='warning'>The [src] rejects the sample!</span>")
|
||||||
|
|
||||||
if(!reagents.has_reagent(/datum/reagent/blood))
|
|
||||||
mind = null
|
|
||||||
ckey = null
|
|
||||||
realName = null
|
|
||||||
blood_gender = null
|
|
||||||
blood_type = null
|
|
||||||
features = null
|
|
||||||
factions = null
|
|
||||||
contains_sample = FALSE
|
|
||||||
|
|
||||||
/obj/item/seeds/replicapod/get_analyzer_text()
|
/obj/item/seeds/replicapod/get_analyzer_text()
|
||||||
var/text = ..()
|
var/text = ..()
|
||||||
|
|||||||
@@ -156,7 +156,7 @@
|
|||||||
|
|
||||||
blood_volume -= amount
|
blood_volume -= amount
|
||||||
|
|
||||||
var/list/blood_data = get_blood_data(blood_id)
|
var/list/blood_data = get_blood_data()
|
||||||
|
|
||||||
if(iscarbon(AM))
|
if(iscarbon(AM))
|
||||||
var/mob/living/carbon/C = AM
|
var/mob/living/carbon/C = AM
|
||||||
@@ -177,54 +177,53 @@
|
|||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
|
|
||||||
/mob/living/proc/get_blood_data(blood_id)
|
/mob/living/proc/get_blood_data()
|
||||||
return
|
return
|
||||||
|
|
||||||
/mob/living/carbon/get_blood_data(blood_id)
|
/mob/living/carbon/get_blood_data()
|
||||||
if(blood_id == /datum/reagent/blood || /datum/reagent/blood/jellyblood) //actual blood reagent
|
var/blood_data = list()
|
||||||
var/blood_data = list()
|
//set the blood data
|
||||||
//set the blood data
|
blood_data["donor"] = src
|
||||||
blood_data["donor"] = src
|
blood_data["viruses"] = list()
|
||||||
blood_data["viruses"] = list()
|
|
||||||
|
|
||||||
for(var/thing in diseases)
|
for(var/thing in diseases)
|
||||||
var/datum/disease/D = thing
|
var/datum/disease/D = thing
|
||||||
blood_data["viruses"] += D.Copy()
|
blood_data["viruses"] += D.Copy()
|
||||||
|
|
||||||
blood_data["blood_DNA"] = dna.unique_enzymes
|
blood_data["blood_DNA"] = dna.unique_enzymes
|
||||||
blood_data["bloodcolor"] = dna.species.exotic_blood_color
|
blood_data["bloodcolor"] = dna.species.exotic_blood_color
|
||||||
if(disease_resistances && disease_resistances.len)
|
if(disease_resistances && disease_resistances.len)
|
||||||
blood_data["resistances"] = disease_resistances.Copy()
|
blood_data["resistances"] = disease_resistances.Copy()
|
||||||
var/list/temp_chem = list()
|
var/list/temp_chem = list()
|
||||||
for(var/datum/reagent/R in reagents.reagent_list)
|
for(var/datum/reagent/R in reagents.reagent_list)
|
||||||
temp_chem[R.type] = R.volume
|
temp_chem[R.type] = R.volume
|
||||||
blood_data["trace_chem"] = list2params(temp_chem)
|
blood_data["trace_chem"] = list2params(temp_chem)
|
||||||
if(mind)
|
if(mind)
|
||||||
blood_data["mind"] = mind
|
blood_data["mind"] = mind
|
||||||
else if(last_mind)
|
else if(last_mind)
|
||||||
blood_data["mind"] = last_mind
|
blood_data["mind"] = last_mind
|
||||||
if(ckey)
|
if(ckey)
|
||||||
blood_data["ckey"] = ckey
|
blood_data["ckey"] = ckey
|
||||||
else if(last_mind)
|
else if(last_mind)
|
||||||
blood_data["ckey"] = ckey(last_mind.key)
|
blood_data["ckey"] = ckey(last_mind.key)
|
||||||
|
|
||||||
if(!suiciding)
|
if(!suiciding)
|
||||||
blood_data["cloneable"] = 1
|
blood_data["cloneable"] = 1
|
||||||
blood_data["blood_type"] = dna.blood_type
|
blood_data["blood_type"] = dna.blood_type
|
||||||
blood_data["gender"] = gender
|
blood_data["gender"] = gender
|
||||||
blood_data["real_name"] = real_name
|
blood_data["real_name"] = real_name
|
||||||
blood_data["features"] = dna.features
|
blood_data["features"] = dna.features
|
||||||
blood_data["factions"] = faction
|
blood_data["factions"] = faction
|
||||||
blood_data["quirks"] = list()
|
blood_data["quirks"] = list()
|
||||||
for(var/V in roundstart_quirks)
|
for(var/V in roundstart_quirks)
|
||||||
var/datum/quirk/T = V
|
var/datum/quirk/T = V
|
||||||
blood_data["quirks"] += T.type
|
blood_data["quirks"] += T.type
|
||||||
blood_data["changeling_loudness"] = 0
|
blood_data["changeling_loudness"] = 0
|
||||||
if(mind)
|
if(mind)
|
||||||
var/datum/antagonist/changeling/ling = mind.has_antag_datum(/datum/antagonist/changeling)
|
var/datum/antagonist/changeling/ling = mind.has_antag_datum(/datum/antagonist/changeling)
|
||||||
if(istype(ling))
|
if(istype(ling))
|
||||||
blood_data["changeling_loudness"] = ling.loudfactor
|
blood_data["changeling_loudness"] = ling.loudfactor
|
||||||
return blood_data
|
return blood_data
|
||||||
|
|
||||||
//get the id of the substance this mob use as blood.
|
//get the id of the substance this mob use as blood.
|
||||||
/mob/proc/get_blood_id()
|
/mob/proc/get_blood_id()
|
||||||
|
|||||||
Reference in New Issue
Block a user