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