diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 7e76cee082..37ebb2a3ee 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -94,6 +94,18 @@ var/global/list/global_egg_types = list( "Xenochimera" = XENOCHIMERA_EGG, "Xenomorph" = XENOMORPH_EGG) +var/global/list/tf_egg_types = list( + "Unathi" = /obj/structure/closet/secure_closet/egg/unathi, + "Tajara" = /obj/structure/closet/secure_closet/egg/tajaran, + "Akula" = /obj/structure/closet/secure_closet/egg/shark, + "Skrell" = /obj/structure/closet/secure_closet/egg/skrell, + "Sergal" = /obj/structure/closet/secure_closet/egg/sergal, + "Human" = /obj/structure/closet/secure_closet/egg/human, + "Slime" = /obj/structure/closet/secure_closet/egg/slime, + "Egg" = /obj/structure/closet/secure_closet/egg, + "Xenochimera" = /obj/structure/closet/secure_closet/egg/scree, + "Xenomorph" = /obj/structure/closet/secure_closet/egg/xenomorph) + /hook/startup/proc/init_vore_datum_ref_lists() var/paths diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 877af5577c..2d00c07991 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -212,8 +212,9 @@ P.update_body() P.updateicon() - if(TFmodify == 3 && P.gender != MALE) + if(TFmodify == 3 && P.gender != MALE && P.identifying_gender != MALE) P.gender = MALE + P.identifying_gender = MALE P << "Your body feels very strange..." owner << "You feel strange as you alter your captive's gender." P.update_body() @@ -258,9 +259,10 @@ P.update_body() P.updateicon() - if(TFmodify == 3 && P.gender != FEMALE) + if(TFmodify == 3 && P.gender != FEMALE && P.identifying_gender != FEMALE) P.f_style = "Shaved" P.gender = FEMALE + P.identifying_gender = FEMALE P << "Your body feels very strange..." owner << "You feel strange as you alter your captive's gender." P.update_body() @@ -328,13 +330,10 @@ P.ear_style = O.ear_style P.species = O.species P.custom_species = O.custom_species - for(var/obj/item/organ/I in P.internal_organs) //This prevents organ rejection + for(var/obj/item/organ/I in P.organs) //This prevents organ rejection I.species = O.species - for(var/obj/item/organ/external/chest/A in O.organs) - for(var/obj/item/organ/external/Z in P.organs) //This makes their limb sprites look correct. - Z.species = O.species - //Z.h_col = A.h_col //We're not making them a replica of the other person. Sprite changes, but they stay the same color. - //Z.s_col = A.s_col + for(var/obj/item/organ/external/Z in P.organs)//Just in case. + Z.sync_colour_to_human(P) P << "You lose sensation of your body, feeling only the warmth of everything around you... " owner << "Your body shifts as you make dramatic changes to your captive's body." P.fixblood() @@ -400,14 +399,11 @@ P.ear_style = O.ear_style P.species = O.species P.custom_species = O.custom_species - for(var/obj/item/organ/I in P.internal_organs) //This prevents organ rejection + for(var/obj/item/organ/I in P.organs) //This prevents organ rejection I.species = O.species - for(var/obj/item/organ/external/chest/A in O.organs) - for(var/obj/item/organ/external/Z in P.organs) //This makes their limb sprites look correct. - Z.species = O.species - Z.h_col = A.h_col - Z.s_col = A.s_col - P << "You lose sensation of your body, feeling only the warmth of everything around you... " + for(var/obj/item/organ/external/Z in P.organs) + Z.sync_colour_to_human(P) + P << "You lose sensation of your body, feeling only the warmth of everything around you... " owner << "Your body shifts as you make dramatic changes to your captive's body." P.fixblood() P.update_hair() @@ -427,168 +423,35 @@ continue if(P.absorbed) //If they're absorbed, don't egg them return + var/mob/living/carbon/human/O = owner - if (O.custom_species) - var/defined_species = O.custom_species - P.tail_style = O.tail_style - P.ear_style = O.ear_style - P.species = O.species - P.custom_species = O.custom_species + P.tail_style = O.tail_style + P.ear_style = O.ear_style + P.species = O.species + for(var/obj/item/organ/I in P.organs) //This prevents organ rejection + I.species = O.species + for(var/obj/item/organ/external/Z in P.organs) + Z.sync_colour_to_human(P) + P << "You lose sensation of your body, feeling only the warmth around you as are you as you're encased in an egg. " + owner << "You shift as you make dramatic changes to your captive's body as you encase them in an egg." + P.fixblood() + P.update_hair() + P.update_body() + P.update_tail_showing() + P.update_eyes() + P.updateicon() + var/egg_path = /obj/structure/closet/secure_closet/egg //Full credit to Aronai for this version of the egg code. + var/egg_name = "Odd egg" - for(var/obj/item/organ/I in P.internal_organs) //This prevents organ rejection - I.species = O.species + if(O.egg_type in tf_egg_types) + egg_path = tf_egg_types[O.egg_type] + egg_name = "[O.egg_type] egg" - for(var/obj/item/organ/external/chest/A in O.organs) - for(var/obj/item/organ/external/Z in P.organs) //This makes their limb sprites look correct. - Z.species = O.species - P << "You lose sensation of your body, feeling only the warmth around you as you're encased in an egg. " - owner << "You shift as you make dramatic changes to your captive's body as you encase them in an egg." - P.fixblood() - P.update_hair() - P.update_body() - P.update_tail_showing() - P.update_eyes() - P.updateicon() - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - for(var/mob/living/M in internal_contents) - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - P.tail_style = O.tail_style - P.ear_style = O.ear_style - P.species = O.species - for(var/obj/item/organ/I in P.internal_organs) //This prevents organ rejection - I.species = O.species - for(var/obj/item/organ/external/chest/A in O.organs) - for(var/obj/item/organ/external/Z in P.organs) //This makes their limb sprites look correct. - Z.species = O.species - P << "You lose sensation of your body, feeling only the warmth around you as are you as you're encased in an egg. " - owner << "You shift as you make dramatic changes to your captive's body as you encase them in an egg." - P.fixblood() - P.update_hair() - P.update_body() - P.update_tail_showing() - P.update_eyes() - P.updateicon() - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "Unathi egg" - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "Tajaran egg" - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "Akula egg" - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "Skrell egg" - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "Segal egg" - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "Human egg" - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "Slime egg" - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Egg" - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Odd egg" //Something went wrong. Since the default is "egg", they shouldn't see this. - internal_contents -= P + var/obj/structure/closet/secure_closet/egg/egg = new egg_path(get_turf(O)) + P.forceMove(egg) + egg.name = egg_name + internal_contents -= P return ///////////////////////////// DM_TRANSFORM_KEEP_GENDER_EGG ///////////////////////////// @@ -598,173 +461,39 @@ continue if(P.absorbed) //If they're absorbed, don't egg them return + var/mob/living/carbon/human/O = owner - if (O.custom_species) - var/defined_species = O.custom_species - P.r_hair = O.r_hair - P.r_facial = O.r_facial - P.g_hair = O.g_hair - P.g_facial = O.g_facial - P.b_hair = O.b_hair - P.b_facial = O.b_facial - P.r_skin = O.r_skin - P.g_skin = O.g_skin - P.b_skin = O.b_skin - P.h_style = O.h_style - P.r_eyes = O.r_eyes - P.g_eyes = O.g_eyes - P.b_eyes = O.b_eyes - P << "Your body tingles all over..." - owner << "You tingle as you make noticeable changes to your captive's body." - P.update_hair() - P.update_body() - P.update_eyes() - P.updateicon() - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P + P.r_hair = O.r_hair + P.r_facial = O.r_facial + P.g_hair = O.g_hair + P.g_facial = O.g_facial + P.b_hair = O.b_hair + P.b_facial = O.b_facial + P.r_skin = O.r_skin + P.g_skin = O.g_skin + P.b_skin = O.b_skin + P.h_style = O.h_style + P.r_eyes = O.r_eyes + P.g_eyes = O.g_eyes + P.b_eyes = O.b_eyes + P << "Your body tingles all over..." + owner << "You tingle as you make noticeable changes to your captive's body." + P.update_hair() + P.update_body() + P.update_eyes() + P.updateicon() + var/egg_path = /obj/structure/closet/secure_closet/egg + var/egg_name = "Odd egg" - else - P.r_hair = O.r_hair - P.r_facial = O.r_facial - P.g_hair = O.g_hair - P.g_facial = O.g_facial - P.b_hair = O.b_hair - P.b_facial = O.b_facial - P.r_skin = O.r_skin - P.g_skin = O.g_skin - P.b_skin = O.b_skin - P.h_style = O.h_style - P.r_eyes = O.r_eyes - P.g_eyes = O.g_eyes - P.b_eyes = O.b_eyes - P << "Your body tingles all over..." - owner << "You tingle as you make noticeable changes to your captive's body." - P.update_hair() - P.update_body() - P.update_eyes() - P.updateicon() - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "Unathi egg" - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "Tajaran egg" - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "Akula egg" - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "Skrell egg" - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "Segal egg" - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "Human egg" - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "Slime egg" - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Egg" - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - J.name = "Xenochimera egg" - P.forceMove(J) - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - J.name = "Xenomorph egg" - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Odd egg" //Something went wrong. Since the default is "egg", they shouldn't see this. - internal_contents -= P + if(O.egg_type in tf_egg_types) + egg_path = tf_egg_types[O.egg_type] + egg_name = "[O.egg_type] egg" + + var/obj/structure/closet/secure_closet/egg/egg = new egg_path(get_turf(O)) + P.forceMove(egg) + egg.name = egg_name + internal_contents -= P return ///////////////////////////// DM_TRANSFORM_REPLICA_EGG ///////////////////////////// @@ -774,205 +503,53 @@ continue if(P.absorbed) //If they're absorbed, don't egg them return + var/mob/living/carbon/human/O = owner - if (O.custom_species) - var/defined_species = O.custom_species - P.r_hair = O.r_hair - P.r_facial = O.r_facial - P.g_hair = O.g_hair - P.g_facial = O.g_facial - P.b_hair = O.b_hair - P.b_facial = O.b_facial - P.r_skin = O.r_skin - P.g_skin = O.g_skin - P.b_skin = O.b_skin - P.tail_style = O.tail_style - P.r_tail = O.r_tail - P.g_tail = O.g_tail - P.b_tail = O.b_tail - P.ear_style = O.ear_style - P.h_style = O.h_style //Since some things are required, like the cobra hood. - P.species = O.species - P.custom_species = O.custom_species - P.r_eyes = O.r_eyes - P.g_eyes = O.g_eyes - P.b_eyes = O.b_eyes + P.r_hair = O.r_hair + P.r_facial = O.r_facial + P.g_hair = O.g_hair + P.g_facial = O.g_facial + P.b_hair = O.b_hair + P.b_facial = O.b_facial + P.r_skin = O.r_skin + P.g_skin = O.g_skin + P.b_skin = O.b_skin + P.tail_style = O.tail_style + P.r_tail = O.r_tail + P.g_tail = O.g_tail + P.b_tail = O.b_tail + P.ear_style = O.ear_style + P.h_style = O.h_style + P.species = O.species + P.custom_species = O.custom_species + P.r_eyes = O.r_eyes + P.g_eyes = O.g_eyes + P.b_eyes = O.b_eyes - for(var/obj/item/organ/I in P.internal_organs) //This prevents organ rejection - I.species = O.species + for(var/obj/item/organ/I in P.organs) //This prevents organ rejection + I.species = O.species + for(var/obj/item/organ/external/Z in P.organs) + Z.sync_colour_to_human(P) + P << "You lose sensation of your body, feeling only the warmth around you as are you as you're encased in an egg. " + owner << "You shift as you make dramatic changes to your captive's body as you encase them in an egg." + P.fixblood() + P.update_hair() + P.update_body() + P.update_tail_showing() + P.update_eyes() + P.updateicon() + var/egg_path = /obj/structure/closet/secure_closet/egg + var/egg_name = "Odd egg" - for(var/obj/item/organ/external/chest/A in O.organs) - for(var/obj/item/organ/external/Z in P.organs) //This makes their limb sprites look correct. - Z.species = O.species - Z.h_col = A.h_col - Z.s_col = A.s_col - P << "You lose sensation of your body, feeling only the warmth around you as you're encased in an egg. " - owner << "You shift as you make dramatic changes to your captive's body as you encase them in an egg." - P.fixblood() - P.update_hair() - P.update_body() - P.update_tail_showing() - P.update_eyes() - P.updateicon() - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - for(var/mob/living/M in internal_contents) - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - P.r_hair = O.r_hair - P.r_facial = O.r_facial - P.g_hair = O.g_hair - P.g_facial = O.g_facial - P.b_hair = O.b_hair - P.b_facial = O.b_facial - P.r_skin = O.r_skin - P.g_skin = O.g_skin - P.b_skin = O.b_skin - P.tail_style = O.tail_style - P.r_tail = O.r_tail - P.g_tail = O.g_tail - P.b_tail = O.b_tail - P.ear_style = O.ear_style - P.h_style = O.h_style - P.species = O.species - P.custom_species = O.custom_species - P.r_eyes = O.r_eyes - P.g_eyes = O.g_eyes - P.b_eyes = O.b_eyes - for(var/obj/item/organ/I in P.internal_organs) //This prevents organ rejection - I.species = O.species - for(var/obj/item/organ/external/chest/A in O.organs) - for(var/obj/item/organ/external/Z in P.organs) //This makes their limb sprites look correct. - Z.species = O.species - Z.h_col = A.h_col - Z.s_col = A.s_col - P << "You lose sensation of your body, feeling only the warmth around you as are you as you're encased in an egg. " - owner << "You shift as you make dramatic changes to your captive's body as you encase them in an egg." - P.fixblood() - P.update_hair() - P.update_body() - P.update_tail_showing() - P.update_eyes() - P.updateicon() - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "Unathi egg" - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "Tajaran egg" - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "Akula egg" - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "Skrell egg" - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "Segal egg" - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "Human egg" - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "Slime egg" - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Egg" - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Odd egg" //Something went wrong. Since the default is "egg", they shouldn't see this. - internal_contents -= P + if(O.egg_type in tf_egg_types) + egg_path = tf_egg_types[O.egg_type] + egg_name = "[O.egg_type] egg" + + var/obj/structure/closet/secure_closet/egg/egg = new egg_path(get_turf(O)) + P.forceMove(egg) + egg.name = egg_name + internal_contents -= P return ///////////////////////////// DM_TRANSFORM_MALE_EGG ///////////////////////////// @@ -982,172 +559,40 @@ continue if(P.absorbed) //If they're absorbed, don't egg them return + var/mob/living/carbon/human/O = owner - if (O.custom_species) - var/defined_species = O.custom_species - P.r_hair = O.r_hair - P.r_facial = O.r_facial - P.g_hair = O.g_hair - P.g_facial = O.g_facial - P.b_hair = O.b_hair - P.b_facial = O.b_facial - P.r_skin = O.r_skin - P.g_skin = O.g_skin - P.b_skin = O.b_skin - P.h_style = O.h_style - P.gender = MALE - P.r_eyes = O.r_eyes - P.g_eyes = O.g_eyes - P.b_eyes = O.b_eyes - P << "Your body feels very strange..." - owner << "Your body feels strange as you alter your captive's gender." - P.update_hair() - P.update_body() - P.updateicon() - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - P.r_hair = O.r_hair - P.r_facial = O.r_facial - P.g_hair = O.g_hair - P.g_facial = O.g_facial - P.b_hair = O.b_hair - P.b_facial = O.b_facial - P.r_skin = O.r_skin - P.g_skin = O.g_skin - P.b_skin = O.b_skin - P.h_style = O.h_style - P.gender = MALE - P.r_eyes = O.r_eyes - P.g_eyes = O.g_eyes - P.b_eyes = O.b_eyes - P << "Your body feels very strange..." - owner << "You feel strange as you alter your captive's gender." - P.update_hair() - P.update_body() - P.updateicon() - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "Unathi egg" - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "Tajaran egg" - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "Akula egg" - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "Skrell egg" - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "Segal egg" - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "Human egg" - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "Slime egg" - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Egg" - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - J.name = "Scree egg" - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - J.name = "Xenomorph egg" - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Odd egg" //Something went wrong. Since the default is "egg", they shouldn't see this. - internal_contents -= P + P.r_hair = O.r_hair + P.r_facial = O.r_facial + P.g_hair = O.g_hair + P.g_facial = O.g_facial + P.b_hair = O.b_hair + P.b_facial = O.b_facial + P.r_skin = O.r_skin + P.g_skin = O.g_skin + P.b_skin = O.b_skin + P.h_style = O.h_style + P.gender = MALE + P.identifying_gender= MALE + P.r_eyes = O.r_eyes + P.g_eyes = O.g_eyes + P.b_eyes = O.b_eyes + P << "Your body feels very strange..." + owner << "You feel strange as you alter your captive's gender." + P.update_hair() + P.update_body() + P.updateicon() + var/egg_path = /obj/structure/closet/secure_closet/egg + var/egg_name = "Odd egg" + + if(O.egg_type in tf_egg_types) + egg_path = tf_egg_types[O.egg_type] + egg_name = "[O.egg_type] egg" + + var/obj/structure/closet/secure_closet/egg/egg = new egg_path(get_turf(O)) + P.forceMove(egg) + egg.name = egg_name + internal_contents -= P return ///////////////////////////// DM_TRANSFORM_FEMALE_EGG ///////////////////////////// @@ -1157,171 +602,40 @@ continue if(P.absorbed) //If they're absorbed, don't egg them return + var/mob/living/carbon/human/O = owner + P.r_hair = O.r_hair + P.r_facial = O.r_facial + P.g_hair = O.g_hair + P.g_facial = O.g_facial + P.b_hair = O.b_hair + P.b_facial = O.b_facial + P.r_skin = O.r_skin + P.g_skin = O.g_skin + P.b_skin = O.b_skin + P.h_style = O.h_style + P.gender = FEMALE + P.identifying_gender= FEMALE + P.r_eyes = O.r_eyes + P.g_eyes = O.g_eyes + P.b_eyes = O.b_eyes + owner << "You feel strange as you alter your captive's gender." + P << "Your body feels very strange..." + P.update_hair() + P.update_body() + P.updateicon() + var/egg_path = /obj/structure/closet/secure_closet/egg + var/egg_name = "Odd egg" - if (O.custom_species) - var/defined_species = O.custom_species - P.r_hair = O.r_hair - P.r_facial = O.r_facial - P.g_hair = O.g_hair - P.g_facial = O.g_facial - P.b_hair = O.b_hair - P.b_facial = O.b_facial - P.r_skin = O.r_skin - P.g_skin = O.g_skin - P.b_skin = O.b_skin - P.h_style = O.h_style - P.gender = FEMALE - P.r_eyes = O.r_eyes - P.g_eyes = O.g_eyes - P.b_eyes = O.b_eyes - P << "Your body feels very strange..." - owner << "You feels strange as you alter your captive's gender." - P.update_hair() - P.update_body() - P.updateicon() - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - P.r_hair = O.r_hair - P.r_facial = O.r_facial - P.g_hair = O.g_hair - P.g_facial = O.g_facial - P.b_hair = O.b_hair - P.b_facial = O.b_facial - P.r_skin = O.r_skin - P.g_skin = O.g_skin - P.b_skin = O.b_skin - P.h_style = O.h_style - P.gender = FEMALE - P.r_eyes = O.r_eyes - P.g_eyes = O.g_eyes - P.b_eyes = O.b_eyes - owner << "You feel strange as you alter your captive's gender." - P << "Your body feels very strange..." - P.update_hair() - P.update_body() - P.updateicon() - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "Unathi egg" - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "Tajaran egg" - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "Akula egg" - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "Skrell egg" - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "Segal egg" - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "Human egg" - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "Slime egg" - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Egg" - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Odd egg" //Something went wrong. Since the default is "egg", they shouldn't see this. - internal_contents -= P + if(O.egg_type in tf_egg_types) + egg_path = tf_egg_types[O.egg_type] + egg_name = "[O.egg_type] egg" + + var/obj/structure/closet/secure_closet/egg/egg = new egg_path(get_turf(O)) + P.forceMove(egg) + egg.name = egg_name + internal_contents -= P return @@ -1332,136 +646,18 @@ continue if(P.absorbed) //If they're absorbed, don't egg them return - var/mob/living/carbon/human/O = owner - if (O.custom_species) - var/defined_species = O.custom_species - P << "You lose sensation of your body, feeling only the warmth around you as you're encased in an egg. " - owner << "Your body shifts as you encase [P] in an egg." - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - for(var/mob/living/M in internal_contents) - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "[defined_species] egg" - J.desc = "This egg has a very unique look to it." - internal_contents -= P - else - P << "You lose sensation of your body, feeling only the warmth around you as you're encased in an egg. " - owner << "Your body shifts as you encase [P] in an egg." - switch(O.egg_type) - if("Unathi") - var/obj/structure/closet/secure_closet/egg/unathi/J = new /obj/structure/closet/secure_closet/egg/unathi(O.loc) - P.forceMove(J) - J.name = "Unathi egg" - internal_contents -= P - if("Tajaran") - var/obj/structure/closet/secure_closet/egg/tajaran/J = new /obj/structure/closet/secure_closet/egg/tajaran(O.loc) - P.forceMove(J) - J.name = "Tajaran egg" - internal_contents -= P - if("Akula") - var/obj/structure/closet/secure_closet/egg/shark/J = new /obj/structure/closet/secure_closet/egg/shark(O.loc) - P.forceMove(J) - J.name = "Akula egg" - internal_contents -= P - if("Skrell") - var/obj/structure/closet/secure_closet/egg/skrell/J = new /obj/structure/closet/secure_closet/egg/skrell(O.loc) - P.forceMove(J) - J.name = "Skrell egg" - internal_contents -= P - if("Sergal") - var/obj/structure/closet/secure_closet/egg/sergal/J = new /obj/structure/closet/secure_closet/egg/sergal(O.loc) - P.forceMove(J) - J.name = "Segal egg" - internal_contents -= P - if("Human") - var/obj/structure/closet/secure_closet/egg/human/J = new /obj/structure/closet/secure_closet/egg/human(O.loc) - P.forceMove(J) - J.name = "Human egg" - internal_contents -= P - if("Slime") - var/obj/structure/closet/secure_closet/egg/slime/J = new /obj/structure/closet/secure_closet/egg/slime(O.loc) - P.forceMove(J) - J.name = "Slime egg" - internal_contents -= P - if("Egg") - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Egg" - internal_contents -= P - if("Xenochimera") - var/obj/structure/closet/secure_closet/egg/scree/J = new /obj/structure/closet/secure_closet/egg/scree(O.loc) - P.forceMove(J) - J.name = "Xenochimera egg" - internal_contents -= P - if("Xenomorph") - var/obj/structure/closet/secure_closet/egg/xenomorph/J = new /obj/structure/closet/secure_closet/egg/xenomorph(O.loc) - P.forceMove(J) - J.name = "Xenomorph egg" - internal_contents -= P - else - var/obj/structure/closet/secure_closet/egg/J = new /obj/structure/closet/secure_closet/egg(O.loc) - P.forceMove(J) - J.name = "Odd egg" //Something went wrong. Since the default is "egg", they shouldn't see this. - internal_contents -= P + var/mob/living/carbon/human/O = owner + P << "You lose sensation of your body, feeling only the warmth around you as you're encased in an egg. " + owner << "Your body shifts as you encase [P] in an egg." + var/egg_path = /obj/structure/closet/secure_closet/egg + var/egg_name = "Odd egg" + + if(O.egg_type in tf_egg_types) + egg_path = tf_egg_types[O.egg_type] + egg_name = "[O.egg_type] egg" + + var/obj/structure/closet/secure_closet/egg/egg = new egg_path(get_turf(O)) + P.forceMove(egg) + egg.name = egg_name + internal_contents -= P