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