diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 84ee98948d2..02113fbf3fa 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -37,9 +37,9 @@ 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))
+proc/random_name(gender, speciesName = "Human")
+ var/datum/species/S = all_species[speciesName]
+ return S.makeName(gender)
proc/random_skin_tone()
switch(pick(60;"caucasian", 15;"afroamerican", 10;"african", 10;"latino", 5;"albino"))
diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm
index 7aa1d28f7ea..e6c743ec3d9 100644
--- a/code/game/gamemodes/vampire/vampire_powers.dm
+++ b/code/game/gamemodes/vampire/vampire_powers.dm
@@ -195,8 +195,8 @@
var/datum/mind/M = usr.mind
if(!M) return
if(M.current.vampire_power(50, 0))
- M.current.visible_message("[M.current] transforms!")
- M.current.client.prefs.real_name = random_name(M.current.gender)
+ M.current.visible_message("[M.current.name] transforms!")
+ M.current.client.prefs.real_name = M.current.generate_name() //random_name(M.current.gender)
M.current.client.prefs.randomize_appearance_for(M.current)
M.current.regenerate_icons()
M.current.remove_vampire_blood(50)
diff --git a/code/game/gamemodes/vox/heist/heist.dm b/code/game/gamemodes/vox/heist/heist.dm
index b5801a2f59d..5e531764975 100644
--- a/code/game/gamemodes/vox/heist/heist.dm
+++ b/code/game/gamemodes/vox/heist/heist.dm
@@ -82,22 +82,13 @@ VOX HEIST ROUNDTYPE
raider.current.loc = raider_spawn[index]
index++
- var/sounds = rand(2,8)
- var/i = 0
- var/newname = ""
-
- while(i<=sounds)
- i++
- newname += pick(list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah"))
var/mob/living/carbon/human/vox = raider.current
-
- vox.real_name = capitalize(newname)
- vox.name = vox.real_name
raider.name = vox.name
vox.age = rand(12,20)
vox.dna.mutantrace = "vox"
vox.set_species("Vox")
+ vox.generate_name()
vox.languages = list() // Removing language from chargen.
vox.flavor_text = ""
vox.add_language("Vox-pidgin")
@@ -144,7 +135,8 @@ VOX HEIST ROUNDTYPE
objs += new /datum/objective/heist/inviolate_crew
objs += new /datum/objective/heist/inviolate_death */
- raid_objectives += new /datum/objective/vox/heist/kidnap
+ if(prob(25))
+ raid_objectives += new /datum/objective/vox/heist/kidnap
raid_objectives += new /datum/objective/vox/heist/loot
raid_objectives += new /datum/objective/vox/heist/salvage
raid_objectives += new /datum/objective/vox/inviolate_crew
@@ -272,4 +264,4 @@ datum/game_mode/proc/auto_declare_completion_heist()
if(raider.current)
if(istype(raider.current,/mob/living/carbon/human) && raider.current.stat != 2)
return 1
- return 0
\ No newline at end of file
+ return 0
diff --git a/code/game/gamemodes/vox/trade/trade.dm b/code/game/gamemodes/vox/trade/trade.dm
index 0cae3274aac..666f76d1342 100644
--- a/code/game/gamemodes/vox/trade/trade.dm
+++ b/code/game/gamemodes/vox/trade/trade.dm
@@ -82,22 +82,13 @@ VOX TRADE ROUNDTYPE
trader.current.loc = trader_spawn[index]
index++
- var/sounds = rand(2,8)
- var/i = 0
- var/newname = ""
-
- while(i<=sounds)
- i++
- newname += pick(list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah"))
-
var/mob/living/carbon/human/vox = trader.current
- vox.real_name = capitalize(newname)
- vox.name = vox.real_name
trader.name = vox.name
vox.age = rand(12,20)
vox.dna.mutantrace = "vox"
vox.set_species("Vox")
+ vox.generate_name()
vox.languages = list() // Removing language from chargen.
vox.flavor_text = ""
vox.add_language("Vox-pidgin")
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index 84bffec64de..0fae0047ade 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -498,20 +498,13 @@ client/proc/one_click_antag()
new_vox.h_style = "Short Vox Quills"
new_vox.regenerate_icons()
- var/sounds = rand(2,10)
- var/i = 0
- var/newname = ""
-
- while(i<=sounds)
- i++
- newname += pick(list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah"))
-
- new_vox.real_name = capitalize(newname)
- new_vox.name = new_vox.real_name
new_vox.age = rand(12,20)
new_vox.dna.ready_dna(new_vox) // Creates DNA.
new_vox.dna.mutantrace = "vox"
+ new_vox.set_species("Vox") // Actually makes the vox! How about that.
+ new_vox.generate_name()
+ new_vox.add_language("Vox-pidgin")
new_vox.mind_initialize()
new_vox.mind.assigned_role = "MODE"
new_vox.mind.special_role = "Vox Raider"
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index cbcbdae1a3e..f364d9587d3 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -912,7 +912,7 @@ datum/preferences
if("random")
switch(href_list["preference"])
if("name")
- real_name = random_name(gender)
+ real_name = random_name(gender,species)
if("age")
age = rand(AGE_MIN, AGE_MAX)
if("hair")
@@ -1359,7 +1359,7 @@ datum/preferences
proc/copy_to(mob/living/carbon/human/character, safety = 0)
if(be_random_name)
- real_name = random_name(gender)
+ real_name = random_name(gender,species)
if(config.humans_need_surnames)
var/firstspace = findtext(real_name, " ")
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 56be839665e..c79289fef07 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -178,7 +178,7 @@
if(isnull(species)) species = "Human"
if(isnull(language)) language = "None"
if(isnull(nanotrasen_relation)) nanotrasen_relation = initial(nanotrasen_relation)
- if(!real_name) real_name = random_name(gender)
+ if(!real_name) real_name = random_name(gender,species)
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
gender = sanitize_gender(gender)
age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age))
diff --git a/code/modules/events/heist.dm b/code/modules/events/heist.dm
new file mode 100644
index 00000000000..c2f38447ac1
--- /dev/null
+++ b/code/modules/events/heist.dm
@@ -0,0 +1,241 @@
+/*
+VOX HEIST ROUNDTYPE
+*/
+
+#define MAX_VOX_KILLS 10 //Number of kills during the round before the Inviolate is broken.
+ //Would be nice to use vox-specific kills but is currently not feasible.
+
+var/global/vox_kills = 0 //Used to check the Inviolate.
+var/global/vox_sent=0
+
+var/global/list/datum/mind/raiders = list() //Antags.
+
+/datum/event/heist
+ var/list/raid_objectives = list() //Raid objectives.
+ var/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' objective.
+
+ announceWhen = 600
+ oneShot = 1
+
+ var/required_candidates = 4
+ var/max_candidates = 6
+ var/successSpawn = 0 //So we don't make a command report if nothing gets spawned.
+
+/datum/event/heist/setup()
+ announceWhen = rand(announceWhen, announceWhen + 50)
+ sent_aliens_to_station = 1
+
+/datum/event/heist/announce()
+ return
+
+
+/datum/event/heist/start()
+
+ if(!..())
+ return 0
+
+ var/list/candidates = get_candidates(BE_RAIDER)
+ var/raider_num = 0
+
+ //Check that we have enough vox.
+ if(candidates.len < required_candidates)
+ return 0
+ else if(candidates.len < max_candidates)
+ raider_num = candidates.len
+ else
+ raider_num = max_candidates
+
+ //Grab candidates randomly until we have enough.
+ while(raider_num > 0)
+ var/datum/mind/new_raider = pick(candidates)
+ raiders += new_raider
+ candidates -= new_raider
+ raider_num--
+
+ for(var/datum/mind/raider in raiders)
+ raider.assigned_role = "MODE"
+ raider.special_role = "Vox Raider"
+
+ //Build a list of spawn points.
+ var/list/turf/raider_spawn = list()
+
+ for(var/obj/effect/landmark/L in landmarks_list)
+ if(L.name == "voxstart")
+ raider_spawn += get_turf(L)
+ del(L)
+ continue
+
+ //Generate objectives for the group.
+ raid_objectives = forge_vox_objectives()
+
+ var/index = 1
+
+ //Spawn the vox!
+ for(var/datum/mind/raider in raiders)
+
+ if(index > raider_spawn.len)
+ index = 1
+
+ raider.current.loc = raider_spawn[index]
+ index++
+
+ var/mob/living/carbon/human/vox = raider.current
+ vox.age = rand(12,20)
+ vox.dna.mutantrace = "vox"
+ vox.set_species("Vox")
+ vox.generate_name()
+ vox.languages = list() // Removing language from chargen.
+ vox.flavor_text = ""
+ vox.add_language("Vox-pidgin")
+ vox.h_style = "Short Vox Quills"
+ vox.f_style = "Shaved"
+ for(var/datum/organ/external/limb in vox.organs)
+ limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT)
+ vox.equip_vox_raider()
+ vox.regenerate_icons()
+
+ raider.objectives = raid_objectives
+ greet_vox(raider)
+
+ vox_sent=1
+
+/datum/event/heist/proc/is_raider_crew_safe()
+
+ if(cortical_stacks.len == 0)
+ return 0
+
+ for(var/obj/stack in cortical_stacks)
+ if (get_area(stack) != locate(/area/shuttle/vox/station))
+ return 0
+ return 1
+
+/datum/event/heist/proc/is_raider_crew_alive()
+
+ for(var/datum/mind/raider in raiders)
+ if(raider.current)
+ if(istype(raider.current,/mob/living/carbon/human) && raider.current.stat != 2)
+ return 1
+ return 0
+
+/datum/event/heist/proc/forge_vox_objectives()
+
+
+ //Commented out for testing.
+ /* var/i = 1
+ var/max_objectives = pick(2,2,2,3,3)
+ var/list/objs = list()
+ while(i<= max_objectives)
+ var/list/goals = list("kidnap","loot","salvage")
+ var/goal = pick(goals)
+ var/datum/objective/heist/O
+
+ if(goal == "kidnap")
+ goals -= "kidnap"
+ O = new /datum/objective/heist/kidnap()
+ else if(goal == "loot")
+ O = new /datum/objective/heist/loot()
+ else
+ O = new /datum/objective/heist/salvage()
+ O.choose_target()
+ objs += O
+
+ i++
+
+ //-All- vox raids have these two objectives. Failing them loses the game.
+ objs += new /datum/objective/heist/inviolate_crew
+ objs += new /datum/objective/heist/inviolate_death */
+
+ if(prob(25)) // This is an asspain.
+ raid_objectives += new /datum/objective/heist/kidnap
+ raid_objectives += new /datum/objective/heist/loot
+ raid_objectives += new /datum/objective/heist/salvage
+ raid_objectives += new /datum/objective/heist/inviolate_crew
+ raid_objectives += new /datum/objective/heist/inviolate_death
+
+ for(var/datum/objective/heist/O in raid_objectives)
+ O.choose_target()
+
+ return raid_objectives
+
+/datum/event/heist/proc/greet_vox(var/datum/mind/raider)
+ raider.current << {"\blue You are a Vox Raider, fresh from the Shoal!
+The Vox are a race of cunning, sharp-eyed nomadic raiders and traders endemic to Tau Ceti and much of the unexplored galaxy. You and the crew have come to the [station_name()] for plunder, trade or both.
+Vox are cowardly and will flee from larger groups, but corner one or find them en masse and they are vicious.
+Use :V to voxtalk, :H to talk on your encrypted channel, and don't forget to turn on your nitrogen internals!"}
+ var/obj_count = 1
+ for(var/datum/objective/objective in raider.objectives)
+ raider.current << "Objective #[obj_count]: [objective.explanation_text]"
+ obj_count++
+
+
+/datum/event/heist/proc/declare_completion()
+
+ //No objectives, go straight to the feedback.
+ if(!(raid_objectives.len)) return ..()
+
+ var/win_type = "Major"
+ var/win_group = "Crew"
+ var/win_msg = ""
+
+ var/success = raid_objectives.len
+
+ //Decrease success for failed objectives.
+ for(var/datum/objective/O in raid_objectives)
+ if(!(O.check_completion())) success--
+
+ //Set result by objectives.
+ if(success == raid_objectives.len)
+ win_type = "Major"
+ win_group = "Vox"
+ else if(success > 2)
+ win_type = "Minor"
+ win_group = "Vox"
+ else
+ win_type = "Minor"
+ win_group = "Crew"
+
+ //Now we modify that result by the state of the vox crew.
+ if(!is_raider_crew_alive())
+
+ win_type = "Major"
+ win_group = "Crew"
+ win_msg += "The Vox Raiders have been wiped out!"
+
+ else if(!is_raider_crew_safe())
+
+ if(win_group == "Crew" && win_type == "Minor")
+ win_type = "Major"
+
+ win_group = "Crew"
+ win_msg += "The Vox Raiders have left someone behind!"
+
+ else
+
+ if(win_group == "Vox")
+ if(win_type == "Minor")
+
+ win_type = "Major"
+ win_msg += "The Vox Raiders escaped the station!"
+ else
+ win_msg += "The Vox Raiders were repelled!"
+
+ world << {"\red [win_type] [win_group] victory!
+ [win_msg]"}
+ feedback_set_details("round_end_result","heist - [win_type] [win_group]")
+
+ var/count = 1
+ for(var/datum/objective/objective in raid_objectives)
+ if(objective.check_completion())
+ world << "
Objective #[count]: [objective.explanation_text] Success!"
+ feedback_add_details("traitor_objective","[objective.type]|SUCCESS")
+ else
+ world << "
Objective #[count]: [objective.explanation_text] Fail."
+ feedback_add_details("traitor_objective","[objective.type]|FAIL")
+ count++
+
+ ..()
+
+/datum/event/heist/proc/check_finished()
+ if (!(is_raider_crew_alive()) || (vox_shuttle_location && (vox_shuttle_location == "start")))
+ return 1
+ return ..()
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index f6b8cfd587a..35587b147ea 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1247,6 +1247,11 @@
return(visible_implants)
+/mob/living/carbon/human/generate_name()
+ name = species.makeName(gender,src)
+ real_name = name
+ return name
+
/mob/living/carbon/human/proc/handle_embedded_objects()
for(var/datum/organ/external/organ in src.organs)
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index dc789d0371a..973a2ff0b90 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -535,8 +535,8 @@ proc/get_damage_icon_part(damage_state, body_part)
var/obj/item/I = w_uniform
if(species.name in I.species_fit) //Allows clothes to display differently for multiple species
- if(species.w_uniform_icons)
- standing.icon = species.w_uniform_icons
+ if(species.uniform_icons)
+ standing.icon = species.uniform_icons
if(w_uniform.icon_override)
standing.icon = w_uniform.icon_override
diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm
index a6b1a56ab24..e80cb41b766 100644
--- a/code/modules/mob/living/carbon/species.dm
+++ b/code/modules/mob/living/carbon/species.dm
@@ -43,18 +43,22 @@
var/flags = 0 // Various specific features.
var/bloodflags=0
var/bodyflags=0
- var/flesh_color = "#FFC896" //Pink.
- var/list/abilities = list() // For species-derived or admin-given powers
- var/w_uniform_icons = null
- var/gloves_icons = null
- var/glasses_icons = null
- var/shoes_icons = null
- var/head_icons = null
- var/belt_icons = null
- var/wear_suit_icons = null
- var/wear_mask_icons = null
- var/back_icons = null
+ var/list/abilities = list() // For species-derived or admin-given powers
+
+ var/blood_color = "#A10808" // Red.
+ var/flesh_color = "#FFC896" // Pink.
+
+ var/uniform_icons = 'icons/mob/uniform.dmi'
+ var/fat_uniform_icons = 'icons/mob/uniform_fat.dmi'
+ var/gloves_icons = 'icons/mob/hands.dmi'
+ var/glasses_icons = 'icons/mob/eyes.dmi'
+ var/shoes_icons = 'icons/mob/feet.dmi'
+ var/head_icons = 'icons/mob/head.dmi'
+ var/belt_icons = 'icons/mob/belt.dmi'
+ var/wear_suit_icons = 'icons/mob/suit.dmi'
+ var/wear_mask_icons = 'icons/mob/mask.dmi'
+ var/back_icons = 'icons/mob/back.dmi'
/datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs.
//This is a basic humanoid limb setup.
@@ -99,6 +103,11 @@
/datum/species/proc/handle_post_spawn(var/mob/living/carbon/human/H) //Handles anything not already covered by basic species assignment.
return
+// Used for species-specific names (Vox, etc)
+/datum/species/proc/makeName(var/gender,var/mob/living/carbon/human/H=null)
+ if(gender==FEMALE) return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names))
+ else return capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names))
+
/datum/species/proc/handle_death(var/mob/living/carbon/human/H) //Handles any species-specific death events (such as dionaea nymph spawns).
return
@@ -198,8 +207,8 @@
eyes = "vox_eyes_s"
breath_type = "nitrogen"
- w_uniform_icons = 'icons/mob/species/vox_w_uniform.dmi'
- shoes_icons = 'icons/mob/species/vox_shoes.dmi'
+ uniform_icons = 'icons/mob/species/vox/uniform.dmi'
+ shoes_icons = 'icons/mob/species/vox/shoes.dmi'
flags = NO_SCAN | IS_WHITELISTED | NO_BLOOD
@@ -280,6 +289,16 @@
default_block_names=list("REMOTETALK")
+ makeName(var/gender,var/mob/living/carbon/human/H=null)
+ var/sounds = rand(2,8)
+ var/i = 0
+ var/newname = ""
+
+ while(i<=sounds)
+ i++
+ newname += pick(vox_name_syllables)
+ return capitalize(newname)
+
/datum/species/diona
name = "Diona"
icobase = 'icons/mob/human_races/r_diona.dmi'
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index c651656e001..20b61bfc5e4 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -13,6 +13,10 @@
living_mob_list += src
..()
+/mob/proc/generate_name()
+ return name
+
+
/mob/proc/Cell()
set category = "Admin"
set hidden = 1
@@ -1192,4 +1196,3 @@ mob/proc/yank_out_object()
host.ckey = src.ckey
host << "You are now a mouse. Try to avoid interaction with players, and do not give hints away that you are more than a simple rodent."
-
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index ceabbc244e8..4c41c209e81 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -130,7 +130,7 @@
observer.alpha = 127
if(client.prefs.be_random_name)
- client.prefs.real_name = random_name(client.prefs.gender)
+ client.prefs.real_name = random_name(client.prefs.gender,client.prefs.species)
observer.real_name = client.prefs.real_name
observer.name = observer.real_name
if(!client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed.
@@ -406,11 +406,10 @@
var/datum/language/chosen_language
if(client.prefs.language)
- chosen_language = all_languages["[client.prefs.language]"]
+ chosen_language = all_languages[client.prefs.language]
if(chosen_language)
if(is_alien_whitelisted(src, client.prefs.language) || !config.usealienwhitelist || !(chosen_language.flags & WHITELISTED))
- new_character.add_language("[client.prefs.language]")
-
+ new_character.add_language(client.prefs.language)
if(ticker.random_players || appearance_isbanned(new_character))
new_character.gender = pick(MALE, FEMALE)
client.prefs.real_name = random_name(new_character.gender)
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm
index 2b8674f8290..3386a0a9879 100644
--- a/code/modules/mob/new_player/preferences_setup.dm
+++ b/code/modules/mob/new_player/preferences_setup.dm
@@ -177,6 +177,15 @@ datum/preferences
g_skin = green
b_skin = blue
+ proc/blend_backpack(var/icon/clothes_s,var/backbag,var/satchel,var/backpack="backpack")
+ switch(backbag)
+ if(2)
+ clothes_s.Blend(new /icon('icons/mob/back.dmi', backpack), ICON_OVERLAY)
+ if(3)
+ clothes_s.Blend(new /icon('icons/mob/back.dmi', satchel), ICON_OVERLAY)
+ if(4)
+ clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
+ return clothes_s
proc/update_preview_icon(var/for_observer=0) //seriously. This is horrendous.
del(preview_icon_front)
@@ -250,435 +259,223 @@ datum/preferences
undershirt_s = new/icon("icon" = 'icons/mob/human.dmi', "icon_state" = "undershirt[undershirt]_s")
var/icon/clothes_s = null
- var/uniform_dmi='icons/mob/uniform.dmi'
- if(disabilities&DISABILITY_FLAG_FAT)
- uniform_dmi='icons/mob/uniform_fat.dmi'
- if(job_civilian_low & ASSISTANT)//This gives the preview icon clothes depending on which job(if any) is set to 'high'
+
+ // UNIFORM DMI
+ var/uniform_dmi=current_species.uniform_icons
+ if(disabilities&DISABILITY_FLAG_FAT && current_species.fat_uniform_icons)
+ uniform_dmi=current_species.fat_uniform_icons
+
+ // SHOES DMI
+ var/feet_dmi=current_species.shoes_icons
+
+ if(!for_observer)
+ // Commenting this check so that, if all else fails, the preview icon is never naked. - N3X
+ //if(job_civilian_low & ASSISTANT) //This gives the preview icon clothes depending on which job(if any) is set to 'high'
clothes_s = new /icon(uniform_dmi, "grey_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- if(backbag == 2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- else if(backbag == 3 || backbag == 4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
- else if(job_civilian_high)//I hate how this looks, but there's no reason to go through this switch if it's empty
- switch(job_civilian_high)
- if(HOP)
- clothes_s = new /icon(uniform_dmi, "hop_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "ianshirt"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(BARTENDER)
- clothes_s = new /icon(uniform_dmi, "ba_suit_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "tophat"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(BOTANIST)
- clothes_s = new /icon(uniform_dmi, "hydroponics_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "ggloves"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "apron"), ICON_OVERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "nymph"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-hyd"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(CHEF)
- clothes_s = new /icon(uniform_dmi, "chef_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "chef"), ICON_OVERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "apronchef"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(JANITOR)
- clothes_s = new /icon(uniform_dmi, "janitor_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bio_janitor"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(LIBRARIAN)
- clothes_s = new /icon(uniform_dmi, "red_suit_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "hairflower"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(QUARTERMASTER)
- clothes_s = new /icon(uniform_dmi, "qm_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "poncho"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(CARGOTECH)
- clothes_s = new /icon(uniform_dmi, "cargotech_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "flat_cap"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(MINER)
- clothes_s = new /icon(uniform_dmi, "miner_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "bearpelt"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-eng"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(LAWYER)
- clothes_s = new /icon(uniform_dmi, "internalaffairs_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "briefcase"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "suitjacket_blue"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(CHAPLAIN)
- clothes_s = new /icon(uniform_dmi, "chapblack_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "imperium_monk"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(CLOWN)
- clothes_s = new /icon(uniform_dmi, "clown_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "clown"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/mask.dmi', "clown"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "clownpack"), ICON_OVERLAY)
- if(MIME)
- clothes_s = new /icon(uniform_dmi, "mime_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "lgloves"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/mask.dmi', "mime"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "beret"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "suspenders"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
+ //else
+ if(job_civilian_high)//I hate how this looks, but there's no reason to go through this switch if it's empty
+ switch(job_civilian_high)
+ if(HOP)
+ clothes_s = new /icon(uniform_dmi, "hop_s")
+ clothes_s.Blend(new /icon(feet_dmi, "brown"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(BARTENDER)
+ clothes_s = new /icon(uniform_dmi, "ba_suit_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(BOTANIST)
+ clothes_s = new /icon(uniform_dmi, "hydroponics_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "ggloves"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "apron"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-hyd")
+ if(CHEF)
+ clothes_s = new /icon(uniform_dmi, "chef_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "chef"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(JANITOR)
+ clothes_s = new /icon(uniform_dmi, "janitor_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(LIBRARIAN)
+ clothes_s = new /icon(uniform_dmi, "red_suit_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(QUARTERMASTER)
+ clothes_s = new /icon(uniform_dmi, "qm_s")
+ clothes_s.Blend(new /icon(feet_dmi, "brown"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/eyes.dmi', "sun"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "clipboard"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(CARGOTECH)
+ clothes_s = new /icon(uniform_dmi, "cargotech_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(MINER)
+ clothes_s = new /icon(uniform_dmi, "miner_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-eng")
+ if(LAWYER)
+ clothes_s = new /icon(uniform_dmi, "internalaffairs_s")
+ clothes_s.Blend(new /icon(feet_dmi, "brown"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "briefcase"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(CHAPLAIN)
+ clothes_s = new /icon(uniform_dmi, "chapblack_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(CLOWN)
+ clothes_s = new /icon(uniform_dmi, "clown_s")
+ clothes_s.Blend(new /icon(feet_dmi, "clown"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/mask.dmi', "clown"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/back.dmi', "clownpack"), ICON_OVERLAY)
+ if(MIME)
+ clothes_s = new /icon(uniform_dmi, "mime_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "lgloves"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/mask.dmi', "mime"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "beret"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "suspenders"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
- else if(job_medsci_high)
- switch(job_medsci_high)
- if(RD)
- clothes_s = new /icon(uniform_dmi, "director_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "petehat"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-tox"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(SCIENTIST)
- clothes_s = new /icon(uniform_dmi, "toxinswhite_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "metroid"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-tox"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(CHEMIST)
- clothes_s = new /icon(uniform_dmi, "chemistrywhite_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labgreen"), ICON_OVERLAY)
- else
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-chem"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(CMO)
- clothes_s = new /icon(uniform_dmi, "cmo_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bio_cmo"), ICON_OVERLAY)
- else
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "medicalpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-med"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(DOCTOR)
- clothes_s = new /icon(uniform_dmi, "medical_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "surgeon"), ICON_OVERLAY)
- else
+ else if(job_medsci_high)
+ switch(job_medsci_high)
+ if(RD)
+ clothes_s = new /icon(uniform_dmi, "director_s")
+ clothes_s.Blend(new /icon(feet_dmi, "brown"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "clipboard"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "medicalpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-med"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(GENETICIST)
- clothes_s = new /icon(uniform_dmi, "geneticswhite_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "monkeysuit"), ICON_OVERLAY)
- else
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-tox")
+ if(SCIENTIST)
+ clothes_s = new /icon(uniform_dmi, "toxinswhite_s")
+ clothes_s.Blend(new /icon(feet_dmi, "white"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-tox")
+ if(CHEMIST)
+ clothes_s = new /icon(uniform_dmi, "chemistrywhite_s")
+ clothes_s.Blend(new /icon(feet_dmi, "white"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-chem")
+ if(CMO)
+ clothes_s = new /icon(uniform_dmi, "cmo_s")
+ clothes_s.Blend(new /icon(feet_dmi, "brown"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/items_lefthand.dmi', "firstaid"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-med")
+ if(DOCTOR)
+ clothes_s = new /icon(uniform_dmi, "medical_s")
+ clothes_s.Blend(new /icon(feet_dmi, "white"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/items_lefthand.dmi', "firstaid"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-med","medicalpack")
+ if(GENETICIST)
+ clothes_s = new /icon(uniform_dmi, "geneticswhite_s")
+ clothes_s.Blend(new /icon(feet_dmi, "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-gen"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(VIROLOGIST)
- clothes_s = new /icon(uniform_dmi, "virologywhite_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/mask.dmi', "sterile"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "plaguedoctor"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "medicalpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-vir"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(ROBOTICIST)
- clothes_s = new /icon(uniform_dmi, "robotics_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
- if(prob(1))
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-gen")
+ if(VIROLOGIST)
+ clothes_s = new /icon(uniform_dmi, "virologywhite_s")
+ clothes_s.Blend(new /icon(feet_dmi, "white"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/mask.dmi', "sterile"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-vir","medicalpack")
+ if(ROBOTICIST)
+ clothes_s = new /icon(uniform_dmi, "robotics_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "toolbox_blue"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
- else if(job_engsec_high)
- switch(job_engsec_high)
- if(CAPTAIN)
- clothes_s = new /icon(uniform_dmi, "captain_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "centcomcaptain"), ICON_OVERLAY)
- else
+ else if(job_engsec_high)
+ switch(job_engsec_high)
+ if(CAPTAIN)
+ clothes_s = new /icon(uniform_dmi, "captain_s")
+ clothes_s.Blend(new /icon(feet_dmi, "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/head.dmi', "captain"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-cap"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(HOS)
- clothes_s = new /icon(uniform_dmi, "hosred_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "hosberet"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-sec"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(WARDEN)
- clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s")
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "slippers_worn"), ICON_OVERLAY)
- else
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-sec"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(DETECTIVE)
- clothes_s = new /icon(uniform_dmi, "detective_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
- if(prob(1))
clothes_s.Blend(new /icon('icons/mob/mask.dmi', "cigaron"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "detective"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(OFFICER)
- clothes_s = new /icon(uniform_dmi, "secred_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "officerberet"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-sec"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(CHIEF)
- clothes_s = new /icon(uniform_dmi, "chief_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "hardhat0_white"), ICON_OVERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "blueprints"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "engiepack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-eng"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(ENGINEER)
- clothes_s = new /icon(uniform_dmi, "engine_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "hardhat0_yellow"), ICON_OVERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "hazard"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "engiepack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-eng"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(ATMOSTECH)
- clothes_s = new /icon(uniform_dmi, "atmos_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
- if(prob(1))
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "firesuit"), ICON_OVERLAY)
- switch(backbag)
- if(2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- if(3)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
- if(4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
-
- if(AI)//Gives AI and borgs assistant-wear, so they can still customize their character
- clothes_s = new /icon(uniform_dmi, "grey_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "straight_jacket"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "cardborg_h"), ICON_OVERLAY)
- if(backbag == 2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- else if(backbag == 3 || backbag == 4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
- if(CYBORG)
- clothes_s = new /icon(uniform_dmi, "grey_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- clothes_s.Blend(new /icon('icons/mob/suit.dmi', "cardborg"), ICON_OVERLAY)
- clothes_s.Blend(new /icon('icons/mob/head.dmi', "cardborg_h"), ICON_OVERLAY)
- if(backbag == 2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- else if(backbag == 3 || backbag == 4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
-
- if(disabilities & NEARSIGHTED)
- preview_icon.Blend(new /icon('icons/mob/eyes.dmi', "glasses"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/eyes.dmi', "sun"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "caparmor"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-cap")
+ if(HOS)
+ clothes_s = new /icon(uniform_dmi, "hosred_s")
+ clothes_s.Blend(new /icon(feet_dmi, "jackboots"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-sec","securitypack")
+ if(WARDEN)
+ clothes_s = new /icon(uniform_dmi, "warden_s")
+ clothes_s.Blend(new /icon(feet_dmi, "jackboots"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-sec","securitypack")
+ if(DETECTIVE)
+ clothes_s = new /icon(uniform_dmi, "detective_s")
+ clothes_s.Blend(new /icon(feet_dmi, "brown"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/mask.dmi', "cigaron"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "detective"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(OFFICER)
+ clothes_s = new /icon(uniform_dmi, "secred_s")
+ clothes_s.Blend(new /icon(feet_dmi, "jackboots"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-sec","securitypack")
+ if(CHIEF)
+ clothes_s = new /icon(uniform_dmi, "chief_s")
+ clothes_s.Blend(new /icon(feet_dmi, "brown"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/mask.dmi', "cigaron"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "hardhat0_white"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-eng","engiepack")
+ if(ENGINEER)
+ clothes_s = new /icon(uniform_dmi, "engine_s")
+ clothes_s.Blend(new /icon(feet_dmi, "orange"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/head.dmi', "hardhat0_yellow"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-eng","engiepack")
+ if(ATMOSTECH)
+ clothes_s = new /icon(uniform_dmi, "atmos_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(ROBOTICIST)
+ clothes_s = new /icon(uniform_dmi, "robotics_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "toolbox_blue"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(AI)//Gives AI and borgs assistant-wear, so they can still customize their character
+ clothes_s = new /icon(uniform_dmi, "grey_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
+ if(CYBORG)
+ clothes_s = new /icon(uniform_dmi, "grey_s")
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
// Observers get tourist outfit.
if(for_observer)
clothes_s = new /icon(uniform_dmi, "tourist_s")
- clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
- if(backbag == 2)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
- else if(backbag == 3 || backbag == 4)
- clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
+ clothes_s.Blend(new /icon(feet_dmi, "black"), ICON_UNDERLAY)
+ clothes_s=blend_backpack(clothes_s,backbag,"satchel-norm")
preview_icon.Blend(eyes_s, ICON_OVERLAY)
diff --git a/code/names.dm b/code/names.dm
index 7cf632077dc..0b93759a9e4 100644
--- a/code/names.dm
+++ b/code/names.dm
@@ -13,4 +13,6 @@ var/list/diona_names = file2list ("config/names/diona.txt")
var/list/verbs = file2list("config/names/verbs.txt")
var/list/adjectives = file2list("config/names/adjectives.txt")
//loaded on startup because of "
-//would include in rsc if ' was used
\ No newline at end of file
+//would include in rsc if ' was used
+
+var/list/vox_name_syllables = list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah")
diff --git a/icons/mob/species/vox_shoes.dmi b/icons/mob/species/vox/shoes.dmi
similarity index 100%
rename from icons/mob/species/vox_shoes.dmi
rename to icons/mob/species/vox/shoes.dmi
diff --git a/icons/mob/species/vox_w_uniform.dmi b/icons/mob/species/vox/uniform.dmi
similarity index 100%
rename from icons/mob/species/vox_w_uniform.dmi
rename to icons/mob/species/vox/uniform.dmi