diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 30cab2256e..101390b3d6 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -27,6 +27,13 @@ update_dna() return 1 +/mob/living/carbon/human/proc/change_gender_identity(var/identifying_gender) + if(src.identifying_gender == identifying_gender) + return + + src.identifying_gender = identifying_gender + return 1 + /mob/living/carbon/human/proc/change_hair(var/hair_style) if(!hair_style) return diff --git a/code/modules/mob/living/carbon/human/species/species_shapeshift.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift.dm index 293df93215..1fb7b6c300 100644 --- a/code/modules/mob/living/carbon/human/species/species_shapeshift.dm +++ b/code/modules/mob/living/carbon/human/species/species_shapeshift.dm @@ -130,8 +130,13 @@ var/list/wrapped_species_by_ref = list() if(!new_gender) return + var/new_gender_identity = input("Please select a gender Identity.", "Shapeshifter Gender Identity") as null|anything in list(FEMALE, MALE, NEUTER, PLURAL) + if(!new_gender_identity) + return + visible_message("\The [src]'s form contorts subtly.") change_gender(new_gender) + change_gender_identity(new_gender_identity) /mob/living/carbon/human/proc/shapeshifter_select_shape() diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm index 5eae3da61e..863fb7d029 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -97,17 +97,25 @@ var/datum/species/shapeshifter/promethean/prometheans else H.equip_to_slot_or_del(L, slot_in_backpack) -/datum/species/shapeshifter/promethean/hug(var/mob/living/carbon/human/H,var/mob/living/target) +/datum/species/shapeshifter/promethean/hug(var/mob/living/carbon/human/H, var/mob/living/target) var/t_him = "them" - switch(target.gender) - if(MALE) - t_him = "him" - if(FEMALE) - t_him = "her" + if(ishuman(target)) + var/mob/living/carbon/human/T = target + switch(T.identifying_gender) + if(MALE) + t_him = "him" + if(FEMALE) + t_him = "her" + else + switch(target.gender) + if(MALE) + t_him = "him" + if(FEMALE) + t_him = "her" H.visible_message("\The [H] glomps [target] to make [t_him] feel better!", \ - "You glomps [target] to make [t_him] feel better!") + "You glomp [target] to make [t_him] feel better!") H.apply_stored_shock_to(target) /datum/species/shapeshifter/promethean/handle_death(var/mob/living/carbon/human/H) @@ -171,11 +179,11 @@ var/datum/species/shapeshifter/promethean/prometheans return var/t_she = "She is" - if(H.gender == MALE) + if(H.identifying_gender == MALE) t_she = "He is" - else if(H.gender == PLURAL) + else if(H.identifying_gender == PLURAL) t_she = "They are" - else if(H.gender == NEUTER) + else if(H.identifying_gender == NEUTER) t_she = "It is" switch(stored_shock_by_ref["\ref[H]"])