diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index de50b48f84e..0ea45f0cbe8 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -36,6 +36,20 @@ species = new /datum/species/diona(src) ..() +/mob/living/carbon/human/kidan/New() + species = new /datum/species/kidan(src) + ..() + +/mob/living/carbon/human/slime/New() + species = new /datum/species/slime(src) + dna = new /datum/dna(null) + dna.mutantrace = "slime" + ..() + +/mob/living/carbon/human/skellington/New() + species = new /datum/species/skellington(src) + ..() + /mob/living/carbon/human/New() if(!species) @@ -62,6 +76,7 @@ dna.real_name = real_name prev_gender = gender // Debug for plural genders + make_organs() make_blood() @@ -1317,6 +1332,9 @@ mob/living/carbon/human/yank_out_object() else see_invisible = SEE_INVISIBLE_LIVING + if(species.name=="Slime People") + dna.mutantrace = "slime" + spawn(0) update_icons() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 26106fcb791..0ef8269f138 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -348,18 +348,38 @@ proc/create_character() spawning = 1 close_spawn_windows() - - var/mob/living/carbon/human/new_character = new(loc) - new_character.lastarea = get_area(loc) - + var/mob/living/carbon/human/new_character var/datum/species/chosen_species if(client.prefs.species) chosen_species = all_species[client.prefs.species] if(chosen_species) if(is_alien_whitelisted(src, client.prefs.species) || !config.usealienwhitelist || !(chosen_species.flags & WHITELISTED) || (client.holder.rights & R_ADMIN) )// Have to recheck admin due to no usr at roundstart. Latejoins are fine though. - new_character.set_species(client.prefs.species) + switch(chosen_species.name) + if("Slime People") + new_character = new /mob/living/carbon/human/slime(loc) + if("Tajaran") + new_character = new /mob/living/carbon/human/tajaran(loc) + if("Unathi") + new_character = new /mob/living/carbon/human/unathi(loc) + if("Skrell") + new_character = new /mob/living/carbon/human/skrell(loc) + if("Diona") + new_character = new /mob/living/carbon/human/diona(loc) + if("Vox") + new_character = new /mob/living/carbon/human/vox(loc) + if("Kidan") + new_character = new /mob/living/carbon/human/kidan(loc) + if("Skellington") + new_character = new /mob/living/carbon/human/skellington(loc) + if("Human") + new_character = new /mob/living/carbon/human(loc) +// new_character.set_species(client.prefs.species) if(chosen_species.language) new_character.add_language(chosen_species.language) + else + new_character = new /mob/living/carbon/human(loc) + new_character.lastarea = get_area(loc) + var/datum/language/chosen_language if(client.prefs.language) diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 5c9c0878e44..c192e2c765c 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -51,11 +51,12 @@ organs_by_name["l_foot"] = new/datum/organ/external/l_foot(organs_by_name["l_leg"]) organs_by_name["r_foot"] = new/datum/organ/external/r_foot(organs_by_name["r_leg"]) - new/datum/organ/internal/heart(src) - new/datum/organ/internal/lungs(src) - new/datum/organ/internal/liver(src) - new/datum/organ/internal/kidney(src) - new/datum/organ/internal/brain(src) + if (species.name!="Slime People") + new/datum/organ/internal/heart(src) + new/datum/organ/internal/lungs(src) + new/datum/organ/internal/liver(src) + new/datum/organ/internal/kidney(src) + new/datum/organ/internal/brain(src) for(var/name in organs_by_name) organs += organs_by_name[name]