diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 4a93788b02..09eb397911 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -802,10 +802,18 @@ center_of_mass = list("x"=16, "y"=16) bitesize = 3 -/obj/item/reagent_containers/food/snacks/organ/Initialize() +/obj/item/reagent_containers/food/snacks/organ/Initialize(var/ml, var/obj/item/organ/donor) . = ..() reagents.add_reagent("protein", rand(3,5)) reagents.add_reagent("toxin", rand(1,3)) + if(donor) + appearance = donor + if(donor.reagents?.total_volume) + donor.reagents.trans_to(src, donor.reagents.total_volume) + fingerprints = donor.fingerprints?.Copy() + fingerprintshidden = donor.fingerprintshidden?.Copy() + fingerprintslast = donor.fingerprintslast + qdel(donor) /obj/item/reagent_containers/food/snacks/tofu name = "Tofu" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm b/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm index 5074c18622..cd4fe3e566 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm @@ -104,10 +104,9 @@ if(istype(snack, /obj/item/organ)) var/obj/item/organ/organ = snack - if(organ.meat_type) - snack = new organ.meat_type(src) - qdel(organ) - else if(!istype(snack) || !snack.reagents?.total_volume) + if(organ.meat_type) // Let's assume not having a meat_type means it's not edible. + snack = new /obj/item/reagent_containers/food/snacks/organ(get_turf(snack), snack) + if(!istype(snack) || !snack.reagents?.total_volume) to_chat(src, SPAN_WARNING("\The [snack] doesn't seem edible.")) return diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index dcb2edf3d2..b44627ea47 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -431,20 +431,7 @@ var/global/list/organ_cache = list() blood_splatter(src,B,1) user.drop_from_inventory(src) - var/obj/item/reagent_containers/food/snacks/organ/O = new(get_turf(src)) - O.name = name - O.icon = icon - O.icon_state = icon_state - - // Pass over the blood. - reagents.trans_to(O, reagents.total_volume) - - if(fingerprints) O.fingerprints = fingerprints.Copy() - if(fingerprintshidden) O.fingerprintshidden = fingerprintshidden.Copy() - if(fingerprintslast) O.fingerprintslast = fingerprintslast - - user.put_in_active_hand(O) - qdel(src) + user.put_in_active_hand(new /obj/item/reagent_containers/food/snacks/organ(get_turf(src), src)) /obj/item/organ/attack_self(mob/user as mob)