diff --git a/code/citadel/organs.dm b/code/citadel/organs.dm index 86e0319ee1..909a76dd1f 100644 --- a/code/citadel/organs.dm +++ b/code/citadel/organs.dm @@ -9,4 +9,39 @@ /obj/item/organ/stomach/prepare_eat() var/obj/S = ..() S.reagents.add_reagent("sacid", 2) - return S \ No newline at end of file + return S + +/obj/item/organ/penis + name = "penis" + icon_state = "penis" + zone = "groin" + slot = "penis" + w_class = 3 + var/subtype = "human" + var/size = "normal" + var/testicles + +/obj/item/organ/testicles + name = "testicles" + icon_state = "testicles" + zone = "groin" + slot = "testicles" + w_class = 3 + var/size = "normal" + +/obj/item/organ/vagina + name = "vagina" + icon_state = "vagina" + zone = "groin" + slot = "vagina" + w_class = 3 + var/subtype = "human" + var/ovaries + +/obj/item/organ/ovaries + name = "ovaries" + icon_state = "ovaries" + zone = "groin" + slot = "ovaries" + w_class = 3 + var/subtype = "human" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 0a81067d2d..a34d3ea6b8 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -970,12 +970,20 @@ var/list/preferences_datums = list() eye_color = sanitize_hexcolor(new_eyes) if("species") - var/result = input(user, "Select a species", "Species Selection") as null|anything in kpcode_race_getlist(user.ckey) + + var/result = input(user, "Select a species", "Species Selection") as null|anything in roundstart_species + if(result) - var/newtype = species_list[result] + var/newtype = roundstart_species[result] pref_species = new newtype() - //if(mutant_color == "#000") - // mutant_color = pref_species.default_color + //Now that we changed our species, we must verify that the mutant colour is still allowed. + var/temp_hsv = RGBtoHSV(features["mcolor"]) + if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.specflags) && ReadHSV(temp_hsv)[3] < ReadHSV("#7F7F7F")[3])) + features["mcolor"] = pref_species.default_color + if(features["mcolor2"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.specflags) && ReadHSV(temp_hsv)[3] < ReadHSV("#7F7F7F")[3])) + features["mcolor2"] = pref_species.default_color + if(features["mcolor3"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.specflags) && ReadHSV(temp_hsv)[3] < ReadHSV("#7F7F7F")[3])) + features["mcolor3"] = pref_species.default_color if("mutant_color") var/new_mutantcolor = input(user, "Choose your character's primary alien/mutant color:", "Character Preference") as color|null diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index a46a527223..cd5e18698b 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -58,9 +58,9 @@ var/fixed_mut_color = "" //to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"] var/fixed_mut_color2 = "" var/fixed_mut_color3 = "" - var/generic="something" - var/adjective="unknown" - var/restricted=0 //Set to 1 to not allow anyone to choose it, 2 to hide it from the DNA scanner, and text to restrict it to one person + var/generic = "something" + var/adjective = "unknown" + var/restricted = 0 //Set to 1 to not allow anyone to choose it, 2 to hide it from the DNA scanner, and text to restrict it to one person // var/tail=0 // var/taur=0 diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index 4c2f57b38b..e30f0d5f8a 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -6,7 +6,7 @@ name = "Human" id = "human" default_color = "FFFFFF" - specflags = list(EYECOLOR,HAIR,FACEHAIR,LIPS) + specflags = list(MUTCOLORS_PARTSONLY,EYECOLOR,HAIR,FACEHAIR,LIPS) mutant_bodyparts = list("tail_human", "ears") default_features = list("tail_human" = "None", "ears" = "None", "wings" = "None") use_skintones = 1 @@ -783,6 +783,7 @@ var/global/image/plasmaman_on_fire = image("icon"='icons/mob/OnFire.dmi', "icon_ var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged restricted = 2 + roundstart = 0 /datum/species/synth/military name = "Military Synth" @@ -1061,25 +1062,26 @@ SYNDICATE BLACK OPS H.CloseWings() -//CANINE// +//CANID// datum/species/canid name = "Canid" id = "canid" default_color = "4B4B4B" specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "snout") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "body_markings" = "None", "mam_tail" = "Wolf", "mam_ears" = "Wolf", "mam_body_markings" = "Belly") + default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "body_markings" = "None", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "None") attack_verb = "claw" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' + roundstart = 1 /datum/species/canid/spec_death(gibbed, mob/living/carbon/human/H) if(H) H.endTailWag() -//FELINE// +//FELID// -/datum/species/tajaran +/datum/species/felid name = "Felid" id = "felid" default_color = "BCAC9B" @@ -1089,15 +1091,52 @@ datum/species/canid attack_verb = "claw" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' + roundstart = 0 //no sprites yet /datum/species/tajaran/spec_death(gibbed, mob/living/carbon/human/H) if(H) H.endTailWag() //AVIAN// - -//RODENT// +/datum/species/ave + name = "Avian" + id = "avian" + default_color = "BCAC9B" + specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) + mutant_bodyparts = list("beak", "wings", "avian_tail") + default_features = list("beak" = "None", "wings" = "None") + attack_verb = "peck" + attack_sound = 'sound/weapons/slash.ogg' + miss_sound = 'sound/weapons/slashmiss.ogg' + roundstart = 0 //no sprites yet //HERBIVOROUS// //EXOTIC// +/datum/species/xeno + name = "Xenomorph" + id = "xeno" + default_color = "BCAC9B" + say_mod = "hisses" + eyes = "eyes_xeno" + specflags = list(NOGUNS,MUTCOLORS) + mutant_bodyparts = list("xeno_head", "dorsal_tubes") + default_features = list("xeno_head" = "None", "dorsal_tubes" = "None") + attack_verb = "slash" + attack_sound = 'sound/weapons/slash.ogg' + miss_sound = 'sound/weapons/slashmiss.ogg' + burnmod = 1.5 + heatmod = 1.5 + safe_toxins_max = 9999999 + exotic_blood = "xblood" + exotic_damage_overlay = "xeno" + roundstart = 1 + no_equip = list(slot_glasses, slot_back) //MY EYES, THEY'RE GONE + +/datum/reagent/toxin/acid/xenoblood + name = "acid blood" + id = "xblood" + description = "A highly corrosive substance, it is capable of burning through most natural or man-made materials in short order." + color = "#66CC00" + toxpwr = 1 + acidpwr = 12 diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index f6111a93a4..fcd54c9b33 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -69,6 +69,10 @@ /datum/sprite_accessory/hair icon = 'icons/mob/human_face.dmi' // default icon for all hairs +/datum/sprite_accessory/hair/bald //Moved to the top so we can all stop scrolling all the way down. + name = "Bald" + icon_state = null + /datum/sprite_accessory/hair/short name = "Short Hair" // try to capatilize the names please~ icon_state = "hair_a" // you do not need to define _s or _l sub-states, game automatically does this for you @@ -394,10 +398,6 @@ name = "Balding Hair" icon_state = "hair_e" -/datum/sprite_accessory/hair/bald - name = "Bald" - icon_state = null - /datum/sprite_accessory/hair/parted name = "Side Part" icon_state = "hair_part" @@ -1233,7 +1233,7 @@ icon_state = "aqua" /datum/sprite_accessory/tails/human - color_src = HAIR + /datum/sprite_accessory/tails/human/none name = "None" icon_state = "none" @@ -1245,12 +1245,10 @@ /datum/sprite_accessory/tails/human/cat name = "Cat" icon_state = "cat" - color_src = HAIR /datum/sprite_accessory/tails_animated/human/cat name = "Cat" icon_state = "cat" - color_src = HAIR /datum/sprite_accessory/snouts icon = 'icons/mob/mutant_bodyparts.dmi' @@ -1309,7 +1307,6 @@ name = "Cat" icon_state = "cat" hasinner = 1 - color_src = HAIR /datum/sprite_accessory/wings/none name = "None" diff --git a/config/game_options.txt b/config/game_options.txt index b578d34fac..913417a751 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -292,8 +292,8 @@ ROUNDSTART_RACES plasmaman #ROUNDSTART_RACES shadowling ## Races that are better than humans in some ways, but worse in others -ROUNDSTART_RACES jelly -ROUNDSTART_RACES golem +#ROUNDSTART_RACES jelly +#ROUNDSTART_RACES golem #ROUNDSTART_RACES adamantine #ROUNDSTART_RACES plasma #ROUNDSTART_RACES diamond @@ -301,7 +301,7 @@ ROUNDSTART_RACES golem #ROUNDSTART_RACES silver #ROUNDSTART_RACES uranium #ROUNDSTART_RACES abductor -ROUNDSTART_RACES synth +#ROUNDSTART_RACES synth ## Races that are straight upgrades. If these are on expect powergamers to always pick them #ROUNDSTART_RACES skeleton @@ -321,7 +321,7 @@ ASSISTANT_CAP -1 ## Starlight for exterior walls and breaches. Uncomment for starlight! ## This is disabled by default to make testing quicker, should be enabled on production servers or testing servers messing with lighting -STARLIGHT +#STARLIGHT ## Uncomment to bring back old grey suit assistants instead of the now default rainbow colored assistants. #GREY_ASSISTANTS @@ -354,9 +354,9 @@ REACTIONARY_EXPLOSIONS ## Small (3, 7, 14) #BOMBCAP 14 ## Default (5, 10, 20) (recommended if you enable REACTIONARY_EXPLOSIONS above) -BOMBCAP 20 +#BOMBCAP 20 ## LagHell (7, 14, 28) -#BOMBCAP 28 +BOMBCAP 28 ## Lavaland "Budget" diff --git a/icons/mob/dam_human.dmi b/icons/mob/dam_human.dmi index d6d30c87f4..281639b233 100644 Binary files a/icons/mob/dam_human.dmi and b/icons/mob/dam_human.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index ade8e42471..015eee1794 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index 5d2a24d75a..58eb339c57 100644 Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ diff --git a/icons/mob/mam_bodyparts.dmi b/icons/mob/mam_bodyparts.dmi index ad65285540..aa954d3af5 100644 Binary files a/icons/mob/mam_bodyparts.dmi and b/icons/mob/mam_bodyparts.dmi differ