diff --git a/code/modules/mob_spawn/mob_spawn.dm b/code/modules/mob_spawn/mob_spawn.dm index f8a7309bdc6..cc7ba78ae30 100644 --- a/code/modules/mob_spawn/mob_spawn.dm +++ b/code/modules/mob_spawn/mob_spawn.dm @@ -162,8 +162,10 @@ to_chat(user, "Error, you are banned from playing ghost roles!") return if(restricted_species && !(user.client?.prefs?.read_preference(/datum/preference/choiced/species) in restricted_species)) - balloon_alert(user, "incorrect species!") - return + var/incorrect_species = tgui_alert(user, "Current species preference incompatible, proceed with random appearance?", "Incompatible Species", list("Yes", "No")) + if(incorrect_species != "Yes") + return + // SKYRAT EDIT END if(prompt_ghost) var/ghost_role = tgui_alert(usr, "Become [prompt_name]? (Warning, You can no longer be revived!)",, list("Yes", "No")) @@ -188,16 +190,20 @@ /obj/effect/mob_spawn/ghost_role/special(mob/living/spawned_mob, mob/mob_possessor) . = ..() // SKYRAT EDIT ADDITION - if(!random_appearance && mob_possessor && ishuman(spawned_mob) && mob_possessor.client) - var/appearance_choice = tgui_alert(mob_possessor, "Use currently loaded character preferences?", "Appearance Type", list("Yes", "No")) - if(appearance_choice == "Yes") - var/mob/living/carbon/human/spawned_human = spawned_mob - mob_possessor?.client?.prefs?.safe_transfer_prefs_to(spawned_human) - spawned_human.dna.update_dna_identity() - if(quirks_enabled) - SSquirks.AssignQuirks(spawned_human, mob_possessor.client) - if(loadout_enabled) - spawned_human.equip_outfit_and_loadout(outfit, mob_possessor.client.prefs) + //if we can load our own appearance and its not restricted, try + if(!random_appearance && mob_possessor?.client && ishuman(spawned_mob)) + //if we have gotten to this point, they have already waived their species pref.-- they were told they need to use the specific species already + if((restricted_species && (mob_possessor?.client?.prefs?.read_preference(/datum/preference/choiced/species) in restricted_species)) || !restricted_species) + var/appearance_choice = tgui_alert(mob_possessor, "Use currently loaded character preferences?", "Appearance Type", list("Yes", "No")) + if(appearance_choice == "Yes") + var/mob/living/carbon/human/spawned_human = spawned_mob + mob_possessor?.client?.prefs?.safe_transfer_prefs_to(spawned_human) + spawned_human.dna.update_dna_identity() + if(quirks_enabled) + SSquirks.AssignQuirks(spawned_human, mob_possessor.client) + if(loadout_enabled) + spawned_human.equip_outfit_and_loadout(outfit, mob_possessor.client.prefs) + // SKYRAT EDIT END if(mob_possessor) spawned_mob.ckey = mob_possessor.ckey diff --git a/modular_skyrat/modules/mapping/code/mob_spawns.dm b/modular_skyrat/modules/mapping/code/mob_spawns.dm index bc0479b3c7f..24d7e300d0f 100644 --- a/modular_skyrat/modules/mapping/code/mob_spawns.dm +++ b/modular_skyrat/modules/mapping/code/mob_spawns.dm @@ -21,6 +21,8 @@ Or perhaps more exotic customers are in local space...?" important_text = "You are not an antagonist." outfit = /datum/outfit/black_market + quirks_enabled = TRUE + random_appearance = FALSE /datum/outfit/black_market name = "Black Market Trader"