[MIRROR] Transformation fixes (#11195)

Co-authored-by: SatinIsle <98125273+SatinIsle@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-07-14 23:38:54 -07:00
committed by GitHub
parent 3b735000c2
commit 1906ebf2b0
7 changed files with 16 additions and 11 deletions

View File

@@ -186,7 +186,7 @@
occupantData["name"] = H.name
occupantData["species"] = H.species.name
if(H.custom_species)
if( H.species.name == SPECIES_CUSTOM )
if( H.species.name == SPECIES_CUSTOM || H.species.name == SPECIES_HANNER )
// Fully custom species
occupantData["species"] = "[H.custom_species]"
else

View File

@@ -408,7 +408,7 @@ var/list/preferences_datums = list()
attempt_vr(user.client?.prefs_vr,"load_vore","")
ShowChoices(user)
/datum/preferences/proc/vanity_copy_to(var/mob/living/carbon/human/character, var/copy_name, var/copy_flavour = TRUE, var/copy_ooc_notes = FALSE, var/convert_to_prosthetics = FALSE)
/datum/preferences/proc/vanity_copy_to(var/mob/living/carbon/human/character, var/copy_name, var/copy_flavour = TRUE, var/copy_ooc_notes = FALSE, var/convert_to_prosthetics = FALSE, var/apply_bloodtype = TRUE)
//snowflake copy_to, does not copy anything but the vanity things
//does not check if the name is the same, do that in any proc that calls this proc
/*
@@ -454,7 +454,8 @@ var/list/preferences_datums = list()
character.grad_style= grad_style
character.f_style = f_style
character.grad_style= grad_style
character.dna.b_type= b_type
if(apply_bloodtype)
character.dna.b_type= b_type //This actually just straight up kills whoever uses it if the blood types aren't compatible in TF
character.synth_color = synth_color
var/datum/preference/color/synth_color_color = GLOB.preference_entries[/datum/preference/color/human/synth_color]

View File

@@ -119,7 +119,7 @@ var/static/icon/ingame_hud_med_vr = icon('icons/mob/hud_med_vr.dmi')
//does not really need to happen, that kinda thing will only happen when putting another person's limb onto your own body
return sorted
/mob/living/carbon/human/proc/transform_into_other_human(var/mob/living/carbon/human/character, var/copy_name, var/copy_flavour = TRUE, var/convert_to_prosthetics = FALSE)
/mob/living/carbon/human/proc/transform_into_other_human(var/mob/living/carbon/human/character, var/copy_name, var/copy_flavour = TRUE, var/convert_to_prosthetics = FALSE, var/apply_bloodtype = TRUE)
/*
name, nickname, flavour, OOC notes
gender, sex
@@ -161,7 +161,8 @@ var/static/icon/ingame_hud_med_vr = icon('icons/mob/hud_med_vr.dmi')
grad_style = character.grad_style
f_style = character.f_style
grad_style = character.grad_style
dna?.b_type = character.dna ? character.dna.b_type : DEFAULT_BLOOD_TYPE
if(apply_bloodtype)
dna?.b_type = character.dna ? character.dna.b_type : DEFAULT_BLOOD_TYPE //This actually just straight up kills whoever uses it if the blood types aren't compatible on TF
synth_color = character.synth_color
r_synth = character.r_synth
g_synth = character.g_synth
@@ -180,6 +181,9 @@ var/static/icon/ingame_hud_med_vr = icon('icons/mob/hud_med_vr.dmi')
g_ears3 = character.g_ears3
a_ears = character.a_ears
ear_secondary_style = character.ear_secondary_style
ear_secondary_colors = character.ear_secondary_colors
tail_style = character.tail_style
r_tail = character.r_tail
b_tail = character.b_tail

View File

@@ -593,7 +593,7 @@ var/list/wrapped_species_by_ref = list()
character.visible_message(span_notify("[character] rapidly contorts and shifts!"), span_danger("You begin to reform."))
if(do_after(character, 40,exclusive = TASK_ALL_EXCLUSIVE))
if(character.client.prefs) //Make sure we didn't d/c
character.client.prefs.vanity_copy_to(src, FALSE, flavour, oocnotes, FALSE)
character.client.prefs.vanity_copy_to(src, FALSE, flavour, oocnotes, FALSE, FALSE)
character.visible_message(span_notify("[character] adopts a new form!"), span_danger("You have reformed."))
/mob/living/carbon/human/proc/shapeshifter_copy_body()
@@ -658,5 +658,5 @@ var/list/wrapped_species_by_ref = list()
to_chat(character, span_warning("You lost your grip on [victim]!"))
return
if(character.client) //Make sure we didn't d/c
transform_into_other_human(victim, FALSE, flavour, FALSE)
transform_into_other_human(victim, FALSE, flavour, FALSE, FALSE)
character.visible_message(span_notify("[character] adopts the form of [victim]!"), span_danger("You have reassembled into [victim]."))

View File

@@ -132,7 +132,7 @@
if(do_after(protie, 40,exclusive = TASK_ALL_EXCLUSIVE))
if(protie.client.prefs) //Make sure we didn't d/c
var/obj/item/rig/protean/Rig = species?:OurRig
protie.client.prefs.vanity_copy_to(src, FALSE, flavour, oocnotes, TRUE)
protie.client.prefs.vanity_copy_to(src, FALSE, flavour, oocnotes, TRUE, FALSE)
species?:OurRig = Rig //Get a reference to our Rig and put it back after reassembling
protie.visible_message(span_notify("[protie] adopts a new form!"), span_danger("You have reassembled."))
@@ -201,7 +201,7 @@
return
if(protie.client) //Make sure we didn't d/c
var/obj/item/rig/protean/Rig = species?:OurRig
transform_into_other_human(victim, FALSE, flavour, TRUE)
transform_into_other_human(victim, FALSE, flavour, TRUE, FALSE)
species?:OurRig = Rig //Get a reference to our Rig and put it back after reassembling
protie.visible_message(span_notify("[protie] adopts the form of [victim]!"), span_danger("You have reassembled into [victim]."))

View File

@@ -407,7 +407,7 @@
// Update record from vanity copy of slot if needed
if(from_save_slot)
H.client.prefs.vanity_copy_to(H,FALSE,TRUE,TRUE,FALSE)
H.client.prefs.vanity_copy_to(H,FALSE,TRUE,TRUE,FALSE,TRUE)
for(var/category in H.all_underwear) // No undies
H.hide_underwear[category] = TRUE
H.update_underwear()

View File

@@ -579,7 +579,7 @@
if(can_change(owner, APPEARANCE_ALL_COSMETIC))
if(tgui_alert(owner, "Are you certain you wish to load the currently selected savefile?", "Load Savefile", list("No","Yes")) == "Yes")
if(owner && owner.client) //sanity
owner.client.prefs.vanity_copy_to(owner, FALSE, TRUE, FALSE, FALSE)
owner.client.prefs.vanity_copy_to(owner, FALSE, TRUE, FALSE, FALSE, FALSE)
return TRUE
return TRUE
else