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/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index c138f59a292..57105d04410 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -4,7 +4,7 @@ /datum/species var/name // Species name. - + var/path // Species path var/icobase = 'icons/mob/human_races/r_human.dmi' // Normal icon set. var/deform = 'icons/mob/human_races/r_def_human.dmi' // Mutated icon set. var/eyes = "eyes_s" // Icon for eyes. @@ -38,16 +38,18 @@ var/bloodflags=0 var/bodyflags=0 + /datum/species/human name = "Human" primitive = /mob/living/carbon/monkey - + path = /mob/living/carbon/human flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | CAN_BE_FAT /datum/species/unathi name = "Unathi" icobase = 'icons/mob/human_races/r_lizard.dmi' deform = 'icons/mob/human_races/r_def_lizard.dmi' + path = /mob/living/carbon/human/unathi language = "Sinta'unathi" tail = "sogtail" attack_verb = "scratch" @@ -61,6 +63,7 @@ name = "Tajaran" icobase = 'icons/mob/human_races/r_tajaran.dmi' deform = 'icons/mob/human_races/r_def_tajaran.dmi' + path = /mob/living/carbon/human/tajaran language = "Siik'tajr" tail = "tajtail" attack_verb = "scratch" @@ -83,6 +86,7 @@ name = "Skrell" icobase = 'icons/mob/human_races/r_skrell.dmi' deform = 'icons/mob/human_races/r_def_skrell.dmi' + path = /mob/living/carbon/human/skrell language = "Skrellian" primitive = /mob/living/carbon/monkey/skrell @@ -92,6 +96,7 @@ name = "Vox" icobase = 'icons/mob/human_races/r_vox.dmi' deform = 'icons/mob/human_races/r_def_vox.dmi' + path = /mob/living/carbon/human/vox language = "Vox-pidgin" warning_low_pressure = 50 @@ -110,6 +115,7 @@ name = "Diona" icobase = 'icons/mob/human_races/r_plant.dmi' deform = 'icons/mob/human_races/r_def_plant.dmi' + path = /mob/living/carbon/human/diona language = "Rootspeak" attack_verb = "slash" primitive = /mob/living/carbon/monkey/diona @@ -132,6 +138,7 @@ name = "Skellington" icobase = 'icons/mob/human_races/r_skeleton.dmi' deform = 'icons/mob/human_races/r_skeleton.dmi' // TODO: Need deform. + path = /mob/living/carbon/human/skellington language = "Clatter" attack_verb = "punch" @@ -143,9 +150,22 @@ name = "Kidan" icobase = 'icons/mob/human_races/r_kidan.dmi' deform = 'icons/mob/human_races/r_def_kidan.dmi' + path = /mob/living/carbon/human/kidan language = "Chittin" attack_verb = "slash" flags = WHITELISTED | HAS_CHITTIN bloodflags = BLOOD_GREEN - bodyflags = FEET_CLAWS \ No newline at end of file + bodyflags = FEET_CLAWS + + + +/datum/species/slime + name = "Slime People" + language = "Bubblish" + attack_verb = "bludgeon" + path = /mob/living/carbon/human/slime + primitive = /mob/living/carbon/slime/adult + + flags = WHITELISTED | NO_BREATHE | HAS_LIPS + bloodflags = BLOOD_SLIME \ No newline at end of file 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] diff --git a/code/setup.dm b/code/setup.dm index 2882d005af8..531c3ba09f0 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -743,6 +743,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define BLOOD_GREEN 1 #define BLOOD_BLUE 2 +#define BLOOD_SLIME 4 #define FEET_CLAWS 1 #define FEET_PADDED 2