diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 3c7582b8164..bf18e430407 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -38,8 +38,18 @@ proc/random_facial_hair_style(gender, species = "Human")
return f_style
proc/random_name(gender, species = "Human")
- if(gender==FEMALE) return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names))
- else return capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names))
+
+ var/datum/species/current_species
+ if(species)
+ current_species = all_species[species]
+
+ if(!current_species)
+ if(gender==FEMALE)
+ return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names))
+ else
+ return capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names))
+ else
+ return current_species.get_random_name(gender)
proc/random_skin_tone()
switch(pick(60;"caucasian", 15;"afroamerican", 10;"african", 10;"latino", 5;"albino"))
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index bde0a469f22..68009eec609 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -84,7 +84,10 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
/obj/machinery/hologram/holopad/hear_talk(mob/living/M, text, verb, datum/language/speaking)
if(M&&hologram&&master)//Master is mostly a safety in case lag hits or something.
if(!master.say_understands(M, speaking))//The AI will be able to understand most mobs talking through the holopad.
- text = stars(text)
+ if(speaking)
+ text = speaking.scramble(text)
+ else
+ text = stars(text)
var/name_used = M.GetVoice()
//This communication is imperfect because the holopad "filters" voices and is only designed to connect to the master only.
var/rendered
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index c913dcf5696..fcbcb18fd3f 100755
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -73,6 +73,7 @@ datum/preferences
var/g_eyes = 0 //Eye color
var/b_eyes = 0 //Eye color
var/species = "Human" //Species datum to use.
+ var/species_preview //Used for the species selection window.
var/language = "None" //Secondary language
var/list/gear //Custom/fluff item loadout.
@@ -138,7 +139,7 @@ datum/preferences
if(load_character())
return
gender = pick(MALE, FEMALE)
- real_name = random_name(gender)
+ real_name = random_name(gender,species)
gear = list()
@@ -302,7 +303,7 @@ datum/preferences
dat += "
| Body "
dat += "(®)"
dat += " " - dat += "Species: [species] " + dat += "Species: [species] " dat += "Secondary Language: [language] " dat += "Blood Type: [b_type] " dat += "Skin Tone: [-s_tone + 35]/220 " @@ -588,6 +589,62 @@ datum/preferences user << browse(HTML, "window=records;size=350x300") return +/datum/preferences/proc/SetSpecies(mob/user) + if(!species_preview || !(species_preview in all_species)) + species_preview = "Human" + var/datum/species/current_species = all_species[species_preview] + var/dat = "" + dat += " [current_species.name] \[change\]" + dat += "
" + + var/restricted + if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it! + if((current_species.flags & IS_WHITELISTED) && !is_alien_whitelisted(user,current_species)) + restricted = 1 + if(restricted) + dat += "You cannot play as this species.If you wish to be whitelisted, you can make an application post on the forums." + else + dat += "\[select\]" + dat += " \ + While the central Sol government maintains control of its far-flung people, powerful corporate \ + interests, rampant cyber and bio-augmentation and secretive factions make life on most human \ + worlds tumultous at best." flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR - //If you wanted to add a species-level ability: - /*abilities = list(/client/proc/test_ability)*/ - /datum/species/unathi name = "Unathi" name_plural = "Unathi" @@ -225,6 +232,12 @@ darksight = 3 gluttonous = 1 + blurb = "A heavily reptillian species, Unathi (or 'Sinta as they call themselves) hail from the \ + Uuosa-Eso system, which roughly translates to 'burning mother'. Coming from a harsh, radioactive \ + desert planet, they mostly hold ideals of honesty, virtue, martial combat and bravery above all \ + else, frequently even their own lives. They prefer warmer temperatures than most species and \ + their native tongue is a heavy hissing laungage called Sinta'Unathi." + cold_level_1 = 280 //Default 260 - Lower is better cold_level_2 = 220 //Default 200 cold_level_3 = 130 //Default 120 @@ -249,6 +262,11 @@ tail = "tajtail" unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp) darksight = 8 + blurb = "The Tajaran race is a species of feline-like bipeds hailing from the planet of Ahdomai in the \ + S'randarr system. They have been brought up into the space age by the Humans and Skrell, and have been \ + influenced heavily by their long history of Slavemaster rule. They have a structured, clan-influenced way \ + of family and politics. They prefer colder environments, and speak a variety of languages, mostly Siik'Maas, \ + using unique inflections their mouths form." cold_level_1 = 200 //Default 260 cold_level_2 = 140 //Default 200 @@ -274,6 +292,11 @@ language = "Skrellian" primitive = /mob/living/carbon/monkey/skrell unarmed_types = list(/datum/unarmed_attack/punch) + blurb = "An amphibious species, Skrell come from the star system known as Qerr'Vallis, which translates to 'Star of \ + the royals' or 'Light of the Crown'. Skrell are a highly advanced and logical race who live under the rule \ + of the Qerr'Katish, a caste within their society which keeps the empire of the Skrell running smoothly. Skrell are \ + herbivores on the whole and tend to be co-operative with the other species of the galaxy, although they rarely reveal \ + the secrets of their empire to their allies." flags = IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR @@ -291,6 +314,12 @@ language = "Galactic Common" unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/strong) rarity_value = 2 + blurb = "The Vox are the broken remnants of a once-proud race, now reduced to little more than \ + scavenging vermin who prey on isolated stations, ships or planets to keep their own ancient arkships \ + alive. They are four to five feet tall, reptillian, beaked, tailed and quilled; human crews often \ + refer to them as 'shitbirds' for their violent and offensive nature, as well as their horrible \ + smell. Most humans will never meet a Vox raider, instead learning of this insular species through \ + dealing with their traders and merchants; those that do rarely enjoy the experience." speech_sounds = list('sound/voice/shriek1.ogg') speech_chance = 20 @@ -329,6 +358,10 @@ "stack" = /datum/organ/internal/stack/vox ) +/datum/species/vox/get_random_name(var/gender) + var/datum/language/species_language = all_languages[default_language] + return species_language.get_random_name(gender) + /datum/species/vox/armalis name = "Vox Armalis" name_plural = "Vox" @@ -380,6 +413,13 @@ primitive = /mob/living/carbon/alien/diona slowdown = 7 rarity_value = 3 + blurb = "Commonly referred to (erroneously) as 'plant people', the Dionaea are a strange space-dwelling collective \ + species hailing from Epsilon Ursae Minoris. Each 'diona' is a cluster of numerous cat-sized organisms called nymphs; \ + there is no effective upper limit to the number that can fuse in gestalt, and reports exist of the Epsilon Ursae \ + Minoris primary being ringed with a cloud of singing space-station-sized entities. The Dionaea coexist peacefully with \ + all known species, especially the Skrell. Their communal mind makes them slow to react, and they have difficulty understanding \ + even the simplest concepts of other minds. Their alien physiology allows them survive happily off a diet of nothing but light, \ + water and other radiation." has_organ = list( "nutrient channel" = /datum/organ/internal/diona/nutrients, diff --git a/code/stylesheet.dm b/code/stylesheet.dm index 2d9020e0f07..c722d86dd5a 100644 --- a/code/stylesheet.dm +++ b/code/stylesheet.dm @@ -79,6 +79,7 @@ h1.alert, h2.alert {color: #000000;} .tajaran_signlang {color: #941C1C;} .skrell {color: #00CED1;} .soghun {color: #228B22;} +.solcom {color: #22228B;} .changeling {color: #800080;} .vox {color: #AA00AA;} .rough {font-family: "Trebuchet MS", cursive, sans-serif;} diff --git a/icons/mob/human_races/r_diona.dmi b/icons/mob/human_races/r_diona.dmi index c09acaa9538..91757faf7ca 100644 Binary files a/icons/mob/human_races/r_diona.dmi and b/icons/mob/human_races/r_diona.dmi differ diff --git a/icons/mob/human_races/r_human.dmi b/icons/mob/human_races/r_human.dmi index 8cafd92ce11..7ddd9453810 100644 Binary files a/icons/mob/human_races/r_human.dmi and b/icons/mob/human_races/r_human.dmi differ diff --git a/icons/mob/human_races/r_lizard.dmi b/icons/mob/human_races/r_lizard.dmi index 41b275beef2..85208cff785 100644 Binary files a/icons/mob/human_races/r_lizard.dmi and b/icons/mob/human_races/r_lizard.dmi differ diff --git a/icons/mob/human_races/r_plant.dmi b/icons/mob/human_races/r_plant.dmi deleted file mode 100644 index ef55275d5a9..00000000000 Binary files a/icons/mob/human_races/r_plant.dmi and /dev/null differ diff --git a/icons/mob/human_races/r_skrell.dmi b/icons/mob/human_races/r_skrell.dmi index 913474d3b6f..bb9f0fcfed6 100644 Binary files a/icons/mob/human_races/r_skrell.dmi and b/icons/mob/human_races/r_skrell.dmi differ diff --git a/icons/mob/human_races/r_tajaran.dmi b/icons/mob/human_races/r_tajaran.dmi index 7a7419df414..69fa8ce5c0b 100644 Binary files a/icons/mob/human_races/r_tajaran.dmi and b/icons/mob/human_races/r_tajaran.dmi differ diff --git a/icons/mob/human_races/r_vox.dmi b/icons/mob/human_races/r_vox.dmi index 6aada937c25..f212822aafb 100644 Binary files a/icons/mob/human_races/r_vox.dmi and b/icons/mob/human_races/r_vox.dmi differ |