diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index ba81080cc80e..081fcec5a137 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -919,8 +919,9 @@ world // From /datum/preferences/proc/copy_appearance_to body.age = original.age body.gender = original.gender - body.ethnicity = original.ethnicity + body.skin_color = original.skin_color body.body_type = original.body_type + body.body_size = original.body_size body.r_eyes = original.r_eyes body.g_eyes = original.g_eyes diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 663d72fd5079..b5bf7a02d026 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -1,11 +1,14 @@ #define isdeaf(A) (ismob(A) && ((A?:sdisabilities & DISABILITY_DEAF) || A?:ear_deaf)) #define xeno_hivenumber(A) (isxeno(A) ? A?:hivenumber : FALSE) -/proc/random_ethnicity() - return pick(GLOB.ethnicities_list) +/proc/random_skin_color() + return pick(GLOB.skin_color_list) /proc/random_body_type() - return pick(GLOB.body_types_list) + return pick(GLOB.body_type_list) + +/proc/random_body_size() + return pick(GLOB.body_size_list) /proc/random_hair_style(gender, species = "Human") var/h_style = "Crewcut" diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm index 35df8644ad61..eddb326568c0 100644 --- a/code/__HELPERS/sanitize_values.dm +++ b/code/__HELPERS/sanitize_values.dm @@ -45,18 +45,24 @@ else return default return default -/proc/sanitize_ethnicity(ethnicity, default = "Western") - if (ethnicity in GLOB.ethnicities_list) - return ethnicity +/proc/sanitize_skin_color(skin_color, default = "Pale 2") + if(skin_color in GLOB.skin_color_list) + return skin_color return default -/proc/sanitize_body_type(body_type, default = "Mesomorphic (Average)") - if (body_type in GLOB.body_types_list) +/proc/sanitize_body_type(body_type, default = "Lean") + if(body_type in GLOB.body_type_list) return body_type return default +/proc/sanitize_body_size(body_size, default = "Average") + if(body_size in GLOB.body_size_list) + return body_size + + return default + /proc/sanitize_hexcolor(color, default="#000000") if(!istext(color)) return default var/len = length(color) diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm index c0fd361c6203..2bd24af5a0ff 100644 --- a/code/_globalvars/global_lists.dm +++ b/code/_globalvars/global_lists.dm @@ -198,10 +198,11 @@ GLOBAL_LIST_INIT(custom_event_info_list, setup_custom_event_info()) GLOBAL_LIST_INIT(poster_designs, subtypesof(/datum/poster)) //Preferences stuff - // Ethnicities -GLOBAL_REFERENCE_LIST_INDEXED(ethnicities_list, /datum/ethnicity, name) // Stores /datum/ethnicity indexed by name - // Body Types -GLOBAL_REFERENCE_LIST_INDEXED(body_types_list, /datum/body_type, name) // Stores /datum/body_type indexed by name + // Skin colors +GLOBAL_REFERENCE_LIST_INDEXED(skin_color_list, /datum/skin_color, name) // Stores /datum/skin_color indexed by name + // Body +GLOBAL_REFERENCE_LIST_INDEXED(body_type_list, /datum/body_type, name) // Stores /datum/body_type indexed by name +GLOBAL_REFERENCE_LIST_INDEXED(body_size_list, /datum/body_size, name) // Stores /datum/body_size indexed by name //Hairstyles GLOBAL_REFERENCE_LIST_INDEXED(hair_styles_list, /datum/sprite_accessory/hair, name) //stores /datum/sprite_accessory/hair indexed by name GLOBAL_REFERENCE_LIST_INDEXED(facial_hair_styles_list, /datum/sprite_accessory/facial_hair, name) //stores /datum/sprite_accessory/facial_hair indexed by name diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index dfc4149660ca..4cc173dc4dd1 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -256,31 +256,38 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) var/icon/icobase = H.species.icobase var/icon/temp - var/datum/ethnicity/ET = GLOB.ethnicities_list[H.ethnicity] - var/datum/body_type/B = GLOB.body_types_list[H.body_type] + var/datum/skin_color/set_skin_color = GLOB.skin_color_list[H.skin_color] + var/datum/body_type/set_body_type = GLOB.body_type_list[H.body_type] + var/datum/body_size/set_body_size = GLOB.body_size_list[H.body_size] - var/e_icon - var/b_icon + var/skin_color_icon + var/body_type_icon + var/body_size_icon - if (!ET) - e_icon = "western" + if(!set_skin_color) + skin_color_icon = "pale2" else - e_icon = ET.icon_name + skin_color_icon = set_skin_color.icon_name - if (!B) - b_icon = "mesomorphic" + if(!set_body_type) + body_type_icon = "lean" else - b_icon = B.icon_name + body_type_icon = set_body_type.icon_name - preview_icon = new /icon(icobase, get_limb_icon_name(H.species, b_icon, H.gender, "torso", e_icon)) - temp = new /icon(icobase, get_limb_icon_name(H.species, b_icon, H.gender, "groin", e_icon)) + if(!set_body_size) + body_size_icon = "avg" + else + body_size_icon = set_body_size.icon_name + + preview_icon = new /icon(icobase, get_limb_icon_name(H.species, body_size_icon, body_type_icon, H.gender, "torso", skin_color_icon)) + temp = new /icon(icobase, get_limb_icon_name(H.species, body_size_icon, body_type_icon, H.gender, "groin", skin_color_icon)) preview_icon.Blend(temp, ICON_OVERLAY) - temp = new /icon(icobase, get_limb_icon_name(H.species, b_icon, H.gender, "head", e_icon)) + temp = new /icon(icobase, get_limb_icon_name(H.species, body_size_icon, body_type_icon, H.gender, "head", skin_color_icon)) preview_icon.Blend(temp, ICON_OVERLAY) for(var/obj/limb/E in H.limbs) if(E.status & LIMB_DESTROYED) continue - temp = new /icon(icobase, get_limb_icon_name(H.species, b_icon, H.gender, E.name, e_icon)) + temp = new /icon(icobase, get_limb_icon_name(H.species, body_size_icon, body_type_icon, H.gender, E.name, skin_color_icon)) if(E.status & LIMB_ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) preview_icon.Blend(temp, ICON_OVERLAY) diff --git a/code/datums/supply_packs/black_market.dm b/code/datums/supply_packs/black_market.dm index 14ad047c7edb..aeede447e0f9 100644 --- a/code/datums/supply_packs/black_market.dm +++ b/code/datums/supply_packs/black_market.dm @@ -722,6 +722,143 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted contains = list(/obj/item/storage/box/guncase/m1911/socom) containertype = /obj/structure/largecrate/black_market +/* --- AMMO --- */ + +/datum/supply_packs/contraband/ammo + group = "Contraband Ammo" + +/datum/supply_packs/contraband/ammo/r4t + name = "45-70 bullet box crate (x300 rounds)" + dollar_cost = 135 + contains = list(/obj/item/ammo_box/magazine/lever_action) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/r4t/training + name = "45-70 bullet box crate (x300 training rounds)" + dollar_cost = 35 + contains = list(/obj/item/ammo_box/magazine/lever_action/training) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/m16 + name = "Magazine box (M16, 12x regular mags)" + dollar_cost = 100 + contains = list(/obj/item/ammo_box/magazine/M16) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/ar10 + name = "Magazine box (AR10, 12x regular mags)" + dollar_cost = 115 + contains = list(/obj/item/ammo_box/magazine/ar10) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/deagle + name = "Magazine box (Desert Eagle, 16x regular mags)" + dollar_cost = 180 + contains = list(/obj/item/ammo_box/magazine/deagle) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/deagle/hiap + name = "Magazine box (Desert Eagle, 16x HIAP mags)" + dollar_cost = 260 + contains = list(/obj/item/ammo_box/magazine/deagle/super/highimpact/ap/empty) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/type73 + name = "Magazine box (Type 73, 16x regular mags)" + dollar_cost = 60 + contains = list(/obj/item/ammo_box/magazine/type73) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/nsg + name = "Magazine box (NSG-23, 16x regular mags)" + dollar_cost = 140 + contains = list(/obj/item/ammo_box/magazine/nsg23) + containertype = /obj/structure/largecrate/black_market +/datum/supply_packs/contraband/ammo/mar30 + name = "Magazines box (MAR30, 10x regular mags)" + dollar_cost = 60 + contains = list(/obj/item/ammo_box/magazine/mar30) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/fp9000 + name = "Magazines box (FN FP9000, 10x mags)" + dollar_cost = 35 + contains = list(/obj/item/ammo_box/magazine/fp9000) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/mp27 + name = "Magazines box (MP-27, 12x mags)" + dollar_cost = 45 + contains = list(/obj/item/ammo_box/magazine/mp27) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/uzi + name = "Magazines box (UZI, 12x mags)" + dollar_cost = 25 + contains = list(/obj/item/ammo_box/magazine/uzi) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/mac15 + name = "Magazines box (MAC-15, 12x mags)" + dollar_cost = 15 + contains = list(/obj/item/ammo_box/magazine/mac15) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/pps43 + name = "Magazines box (Type-19, 10x regular mags)" + dollar_cost = 40 + contains = list(/obj/item/ammo_box/magazine/type19) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/b92fs + name = "Magazines box (Beretta 92FS, 16x mags)" + dollar_cost = 30 + contains = list(/obj/item/ammo_box/magazine/b92fs) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/kt42 + name = "Magazines box (KT-42, 16x mags)" + dollar_cost = 45 + contains = list(/obj/item/ammo_box/magazine/kt42) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/bizon + name = "Magazines box (Type 64, 10x mags)" + dollar_cost = 40 + contains = list(/obj/item/ammo_box/magazine/type64) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/m1911 + name = "Magazines box (M1911, 16x mags)" + dollar_cost = 40 + contains = list(/obj/item/ammo_box/magazine/m1911) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/mk45 + name = "Magazines box (MK-45 Automagnum, 16x mags)" + dollar_cost = 80 + contains = list(/obj/item/ammo_box/magazine/mk45) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/cmb + name = "Speed loaders box (CMB Spearhead, 16x HP loaders)" + dollar_cost = 70 + contains = list(/obj/item/ammo_box/magazine/spearhead) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/smw + name = "Speed loaders box (Smith and Wesson revolver, 12x loaders)" + dollar_cost = 30 + contains = list(/obj/item/ammo_box/magazine/snw) + containertype = /obj/structure/largecrate/black_market + +/datum/supply_packs/contraband/ammo/zhnk + name = "Speed loaders box (ZHNK-72, 12x loaders)" + dollar_cost = 30 + contains = list(/obj/item/ammo_box/magazine/zhnk) + containertype = /obj/structure/largecrate/black_market + + /* --- DEEP STORAGE --- */ /* diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm index 276f0b760842..b703654cd51a 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm @@ -187,6 +187,7 @@ list("M10 Helmet Netting", floor(scale * 10), /obj/item/prop/helmetgarb/netting, VENDOR_ITEM_REGULAR), list("M10 Helmet Rain Cover", floor(scale * 10), /obj/item/prop/helmetgarb/raincover, VENDOR_ITEM_REGULAR), list("Firearm Lubricant", floor(scale * 15), /obj/item/prop/helmetgarb/gunoil, VENDOR_ITEM_REGULAR), + list("Attachable Dogtags", floor(scale * 15), /obj/item/clothing/accessory/dogtags, VENDOR_ITEM_REGULAR), list("USCM Flair", floor(scale * 15), /obj/item/prop/helmetgarb/flair_uscm, VENDOR_ITEM_REGULAR), list("Falling Falcons Shoulder Patch", floor(scale * 15), /obj/item/clothing/accessory/patch/falcon, VENDOR_ITEM_REGULAR), list("USCM Shoulder Patch", floor(scale * 15), /obj/item/clothing/accessory/patch, VENDOR_ITEM_REGULAR), diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index d984f01ae1be..f579917fed49 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -328,6 +328,34 @@ GLOBAL_LIST_INIT_TYPED(cardboard_recipes, /datum/stack_recipe, list ( \ null, \ new/datum/stack_recipe("empty magazine box (MP5)", /obj/item/ammo_box/magazine/mp5/empty), \ null, \ + new/datum/stack_recipe("empty magazine box (MAR30)", /obj/item/ammo_box/magazine/mar30/empty), \ + new/datum/stack_recipe("empty magazine box (MAR30 EX)", /obj/item/ammo_box/magazine/mar30/ext/empty), \ + new/datum/stack_recipe("empty magazine box (MAR50)", /obj/item/ammo_box/magazine/mar50/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (UZI)", /obj/item/ammo_box/magazine/uzi/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (MAC-15)", /obj/item/ammo_box/magazine/mac15/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (MP27)", /obj/item/ammo_box/magazine/mp27/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (M1911)", /obj/item/ammo_box/magazine/m1911/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (MK-45)", /obj/item/ammo_box/magazine/mk45/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (KT-42)", /obj/item/ammo_box/magazine/kt42/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (Beretta 92FS)", /obj/item/ammo_box/magazine/b92fs/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (FN FP9000)", /obj/item/ammo_box/magazine/fp9000/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (Type19)", /obj/item/ammo_box/magazine/type19/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (ZhNK-72)", /obj/item/ammo_box/magazine/zhnk/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (Type64 Bizon)", /obj/item/ammo_box/magazine/type64/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (S&W .38)", /obj/item/ammo_box/magazine/snw/empty), \ + null, \ new/datum/stack_recipe("empty magazine box (NSG 23)", /obj/item/ammo_box/magazine/nsg23/empty), \ new/datum/stack_recipe("empty magazine box (NSG 23 AP)", /obj/item/ammo_box/magazine/nsg23/ap/empty), \ new/datum/stack_recipe("empty magazine box (NSG 23 EX)", /obj/item/ammo_box/magazine/nsg23/ex/empty), \ diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index f5ae552ea1df..3e61939cb1ca 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -437,6 +437,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) "Seized Items", "Shipside Contraband", "Surplus Equipment", + "Contraband Ammo", "Deep Storage", "Miscellaneous" ) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 702890e36189..be184c0fa117 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -154,8 +154,10 @@ GLOBAL_LIST_INIT(bgstate_options, list( var/g_eyes = 0 //Eye color var/b_eyes = 0 //Eye color var/species = "Human" //Species datum to use. - var/ethnicity = "Western" // Ethnicity - var/body_type = "Mesomorphic (Average)" // Body Type + var/ethnicity = "Western" //Legacy, kept to update save files + var/skin_color = "Pale 2" // Skin color + var/body_size = "Average" // Body Size + var/body_type = "Lean" // Body Type var/language = "None" //Secondary language var/list/gear //Custom/fluff item loadout. var/preferred_squad = "None" @@ -337,8 +339,9 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "®" dat += "Age: [age]
" dat += "Gender: [gender == MALE ? "Male" : "Female"]
" - dat += "Ethnicity: [ethnicity]
" - dat += "Body Type: [body_type]
" + dat += "Skin Color: [skin_color]
" + dat += "Body Size: [body_size]
" + dat += "Body Muscularity: [body_type]
" dat += "Traits: Character Traits" dat += "
" @@ -1178,10 +1181,12 @@ GLOBAL_LIST_INIT(bgstate_options, list( real_name = character_origin.generate_human_name(gender) if ("age") age = rand(AGE_MIN, AGE_MAX) - if ("ethnicity") - ethnicity = random_ethnicity() + if ("skin_color") + skin_color = random_skin_color() if ("body_type") body_type = random_body_type() + if ("body_size") + body_size = random_body_size() if ("hair") r_hair = rand(0,255) g_hair = rand(0,255) @@ -1552,14 +1557,20 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(new_h_gradient_style) grad_style = new_h_gradient_style - if ("ethnicity") - var/new_ethnicity = tgui_input_list(user, "Choose your character's ethnicity:", "Character Preferences", GLOB.ethnicities_list) + if ("skin_color") + var/new_skin_color = tgui_input_list(user, "Choose your character's skin color:", "Character Preferences", GLOB.skin_color_list) - if (new_ethnicity) - ethnicity = new_ethnicity + if (new_skin_color) + skin_color = new_skin_color + + if ("body_size") + var/new_body_size = tgui_input_list(user, "Choose your character's body size:", "Character Preferences", GLOB.body_size_list) + + if (new_body_size) + body_size = new_body_size if ("body_type") - var/new_body_type = tgui_input_list(user, "Choose your character's body type:", "Character Preferences", GLOB.body_types_list) + var/new_body_type = tgui_input_list(user, "Choose your character's body type:", "Character Preferences", GLOB.body_type_list) if (new_body_type) body_type = new_body_type @@ -2062,8 +2073,9 @@ GLOBAL_LIST_INIT(bgstate_options, list( character.age = age character.gender = gender - character.ethnicity = ethnicity + character.skin_color = skin_color character.body_type = body_type + character.body_size = body_size character.r_eyes = r_eyes character.g_eyes = g_eyes @@ -2135,15 +2147,16 @@ GLOBAL_LIST_INIT(bgstate_options, list( message_admins("[character] ([character.ckey]) has spawned with their gender as plural or neuter. Please notify coders.") character.gender = MALE -// Transfers the character's physical characteristics (age, gender, ethnicity, etc) to the mob +// Transfers the character's physical characteristics (age, gender, skin_color, etc) to the mob /datum/preferences/proc/copy_appearance_to(mob/living/carbon/human/character, safety = 0) if(!istype(character)) return character.age = age character.gender = gender - character.ethnicity = ethnicity + character.skin_color = skin_color character.body_type = body_type + character.body_size = body_size character.r_eyes = r_eyes character.g_eyes = g_eyes diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index c822bedd0f7b..13a31b59fa97 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -952,6 +952,13 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) cost = 1 //The cadmium poisoning pays for the discounted cost longterm allowed_origins = USCM_ORIGINS +/datum/gear/misc/dogtags + display_name = "Attachable Dogtags" + path = /obj/item/clothing/accessory/dogtags + cost = 1 + slot = WEAR_IN_ACCESSORY + allowed_origins = USCM_ORIGINS + /datum/gear/misc/patch_uscm display_name = "USCM shoulder patch" path = /obj/item/clothing/accessory/patch diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index ec3f156c220f..db52f58acc68 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -1,5 +1,5 @@ #define SAVEFILE_VERSION_MIN 8 -#define SAVEFILE_VERSION_MAX 22 +#define SAVEFILE_VERSION_MAX 23 //handles converting savefiles to new formats //MAKE SURE YOU KEEP THIS UP TO DATE! @@ -95,6 +95,53 @@ sound_toggles |= SOUND_OBSERVER_ANNOUNCEMENTS S["toggles_sound"] << sound_toggles + if(savefile_version < 23) + var/ethnicity + var/skin_color = "pale2" + S["ethnicity"] >> ethnicity + switch(ethnicity) + if("anglo") + skin_color = "pale2" + if("western") + skin_color = "tan2" + if("germanic") + skin_color = "pale2" + if("scandinavian") + skin_color = "pale3" + if("baltic") + skin_color = "pale3" + if("sinoorient") + skin_color = "pale1" + if("southorient") + skin_color = "tan1" + if("indian") + skin_color = "tan3" + if("sino") + skin_color = "tan1" + if("mesoamerican") + skin_color = "tan3" + if("northamerican") + skin_color = "tan3" + if("southamerican") + skin_color = "tan2" + if("circumpolar") + skin_color = "tan1" + if("northafrican") + skin_color = "tan3" + if("centralafrican") + skin_color = "dark1" + if("costalafrican") + skin_color = "dark3" + if("persian") + skin_color = "tan3" + if("levant") + skin_color = "tan3" + if("australasian") + skin_color = "dark2" + if("polynesian") + skin_color = "tan3" + S["skin_color"] << skin_color + savefile_version = SAVEFILE_VERSION_MAX return 1 @@ -429,7 +476,9 @@ S["gender"] >> gender S["age"] >> age S["ethnicity"] >> ethnicity + S["skin_color"] >> skin_color S["body_type"] >> body_type + S["body_size"] >> body_size S["language"] >> language S["spawnpoint"] >> spawnpoint @@ -508,8 +557,9 @@ be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body)) gender = sanitize_gender(gender) age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age)) - ethnicity = sanitize_ethnicity(ethnicity) + skin_color = sanitize_skin_color(skin_color) body_type = sanitize_body_type(body_type) + body_size = sanitize_body_size(body_size) r_hair = sanitize_integer(r_hair, 0, 255, initial(r_hair)) g_hair = sanitize_integer(g_hair, 0, 255, initial(g_hair)) b_hair = sanitize_integer(b_hair, 0, 255, initial(b_hair)) @@ -580,7 +630,9 @@ S["gender"] << gender S["age"] << age S["ethnicity"] << ethnicity + S["skin_color"] << skin_color S["body_type"] << body_type + S["body_size"] << body_size S["language"] << language S["hair_red"] << r_hair S["hair_green"] << g_hair diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index d95c0a593d34..d78c0faeeca8 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -400,6 +400,14 @@ desc = "A fire-resistant shoulder patch, worn by the men and women of the UPP Naval Infantry." icon_state = "navalpatch" +//misc + +/obj/item/clothing/accessory/dogtags + name = "Attachable Dogtags" + desc = "A robust pair of dogtags to be worn around the neck of the United States Colonial Marines, however due to a combination of budget reallocation, Marines losing their dogtags, and multiple incidents of marines swallowing their tags, they now attach to the uniform or armor." + icon_state = "dogtag" + slot = ACCESSORY_SLOT_MEDAL + /obj/item/clothing/accessory/poncho name = "USCM Poncho" desc = "The standard USCM poncho has variations for every climate. Custom fitted to be attached to standard USCM armor variants it is comfortable, warming or cooling as needed, and well-fit. A marine couldn't ask for more. Affectionately referred to as a \"woobie\"." diff --git a/code/modules/gear_presets/fun.dm b/code/modules/gear_presets/fun.dm index 9811699d5974..f24f7f9a2029 100644 --- a/code/modules/gear_presets/fun.dm +++ b/code/modules/gear_presets/fun.dm @@ -300,7 +300,7 @@ new_human.change_real_name(new_human, "Ivan") new_human.f_style = "Shaved" new_human.h_style = "Shaved Head" - new_human.ethnicity = "Scandinavian" + new_human.skin_color = "pale3" new_human.r_hair = 165 new_human.g_hair = 42 new_human.b_hair = 42 @@ -363,7 +363,7 @@ new_human.b_facial = 51 new_human.h_style = "Mullet" new_human.f_style = "Full English" - new_human.ethnicity = "Anglo" + new_human.skin_color = "pale2" new_human.r_eyes = 102 //Brown eyes. new_human.g_eyes = 51 new_human.b_eyes = 0 diff --git a/code/modules/gear_presets/yautja.dm b/code/modules/gear_presets/yautja.dm index 27eac7215ff3..8ffd8664a977 100644 --- a/code/modules/gear_presets/yautja.dm +++ b/code/modules/gear_presets/yautja.dm @@ -12,13 +12,13 @@ /datum/equipment_preset/yautja/load_race(mob/living/carbon/human/new_human, client/mob_client) new_human.set_species(SPECIES_YAUTJA) - new_human.ethnicity = "tan" + new_human.skin_color = "tan" new_human.body_type = "pred" //can be removed in future for body types if(!mob_client) mob_client = new_human.client if(mob_client?.prefs) new_human.h_style = mob_client.prefs.predator_h_style - new_human.ethnicity = mob_client.prefs.predator_skin_color + new_human.skin_color = mob_client.prefs.predator_skin_color /datum/equipment_preset/yautja/load_id(mob/living/carbon/human/new_human) new_human.job = rank diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 728094548067..0ade3e95b426 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -25,8 +25,9 @@ var/g_eyes = 0 var/b_eyes = 0 - var/ethnicity = "Western" // Ethnicity - var/body_type = "Mesomorphic (Average)" // Body Type + var/skin_color = "Pale 2" // Skin color + var/body_size = "Average" // Body Size + var/body_type = "Lean" // Body Buffness //Skin color var/r_skin = 0 diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index d6d438441d20..00a388d7fcba 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -9,71 +9,65 @@ g = "f" return g -/proc/get_limb_icon_name(datum/species/S, body_type, gender, limb_name, ethnicity) - if(S.uses_ethnicity) - switch(limb_name) - if ("torso") - return "[ethnicity]_torso_[body_type]_[get_gender_name(gender)]" - - if ("chest") - return "[ethnicity]_torso_[body_type]_[get_gender_name(gender)]" - - if ("head") - return "[ethnicity]_[limb_name]_[get_gender_name(gender)]" - - if ("groin") - return "[ethnicity]_[limb_name]_[get_gender_name(gender)]" +/proc/get_limb_icon_name(datum/species/S, body_size, body_type, gender, limb_name, skin_color) + if(S.uses_skin_color) + if(S.special_body_types) + switch(limb_name) + if("torso") + return "[skin_color]_torso_[body_size]_[body_type]" + if("chest") + return "[skin_color]_torso_[body_size]_[body_type]" + if("head") + return "[skin_color]_[limb_name]" + if("groin") + return "[skin_color]_[limb_name]_[body_size]" + + if(!S.special_body_types) + switch(limb_name) + if("torso") + return "[skin_color]_torso_[body_type]_[get_gender_name(gender)]" + if("chest") + return "[skin_color]_torso_[body_type]_[get_gender_name(gender)]" + if("head") + return "[skin_color]_[limb_name]_[get_gender_name(gender)]" + if("groin") + return "[skin_color]_[limb_name]__[body_type]_[get_gender_name(gender)]" + switch(limb_name) if("synthetic head") return "head_[get_gender_name(gender)]" - - if ("r_arm") - return "[ethnicity]_right_arm" - - if ("right arm") - return "[ethnicity]_right_arm" - - if ("l_arm") - return "[ethnicity]_left_arm" - - if ("left arm") - return "[ethnicity]_left_arm" - - if ("r_leg") - return "[ethnicity]_right_leg" - - if ("right leg") - return "[ethnicity]_right_leg" - - if ("l_leg") - return "[ethnicity]_left_leg" - - if ("left leg") - return "[ethnicity]_left_leg" - - if ("r_hand") - return "[ethnicity]_right_hand" - - if ("right hand") - return "[ethnicity]_right_hand" - - if ("l_hand") - return "[ethnicity]_left_hand" - - if ("left hand") - return "[ethnicity]_left_hand" - - if ("r_foot") - return "[ethnicity]_right_foot" - - if ("right foot") - return "[ethnicity]_right_foot" - - if ("l_foot") - return "[ethnicity]_left_foot" - - if ("left foot") - return "[ethnicity]_left_foot" + if("r_arm") + return "[skin_color]_right_arm" + if("right arm") + return "[skin_color]_right_arm" + if("l_arm") + return "[skin_color]_left_arm" + if("left arm") + return "[skin_color]_left_arm" + if("r_leg") + return "[skin_color]_right_leg" + if("right leg") + return "[skin_color]_right_leg" + if("l_leg") + return "[skin_color]_left_leg" + if("left leg") + return "[skin_color]_left_leg" + if("r_hand") + return "[skin_color]_right_hand" + if("right hand") + return "[skin_color]_right_hand" + if("l_hand") + return "[skin_color]_left_hand" + if("left hand") + return "[skin_color]_left_hand" + if("r_foot") + return "[skin_color]_right_foot" + if("right foot") + return "[skin_color]_right_foot" + if("l_foot") + return "[skin_color]_left_foot" + if("left foot") + return "[skin_color]_left_foot" else message_admins("DEBUG: Something called get_limb_icon_name() incorrectly, they use the name [limb_name]") @@ -147,28 +141,37 @@ return null /mob/living/carbon/human/proc/set_limb_icons() - var/datum/ethnicity/E = GLOB.ethnicities_list[ethnicity] - var/datum/body_type/B = GLOB.body_types_list[body_type] + var/datum/skin_color/set_skin_color = GLOB.skin_color_list[skin_color] + var/datum/body_size/set_body_size = GLOB.body_size_list[body_size] + var/datum/body_type/set_body_type = GLOB.body_type_list[body_type] - var/e_icon - var/b_icon + var/skin_color_icon + var/body_size_icon + var/body_type_icon - if (!E) - e_icon = "western" + if(!set_skin_color) + skin_color_icon = "pale2" else - e_icon = E.icon_name + skin_color_icon = set_skin_color.icon_name - if (!B) - b_icon = "mesomorphic" + if(!set_body_size) + body_size_icon = "avg" else - b_icon = B.icon_name + body_size_icon = set_body_size.icon_name + + + if(!set_body_type) + body_type_icon = "lean" + else + body_type_icon = set_body_type.icon_name if(isspeciesyautja(src)) - e_icon = src.ethnicity - b_icon = src.body_type + skin_color_icon = skin_color + body_size_icon = body_size + body_type_icon = body_type - for(var/obj/limb/L in limbs) - L.icon_name = get_limb_icon_name(species, b_icon, gender, L.display_name, e_icon) + for(var/obj/limb/L as anything in limbs) + L.icon_name = get_limb_icon_name(species, body_size_icon, body_type_icon, gender, L.display_name, skin_color_icon) /mob/living/carbon/human/can_inject(mob/user, error_msg, target_zone) if(species?.flags & IS_SYNTHETIC) diff --git a/code/modules/mob/living/carbon/human/species/human.dm b/code/modules/mob/living/carbon/human/species/human.dm index d02a2c3be5bb..320aa9504826 100644 --- a/code/modules/mob/living/carbon/human/species/human.dm +++ b/code/modules/mob/living/carbon/human/species/human.dm @@ -88,7 +88,8 @@ unarmed_type = /datum/unarmed_attack/punch flags = HAS_SKIN_TONE|HAS_LIPS|HAS_UNDERWEAR|HAS_HARDCRIT mob_flags = KNOWS_TECHNOLOGY - uses_ethnicity = TRUE + uses_skin_color = TRUE + special_body_types = TRUE /datum/species/human/handle_on_fire(humanoidmob) . = ..() diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 4392c3359596..4e2a58190f98 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -14,7 +14,8 @@ var/icobase_source // if we want to use sourcing system var/deform_source var/eyes = "eyes_s" // Icon for eyes. - var/uses_ethnicity = FALSE //Set to TRUE to load proper ethnicities and what have you + var/uses_skin_color = FALSE //Set to TRUE to load proper skin_colors and what have you + var/special_body_types = FALSE var/primitive // Lesser form, if any (ie. monkey for humans) var/tail // Name of tail image in species effects icon file. diff --git a/code/modules/mob/living/carbon/human/species/synthetic.dm b/code/modules/mob/living/carbon/human/species/synthetic.dm index 38b7e935268d..f2d5c50f7391 100644 --- a/code/modules/mob/living/carbon/human/species/synthetic.dm +++ b/code/modules/mob/living/carbon/human/species/synthetic.dm @@ -2,7 +2,8 @@ group = SPECIES_SYNTHETIC name = SYNTH_GEN_THREE name_plural = "synthetics" - uses_ethnicity = TRUE //Uses ethnic presets + uses_skin_color = TRUE //Uses skin color presets + special_body_types = TRUE unarmed_type = /datum/unarmed_attack/punch/synthetic pain_type = /datum/pain/synthetic @@ -61,7 +62,8 @@ /datum/species/synthetic/gen_one name = SYNTH_GEN_ONE - uses_ethnicity = FALSE + uses_skin_color = FALSE + special_body_types = FALSE mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INTENT_EYES) hair_color = "#000000" @@ -70,12 +72,14 @@ /datum/species/synthetic/gen_two name = SYNTH_GEN_TWO - uses_ethnicity = FALSE //2nd gen uses generic human look + uses_skin_color = FALSE //2nd gen uses generic human look + special_body_types = FALSE /datum/species/synthetic/colonial name = SYNTH_COLONY name_plural = "Colonial Synthetics" - uses_ethnicity = TRUE + uses_skin_color = TRUE + special_body_types = TRUE burn_mod = 0.8 mob_inherent_traits = list(TRAIT_SUPER_STRONG) @@ -92,11 +96,13 @@ /datum/species/synthetic/colonial/colonial_gen_two name = SYNTH_COLONY_GEN_TWO - uses_ethnicity = FALSE //2nd gen uses generic human look + uses_skin_color = FALSE //2nd gen uses generic human look + special_body_types = FALSE /datum/species/synthetic/colonial/colonial_gen_one name = SYNTH_COLONY_GEN_ONE - uses_ethnicity = FALSE + uses_skin_color = FALSE + special_body_types = FALSE mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INTENT_EYES) //sets colonial_gen_one synth's hair to black hair_color = "#000000" @@ -108,7 +114,8 @@ /datum/species/synthetic/colonial/combat name = SYNTH_COMBAT name_plural = "Combat Synthetics" - uses_ethnicity = FALSE + uses_skin_color = FALSE + special_body_types = FALSE mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INTENT_EYES) burn_mod = 0.6 //made for combat @@ -129,7 +136,7 @@ /datum/species/synthetic/infiltrator name = SYNTH_INFILTRATOR name_plural = "Infiltrator Synthetics" - uses_ethnicity = TRUE + uses_skin_color = TRUE mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INFILTRATOR_SYNTH) bloodsplatter_type = /obj/effect/temp_visual/dir_setting/bloodsplatter/human diff --git a/code/modules/mob/living/carbon/human/species/working_joe/_species.dm b/code/modules/mob/living/carbon/human/species/working_joe/_species.dm index 829f1d89e939..c032e25708eb 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/_species.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/_species.dm @@ -2,7 +2,7 @@ name = SYNTH_WORKING_JOE name_plural = "Working Joes" death_message = "violently gargles fluid and seizes up, the glow in their eyes dimming..." - uses_ethnicity = FALSE + uses_skin_color = FALSE burn_mod = 0.65 // made for hazardous environments, withstanding temperatures up to 1210 degrees mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INTENT_EYES, TRAIT_EMOTE_CD_EXEMPT, TRAIT_CANNOT_EAT, TRAIT_UNSTRIPPABLE) diff --git a/code/modules/mob/living/carbon/human/species/yautja/_species.dm b/code/modules/mob/living/carbon/human/species/yautja/_species.dm index f871bfe02407..86653af92b4b 100644 --- a/code/modules/mob/living/carbon/human/species/yautja/_species.dm +++ b/code/modules/mob/living/carbon/human/species/yautja/_species.dm @@ -6,7 +6,7 @@ burn_mod = 0.65 reagent_tag = IS_YAUTJA mob_flags = KNOWS_TECHNOLOGY - uses_ethnicity = TRUE + uses_skin_color = TRUE flags = IS_WHITELISTED|HAS_SKIN_COLOR|NO_CLONE_LOSS|NO_POISON|NO_NEURO|SPECIAL_BONEBREAK|NO_SHRAPNEL|HAS_HARDCRIT mob_inherent_traits = list( TRAIT_YAUTJA_TECH, diff --git a/code/modules/mob/new_player/body.dm b/code/modules/mob/new_player/body.dm new file mode 100644 index 000000000000..9f2b3e8182bc --- /dev/null +++ b/code/modules/mob/new_player/body.dm @@ -0,0 +1,31 @@ +/datum/body_type + var/name + var/icon_name + +/datum/body_type/twig + name = "No Muscles" + icon_name = "twig" + +/datum/body_type/lean + name = "Lean" + icon_name = "lean" + +/datum/body_type/ripped + name = "Ripped" + icon_name = "buff" + +/datum/body_size + var/name + var/icon_name + +/datum/body_size/thin + name = "Thin" + icon_name = "sml" + +/datum/body_size/average + name = "Average" + icon_name = "avg" + +/datum/body_size/large + name = "Large" + icon_name = "lrg" diff --git a/code/modules/mob/new_player/body_type.dm b/code/modules/mob/new_player/body_type.dm deleted file mode 100644 index ad35dc2feed3..000000000000 --- a/code/modules/mob/new_player/body_type.dm +++ /dev/null @@ -1,15 +0,0 @@ -/datum/body_type - var/name - var/icon_name - -/datum/body_type/ectomorphic - name = "Ectomorphic (Underweight)" - icon_name = "ecto" - -/datum/body_type/mesomorphic - name = "Mesomorphic (Average)" - icon_name = "meso" - -/datum/body_type/endomorphic - name = "Endomorphic (Overweight)" - icon_name = "endo" diff --git a/code/modules/mob/new_player/ethnicity.dm b/code/modules/mob/new_player/ethnicity.dm deleted file mode 100644 index 433a370f56ff..000000000000 --- a/code/modules/mob/new_player/ethnicity.dm +++ /dev/null @@ -1,114 +0,0 @@ -/datum/ethnicity - var/name - var/icon_name - var/ethnic_category - -/datum/ethnicity/anglo - name = "Anglo" - icon_name = "anglo" - ethnic_category = "European" - -/datum/ethnicity/western - name = "Western" - icon_name = "western" - ethnic_category = "European" - -/datum/ethnicity/germanic - name = "Germanic" - icon_name = "germanic" - ethnic_category = "European" - -/datum/ethnicity/scandinavian - name = "Scandinavian" - icon_name = "scandinavian" - ethnic_category = "European" - -/datum/ethnicity/baltic - name = "Baltic" - icon_name = "baltic" - ethnic_category = "European" - -/datum/ethnicity/sinoorient - name = "Sino-Orient" - icon_name = "sinoorient" - ethnic_category = "Oriental" - -/datum/ethnicity/eastorient - name = "East-Orient" - icon_name = "eastorient" - ethnic_category = "Oriental" - -/datum/ethnicity/southorient - name = "South-Orient" - icon_name = "southasian" - ethnic_category = "Oriental" - -/datum/ethnicity/indian - name = "Indian" - icon_name = "indian" - ethnic_category = "Oriental" - -/datum/ethnicity/sino - name = "Eurasian" - icon_name = "eurasian" - ethnic_category = "Oriental" - -/datum/ethnicity/mesoamerican - name = "Mesoamerican" - icon_name = "mesoamerican" - ethnic_category = "American" - -/datum/ethnicity/northamerican - name = "North American" - icon_name = "northamerican" - ethnic_category = "American" - -/datum/ethnicity/southamerican - name = "South American" - icon_name = "southamerican" - ethnic_category = "American" - -/datum/ethnicity/circumpolar - name = "Circumpolar" - icon_name = "circumpolar" - ethnic_category = "American" - -/datum/ethnicity/northafrican - name = "North African" - icon_name = "northafrican" - ethnic_category = "African" - -/datum/ethnicity/centralafrican - name = "Central African" - icon_name = "centralafrican" - ethnic_category = "African" - -/datum/ethnicity/costalafrican - name = "Coastal African" - icon_name = "costalafrican" - ethnic_category = "African" - -/datum/ethnicity/persian - name = "Persian" - icon_name = "persian" - ethnic_category = "Middle Eastern" - -/datum/ethnicity/arabian - name = "Arabian" - icon_name = "arabian" - ethnic_category = "Middle Eastern" - -/datum/ethnicity/levant - name = "Levant" - icon_name = "levant" - ethnic_category = "Middle Eastern" - -/datum/ethnicity/australasian - name = "Australasian" - icon_name = "australasian" - ethnic_category = "Oceania" - -/datum/ethnicity/polynesian - name = "Polynesian" - icon_name = "polynesian" - ethnic_category = "Oceania" diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 174c05783550..edabde203ab6 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -6,8 +6,9 @@ else gender = FEMALE - ethnicity = random_ethnicity() + skin_color = random_skin_color() body_type = random_body_type() + body_size = random_body_size() h_style = random_hair_style(gender, species) f_style = random_facial_hair_style(gender, species) diff --git a/code/modules/mob/new_player/skin_color.dm b/code/modules/mob/new_player/skin_color.dm new file mode 100644 index 000000000000..f3158613c38c --- /dev/null +++ b/code/modules/mob/new_player/skin_color.dm @@ -0,0 +1,47 @@ +/datum/skin_color + var/name + var/icon_name + +/datum/skin_color/cmplayer + name = "Extra Pale" + icon_name = "cmp1" + +/datum/skin_color/pale1 + name = "Pale 1" + icon_name = "pale1" + +/datum/skin_color/pale2 + name = "Pale 2" + icon_name = "pale2" + +/datum/skin_color/pale3 + name = "Pale 3" + icon_name = "pale3" + +/datum/skin_color/tan1 + name = "Tan 1" + icon_name = "tan1" + +/datum/skin_color/tan2 + name = "Tan 2" + icon_name = "tan2" + +/datum/skin_color/tan3 + name = "Tan 3" + icon_name = "tan3" + +/datum/skin_color/dark1 + name = "Dark 1" + icon_name = "dark1" + +/datum/skin_color/dark2 + name = "Dark 2" + icon_name = "dark2" + +/datum/skin_color/dark3 + name = "Dark 3" + icon_name = "dark3" + +/datum/skin_color/melanated + name = "Melanated" + icon_name = "mel1" diff --git a/code/modules/mob/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/new_player/sprite_accessories/undershirt.dm index 39f0e3ddd173..5919b7563606 100644 --- a/code/modules/mob/new_player/sprite_accessories/undershirt.dm +++ b/code/modules/mob/new_player/sprite_accessories/undershirt.dm @@ -112,12 +112,6 @@ GLOBAL_LIST_INIT_TYPED(undershirt_f, /datum/sprite_accessory/undershirt, setup_u gender = FEMALE camo_conforming = TRUE -/datum/sprite_accessory/undershirt/halter_top - name = "Haltertop" - icon_state = "halter" - gender = FEMALE - camo_conforming = TRUE - /datum/sprite_accessory/undershirt/strapless_bra name = "Strapless Bra" icon_state = "strapless" diff --git a/code/modules/mob/new_player/sprite_accessories/underwear.dm b/code/modules/mob/new_player/sprite_accessories/underwear.dm index 200f3f2f67f7..869179619e26 100644 --- a/code/modules/mob/new_player/sprite_accessories/underwear.dm +++ b/code/modules/mob/new_player/sprite_accessories/underwear.dm @@ -58,29 +58,33 @@ GLOBAL_LIST_INIT_TYPED(underwear_f, /datum/sprite_accessory/underwear, setup_und if("s") name += " (Snow)" -// Plural +// Both /datum/sprite_accessory/underwear/boxers name = "Boxers" icon_state = "boxers" - gender = PLURAL + gender = NEUTER camo_conforming = TRUE -// Male /datum/sprite_accessory/underwear/briefs name = "Briefs" icon_state = "briefs" - gender = MALE + gender = NEUTER camo_conforming = TRUE -// Female -/datum/sprite_accessory/underwear/panties - name = "Panties" - icon_state = "panties" - gender = FEMALE +/datum/sprite_accessory/underwear/lowriders + name = "Lowriders" + icon_state = "lowriders" + gender = NEUTER camo_conforming = TRUE -/datum/sprite_accessory/underwear/thong - name = "Thong" - icon_state = "thong" - gender = FEMALE +/datum/sprite_accessory/underwear/satin + name = "Satin" + icon_state = "satin" + gender = NEUTER + camo_conforming = TRUE + +/datum/sprite_accessory/underwear/tanga + name = "Tanga" + icon_state = "tanga" + gender = NEUTER camo_conforming = TRUE diff --git a/code/modules/organs/limb_objects.dm b/code/modules/organs/limb_objects.dm index 9d49ad7736d2..607eac5feefe 100644 --- a/code/modules/organs/limb_objects.dm +++ b/code/modules/organs/limb_objects.dm @@ -22,27 +22,34 @@ icon = base - var/datum/ethnicity/E = GLOB.ethnicities_list[H.ethnicity] - var/datum/body_type/B = GLOB.body_types_list[H.body_type] + var/datum/skin_color/set_skin_color = GLOB.skin_color_list[H.skin_color] + var/datum/body_type/set_body_type = GLOB.body_type_list[H.body_type] + var/datum/body_size/set_body_size = GLOB.body_size_list[H.body_size] - var/e_icon - var/b_icon + var/skin_color_icon + var/body_type_icon + var/body_size_icon - if (!E) - e_icon = "western" + if(!set_skin_color) + skin_color_icon = "pale2" else - e_icon = E.icon_name + skin_color_icon = set_skin_color.icon_name - if (!B) - b_icon = "mesomorphic" + if(!set_body_type) + body_type_icon = "lean" else - b_icon = B.icon_name + body_type_icon = set_body_type.icon_name + + if(!set_body_size) + body_size_icon = "avg" + else + body_size_icon = set_body_size.icon_name if(isspeciesyautja(H)) - e_icon = H.ethnicity - b_icon = H.body_type + skin_color_icon = H.skin_color + body_type_icon = H.body_type - icon_state = "[get_limb_icon_name(H.species, b_icon, H.gender, name, e_icon)]" + icon_state = "[get_limb_icon_name(H.species, body_size_icon, body_type_icon, H.gender, name, skin_color_icon)]" setDir(SOUTH) apply_transform(turn(transform, rand(70,130))) diff --git a/code/modules/organs/limbs.dm b/code/modules/organs/limbs.dm index ea9a68bb9c41..93cfc2d2d7cd 100644 --- a/code/modules/organs/limbs.dm +++ b/code/modules/organs/limbs.dm @@ -71,11 +71,14 @@ var/status = LIMB_ORGANIC var/processing = FALSE - /// ethnicity of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] - var/ethnicity = "western" + /// skin color of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] + var/skin_color = "Pale 2" - /// body type of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] - var/body_type = "mesomorphic" + /// body size of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] + var/body_size = "Average" + + /// body muscularity of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] + var/body_type = "Lean" /// species of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] var/datum/species/species @@ -689,22 +692,29 @@ This function completely restores a damaged organ to perfect condition. /obj/limb/proc/update_limb() SHOULD_CALL_PARENT(TRUE) - var/datum/ethnicity/owner_ethnicity = GLOB.ethnicities_list[owner?.ethnicity] + var/datum/skin_color/owner_skin_color = GLOB.skin_color_list[owner?.skin_color] - if(owner_ethnicity) - ethnicity = owner_ethnicity.icon_name + if(owner_skin_color) + skin_color = owner_skin_color.icon_name else - ethnicity = "western" + skin_color = "pale2" - var/datum/body_type/owner_body_type = GLOB.body_types_list[owner?.body_type] + var/datum/body_type/owner_body_type = GLOB.body_type_list[owner?.body_type] if(owner_body_type) body_type = owner_body_type.icon_name else - body_type = "mesomorphic" + body_type = "lean" + + var/datum/body_type/owner_body_size = GLOB.body_size_list[owner?.body_size] + + if(owner_body_size) + body_size = owner_body_size.icon_name + else + body_size = "avg" if(isspeciesyautja(owner)) - ethnicity = owner.ethnicity + skin_color = owner.skin_color body_type = owner.body_type species = owner?.species ? owner.species : GLOB.all_species[SPECIES_HUMAN] @@ -734,7 +744,7 @@ This function completely restores a damaged organ to perfect condition. return limb.icon = species.icobase - limb.icon_state = "[get_limb_icon_name(species, body_type, limb_gender, icon_name, ethnicity)]" + limb.icon_state = "[get_limb_icon_name(species, body_size, body_type, limb_gender, icon_name, skin_color)]" . += limb @@ -744,7 +754,7 @@ This function completely restores a damaged organ to perfect condition. /obj/limb/proc/get_limb_icon_key() SHOULD_CALL_PARENT(TRUE) - return "[species.name]-[body_type]-[limb_gender]-[icon_name]-[ethnicity]-[status]" + return "[species.name]-[body_size]-[body_type]-[limb_gender]-[icon_name]-[skin_color]-[status]" // new damage icon system // returns just the brute/burn damage code diff --git a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm index 170bb539bc73..dd56d48a364c 100644 --- a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm @@ -1,7 +1,7 @@ //-----------------------M41A Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/ap - name = "\improper magazine box (AP M41A x 10)" + name = "magazine box (AP M41A x 10)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_ap" overlay_content = "_ap" @@ -11,7 +11,7 @@ empty = TRUE /obj/item/ammo_box/magazine/le - name = "\improper magazine box (LE M41A x 10)" + name = "magazine box (LE M41A x 10)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_le" overlay_content = "_le" @@ -21,7 +21,7 @@ empty = TRUE /obj/item/ammo_box/magazine/ext - name = "\improper magazine box (Ext M41A x 8)" + name = "magazine box (Ext M41A x 8)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_ext" num_of_magazines = 8 @@ -31,7 +31,7 @@ empty = TRUE /obj/item/ammo_box/magazine/incen - name = "\improper magazine box (Incen M41A x 10)" + name = "magazine box (Incen M41A x 10)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_incen" overlay_content = "_incen" @@ -41,7 +41,7 @@ empty = TRUE /obj/item/ammo_box/magazine/explosive - name = "\improper magazine box (Explosive M41A x 10)" + name = "magazine box (Explosive M41A x 10)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_expl" overlay_content = "_expl" @@ -63,7 +63,7 @@ //-----------------------M39 Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/m39 - name = "\improper magazine box (M39 x 12)" + name = "magazine box (M39 x 12)" icon_state = "base_m39" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -76,7 +76,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m39/ap - name = "\improper magazine box (AP M39 x 12)" + name = "magazine box (AP M39 x 12)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/smg/m39/ap @@ -85,7 +85,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m39/ext - name = "\improper magazine box (Ext m39 x 10)" + name = "magazine box (Ext m39 x 10)" overlay_ammo_type = "_ext" overlay_content = "_hv" num_of_magazines = 10 @@ -95,7 +95,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m39/incen - name = "\improper magazine box (Incen m39 x 12)" + name = "magazine box (Incen m39 x 12)" overlay_ammo_type = "_incen" overlay_content = "_incen" magazine_type = /obj/item/ammo_magazine/smg/m39/incendiary @@ -104,7 +104,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m39/le - name = "\improper magazine box (LE m39 x 12)" + name = "magazine box (LE m39 x 12)" overlay_ammo_type = "_le" overlay_content = "_le" magazine_type = /obj/item/ammo_magazine/smg/m39/le @@ -124,7 +124,7 @@ //-----------------------M4RA Battle Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/m4ra - name = "\improper magazine box (M4RA x 16)" + name = "magazine box (M4RA x 16)" icon_state = "base_m4ra" flags_equip_slot = SLOT_BACK overlay_gun_type = "_m4ra" @@ -135,7 +135,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4ra/ap - name = "\improper magazine box (AP M4RA x 16)" + name = "magazine box (AP M4RA x 16)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/rifle/m4ra/ap @@ -144,7 +144,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4ra/ext - name = "\improper magazine box (Ext M4RA x 12)" + name = "magazine box (Ext M4RA x 12)" overlay_ammo_type = "_ext" num_of_magazines = 12 magazine_type = /obj/item/ammo_magazine/rifle/m4ra/ext @@ -153,7 +153,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4ra/incen - name = "\improper magazine box (Incen M4RA x 16)" + name = "magazine box (Incen M4RA x 16)" overlay_ammo_type = "_incen" overlay_content = "_incen" magazine_type = /obj/item/ammo_magazine/rifle/m4ra/incendiary @@ -173,7 +173,7 @@ //-----------------------XM51 Breaching Scattergun Mag Box----------------------- /obj/item/ammo_box/magazine/xm51 - name = "\improper magazine box (XM51 x 8)" + name = "magazine box (XM51 x 8)" icon_state = "base_breach" flags_equip_slot = SLOT_BACK overlay_gun_type = "_xm51" @@ -186,7 +186,7 @@ //-----------------------L42A Battle Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/l42a - name = "\improper magazine box (L42A x 16)" + name = "magazine box (L42A x 16)" icon_state = "base_l42" flags_equip_slot = SLOT_BACK overlay_gun_type = "_l42" @@ -197,7 +197,7 @@ empty = TRUE /obj/item/ammo_box/magazine/l42a/ap - name = "\improper magazine box (AP L42A x 16)" + name = "magazine box (AP L42A x 16)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/rifle/l42a/ap @@ -206,7 +206,7 @@ empty = TRUE /obj/item/ammo_box/magazine/l42a/le - name = "\improper magazine box (LE L42A x 16)" + name = "magazine box (LE L42A x 16)" overlay_ammo_type = "_le" overlay_content = "_le" magazine_type = /obj/item/ammo_magazine/rifle/l42a/le @@ -215,7 +215,7 @@ empty = TRUE /obj/item/ammo_box/magazine/l42a/ext - name = "\improper magazine box (Ext L42A x 12)" + name = "magazine box (Ext L42A x 12)" overlay_ammo_type = "_ext" overlay_content = "_reg" num_of_magazines = 12 @@ -225,7 +225,7 @@ empty = TRUE /obj/item/ammo_box/magazine/l42a/incen - name = "\improper magazine box (Incen L42A x 16)" + name = "magazine box (Incen L42A x 16)" overlay_ammo_type = "_incen" overlay_content = "_incen" magazine_type = /obj/item/ammo_magazine/rifle/l42a/incendiary @@ -245,7 +245,7 @@ //-----------------------M16 Rifle Mag Box----------------------- /obj/item/ammo_box/magazine/M16 - name = "\improper magazine box (M16 x 12)" + name = "magazine box (M16 x 12)" icon_state = "base_m16" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -257,7 +257,7 @@ empty = TRUE /obj/item/ammo_box/magazine/M16/ap - name = "\improper magazine box (AP M16 x 12)" + name = "magazine box (AP M16 x 12)" icon_state = "base_m16" overlay_ammo_type = "_ap" overlay_gun_type = "_m16" @@ -270,7 +270,7 @@ //-----------------------M4A3 Pistol Mag Box----------------------- /obj/item/ammo_box/magazine/m4a3 - name = "\improper magazine box (M4A3 x 16)" + name = "magazine box (M4A3 x 16)" icon_state = "base_m4a3" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -282,7 +282,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4a3/ap - name = "\improper magazine box (AP M4A3 x 16)" + name = "magazine box (AP M4A3 x 16)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/pistol/ap @@ -291,7 +291,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4a3/hp - name = "\improper magazine box (HP M4A3 x 16)" + name = "magazine box (HP M4A3 x 16)" overlay_ammo_type = "_hp" overlay_content = "_hp" magazine_type = /obj/item/ammo_magazine/pistol/hp @@ -300,7 +300,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m4a3/incen - name = "\improper magazine box (Incen M4A3 x 16)" + name = "magazine box (Incen M4A3 x 16)" overlay_ammo_type = "_incen" overlay_content = "_incen" magazine_type = /obj/item/ammo_magazine/pistol/incendiary @@ -311,7 +311,7 @@ //-----------------------M44 Revolver Speed Loaders Box----------------------- /obj/item/ammo_box/magazine/m44 - name = "\improper speed loaders box (M44 x 16)" + name = "speed loaders box (M44 x 16)" icon_state = "base_m44" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_m44_reg" @@ -324,7 +324,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m44/marksman - name = "\improper speed loaders box (Marksman M44 x 16)" + name = "speed loaders box (Marksman M44 x 16)" overlay_ammo_type = "_m44_mark" magazine_type = /obj/item/ammo_magazine/revolver/marksman @@ -332,7 +332,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m44/heavy - name = "\improper speed loaders box (Heavy M44 x 16)" + name = "speed loaders box (Heavy M44 x 16)" overlay_ammo_type = "_m44_heavy" magazine_type = /obj/item/ammo_magazine/revolver/heavy @@ -342,7 +342,7 @@ //-----------------------SU-6 Smartpistol Mag Box----------------------- /obj/item/ammo_box/magazine/su6 - name = "\improper magazine box (SU-6 x 16)" + name = "magazine box (SU-6 x 16)" icon_state = "base_su6" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -356,7 +356,7 @@ //-----------------------88M4 Pistol Mag Box----------------------- /obj/item/ammo_box/magazine/mod88 - name = "\improper magazine box (88 Mod 4 AP x 16)" + name = "magazine box (88 Mod 4 AP x 16)" icon_state = "base_mod88" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_ap" @@ -371,7 +371,7 @@ //-----------------------VP78 Pistol Mag Box----------------------- /obj/item/ammo_box/magazine/vp78 - name = "\improper magazine box (VP78 x 16)" + name = "magazine box (VP78 x 16)" icon_state = "base_vp78" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -385,7 +385,7 @@ //-----------------------Type71 Rifle Mag Box----------------------- /obj/item/ammo_box/magazine/type71 - name = "\improper magazine box (Type71 x 10)" + name = "magazine box (Type71 x 10)" icon_state = "base_type71" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_type71_reg" @@ -398,7 +398,7 @@ empty = TRUE /obj/item/ammo_box/magazine/type71/ap - name = "\improper magazine box (Type71 AP x 10)" + name = "magazine box (Type71 AP x 10)" overlay_ammo_type = "_type71_ap" overlay_content = "_type71_ap" magazine_type = /obj/item/ammo_magazine/rifle/type71/ap @@ -418,7 +418,7 @@ //-----------------------Nailgun Mag Box----------------------- /obj/item/ammo_box/magazine/nailgun - name = "\improper magazine box (Nailgun x 10)" + name = "magazine box (Nailgun x 10)" icon_state = "base_nailgun" //base color of box icon_state_deployed = "base_nailgun_deployed" overlay_ammo_type = "_nail" //used for ammo type color overlay @@ -436,7 +436,7 @@ //-----------------------M56B Drum Box----------------------- /obj/item/ammo_box/magazine/m56b - name = "\improper drum box (M56B x 8)" + name = "drum box (M56B x 8)" icon_state = "base_m56b" overlay_ammo_type = "_reg_heavy" overlay_gun_type = "_sg" @@ -448,7 +448,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m56b/dirty - name = "\improper drum box (M56B 'Dirty' x 8)" + name = "drum box (M56B 'Dirty' x 8)" overlay_ammo_type = "_red_heavy" overlay_content = "_sgdirty" magazine_type = /obj/item/ammo_magazine/smartgun/dirty @@ -459,7 +459,7 @@ //-----------------------M56D Drum Box----------------------- /obj/item/ammo_box/magazine/m56d - name = "\improper drum box (M56D x 8)" + name = "drum box (M56D x 8)" icon_state = "base_m56d" overlay_ammo_type = "" overlay_gun_type = "_m56d" @@ -480,7 +480,7 @@ //-----------------------M2C Ammo Box----------------------- /obj/item/ammo_box/magazine/m2c - name = "\improper ammo box (M2C x 8)" + name = "ammo box (M2C x 8)" icon_state = "base_m2c" overlay_ammo_type = "" overlay_gun_type = "_m2c" @@ -500,7 +500,7 @@ //-----------------------M41AE2 Ammo Box----------------------- /obj/item/ammo_box/magazine/m41ae2 - name = "\improper magazine (M41AE2 x 8)" + name = "magazine (M41AE2 x 8)" icon_state = "base_m41ae2" overlay_ammo_type = "_reg_heavy" overlay_gun_type = "_m41ae2" @@ -512,7 +512,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m41ae2/holo - name = "\improper magazine box (M41AE2 Holo-Target x 8)" + name = "magazine box (M41AE2 Holo-Target x 8)" overlay_ammo_type = "_holo_heavy" overlay_content = "_m41ae2_holo" magazine_type = /obj/item/ammo_magazine/rifle/lmg/holo_target @@ -521,7 +521,7 @@ empty = TRUE /obj/item/ammo_box/magazine/m41ae2/heap - name = "\improper magazine box (M41AE2 HEAP x 8)" + name = "magazine box (M41AE2 HEAP x 8)" overlay_ammo_type = "_heap_heavy" overlay_content = "_m41ae2_heap" magazine_type = /obj/item/ammo_magazine/rifle/lmg/heap @@ -532,7 +532,7 @@ //-----------------------Flamer Fuel Tank Box----------------------- /obj/item/ammo_box/magazine/flamer - name = "\improper flamer tank box (UT-Napthal Fuel x 8)" + name = "flamer tank box (UT-Napthal Fuel x 8)" icon_state = "base_flamer" overlay_ammo_type = "_flamer" overlay_gun_type = "_blank" @@ -544,7 +544,7 @@ empty = TRUE /obj/item/ammo_box/magazine/flamer/bgel - name = "\improper flamer fuel box (Napalm B-Gel x 8)" + name = "flamer fuel box (Napalm B-Gel x 8)" overlay_ammo_type = "_flamer_bgel" overlay_content = "_flamer_bgel" magazine_type = /obj/item/ammo_magazine/flamer_tank/gellied @@ -555,7 +555,7 @@ //-----------------------M41A MK1 Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/mk1 - name = "\improper magazine box (M41A MK1 x 8)" + name = "magazine box (M41A MK1 x 8)" overlay_ammo_type = "_reg_mk1" overlay_gun_type = "_mk1" overlay_content = "_reg" @@ -566,7 +566,7 @@ empty = TRUE /obj/item/ammo_box/magazine/mk1/ap - name = "\improper magazine box (M41A MK1 AP x 8)" + name = "magazine box (M41A MK1 AP x 8)" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_ap_mk1" overlay_content = "_ap" @@ -578,7 +578,7 @@ //-----------------------NSG 23 Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/nsg23 - name = "\improper magazine box (NSG 23 x 16)" + name = "magazine box (NSG 23 x 16)" icon_state = "base_nsg23" overlay_gun_type = "_nsg23" overlay_content = "_reg" @@ -589,7 +589,7 @@ empty = TRUE /obj/item/ammo_box/magazine/nsg23/ap - name = "\improper magazine box (NSG 23 AP x 12)" + name = "magazine box (NSG 23 AP x 12)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/rifle/nsg23/ap @@ -599,7 +599,7 @@ empty = TRUE /obj/item/ammo_box/magazine/nsg23/ex - name = "\improper magazine box (NSG 23 Extended x 8)" + name = "magazine box (NSG 23 Extended x 8)" overlay_ammo_type = "_ext" magazine_type = /obj/item/ammo_magazine/rifle/nsg23/extended num_of_magazines = 8 @@ -608,7 +608,7 @@ empty = TRUE /obj/item/ammo_box/magazine/nsg23/heap - name = "\improper magazine box (NSG 23 HEAP x 16)" + name = "magazine box (NSG 23 HEAP x 16)" overlay_ammo_type = "_heap" overlay_content = "_heap" magazine_type = /obj/item/ammo_magazine/rifle/nsg23/heap @@ -619,7 +619,7 @@ //-----------------------Spearhead Autorevolver Speed Loaders Box----------------------- /obj/item/ammo_box/magazine/spearhead - name = "\improper speed loaders box (Spearhead HP x 12)" + name = "speed loaders box (Spearhead HP x 12)" icon_state = "base_cmb" overlay_ammo_type = "_357_hp" overlay_gun_type = "_357" @@ -631,7 +631,7 @@ empty = TRUE /obj/item/ammo_box/magazine/spearhead/normalpoint - name = "\improper speed loaders box (Spearhead x 12)" + name = "speed loaders box (Spearhead x 12)" overlay_ammo_type = "_357_reg" magazine_type = /obj/item/ammo_magazine/revolver/cmb/normalpoint @@ -641,7 +641,7 @@ //-----------------------Type 73 Pistol Mag Box----------------------- /obj/item/ammo_box/magazine/type73 - name = "\improper magazine box (Type 73 x 16)" + name = "magazine box (Type 73 x 16)" icon_state = "base_type73" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_type71_reg" @@ -654,7 +654,7 @@ empty = TRUE /obj/item/ammo_box/magazine/type73/impact - name = "\improper magazine box (Type 73 High-Impact x 10)" + name = "magazine box (Type 73 High-Impact x 10)" overlay_ammo_type = "_type73_impact" overlay_content = "_type73_impact" num_of_magazines = 10 @@ -667,7 +667,7 @@ //-----------------------AR10 Rifle Mag Box----------------------- /obj/item/ammo_box/magazine/ar10 - name = "\improper magazine box (AR10 x 12)" + name = "magazine box (AR10 x 12)" icon_state = "base_ar10" flags_equip_slot = SLOT_BACK overlay_gun_type = "_ar10" @@ -681,7 +681,7 @@ //-----------------------MP5 Smg Mag Box----------------------- /obj/item/ammo_box/magazine/mp5 - name = "\improper magazine box (MP5 x 12)" + name = "magazine box (MP5 x 12)" icon_state = "base_m16" flags_equip_slot = SLOT_BACK overlay_gun_type = "_mp5" @@ -696,7 +696,7 @@ //-----------------------Desert Eagle Pistol Mag Box----------------------- /obj/item/ammo_box/magazine/deagle - name = "\improper magazine box (Desert Eagle x 12)" + name = "magazine box (Desert Eagle x 12)" icon_state = "base_deagle" flags_equip_slot = SLOT_BACK overlay_ammo_type = "_reg" @@ -709,7 +709,7 @@ empty = TRUE /obj/item/ammo_box/magazine/deagle/super - name = "\improper magazine box (Heavy Desert Eagle x 8)" + name = "magazine box (Heavy Desert Eagle x 8)" overlay_ammo_type = "_hp" overlay_content = "_hp" num_of_magazines = 8 @@ -719,7 +719,7 @@ empty = TRUE /obj/item/ammo_box/magazine/deagle/super/highimpact - name = "\improper magazine box (High Impact Desert Eagle x 8)" + name = "magazine box (High Impact Desert Eagle x 8)" overlay_ammo_type = "_impact" overlay_content = "_impact" magazine_type = /obj/item/ammo_magazine/pistol/heavy/super/highimpact @@ -728,10 +728,304 @@ empty = TRUE /obj/item/ammo_box/magazine/deagle/super/highimpact/ap - name = "\improper magazine box (High Impact Armor-Piercing Desert Eagle x 8)" + name = "magazine box (High Impact Armor-Piercing Desert Eagle x 8)" overlay_ammo_type = "_ap" overlay_content = "_ap" magazine_type = /obj/item/ammo_magazine/pistol/heavy/super/highimpact/ap /obj/item/ammo_box/magazine/deagle/super/highimpact/ap/empty empty = TRUE + + +//-----------------------S&W Revolver Speed Loaders Box----------------------- +/obj/item/ammo_box/magazine/snw + name = "speed loaders box (S&W .38 x 12)" + icon_state = "base_S&W" + overlay_ammo_type = "_m44_reg" + overlay_gun_type = "_38" + overlay_content = "_speed" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/revolver/small + +/obj/item/ammo_box/magazine/snw/empty + empty = TRUE + + +//-----------------------Type64 Bizon SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/type64 + name = "magazine box (Type64 Bizon x 10)" + icon_state = "base_type64" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "_type71_reg" + overlay_gun_type = "_type64" + overlay_content = "_type71_reg" + num_of_magazines = 10 + magazine_type = /obj/item/ammo_magazine/smg/bizon + +/obj/item/ammo_box/magazine/type64/empty + empty = TRUE + +//-----------------------ZhNK-72 Revolver Speedloader Box----------------------- + +/obj/item/ammo_box/magazine/zhnk + name = "speed loaders box (ZhNK-72 x 12)" + icon_state = "base_zhnk72" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_zhnk72" + overlay_content = "_zhnk72" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/revolver/upp + +/obj/item/ammo_box/magazine/zhnk/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/zhnk/empty + empty = TRUE + +//-----------------------Type-19 SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/type19 + name = "magazine box (Type19 x 12)" + icon_state = "base_type19" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_type19" + overlay_content = "_type71_reg" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/pps43 + +/obj/item/ammo_box/magazine/type19/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + + +/obj/item/ammo_box/magazine/type19/empty + empty = TRUE + +//-----------------------UZI SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/uzi + name = "magazine box (UZI x 12)" + icon_state = "base_uzi" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_uzi" + overlay_content = "_uzi" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/uzi + +/obj/item/ammo_box/magazine/uzi/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/uzi/empty + empty = TRUE + +//-----------------------MAC-15 SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/mac15 + name = "magazine box (MAC-15 x 12)" + icon_state = "base_uzi" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_mac15" + overlay_content = "_uzi" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/mac15 + +/obj/item/ammo_box/magazine/mac15/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/mac15/empty + empty = TRUE + +//-----------------------MP27 SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/mp27 + name = "magazine box (MP27 x 12)" + icon_state = "base_uzi" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_mp27" + overlay_content = "_fn" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/mp27 + +/obj/item/ammo_box/magazine/mp27/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/mp27/empty + empty = TRUE + +//-----------------------M1911 Pistol Mag Box----------------------- + +/obj/item/ammo_box/magazine/m1911 + name = "magazine box (M1911 x 16)" + icon_state = "base_mk45" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_m1911" + overlay_content = "_uzi" + num_of_magazines = 16 + magazine_type = /obj/item/ammo_magazine/pistol/m1911 + +/obj/item/ammo_box/magazine/m1911/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + + +/obj/item/ammo_box/magazine/m1911/empty + empty = TRUE + +//-----------------------MK-45 Highpower Pistol Mag Box----------------------- + +/obj/item/ammo_box/magazine/mk45 + name = "magazine box (MK-45 x 16)" + icon_state = "base_mk45" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_mk45" + overlay_content = "_uzi" + num_of_magazines = 16 + magazine_type = /obj/item/ammo_magazine/pistol/highpower + +/obj/item/ammo_box/magazine/mk45/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/mk45/empty + empty = TRUE + +//-----------------------KT-42 Automag Pistol Mag Box----------------------- + +/obj/item/ammo_box/magazine/kt42 + name = "magazine box (KT-42 x 16)" + icon_state = "base_mk45" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_kt42" + overlay_content = "_uzi" + num_of_magazines = 16 + magazine_type = /obj/item/ammo_magazine/pistol/kt42 + +/obj/item/ammo_box/magazine/kt42/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + + +/obj/item/ammo_box/magazine/kt42/empty + empty = TRUE + +//-----------------------Beretta 92FS Pistol Mag Box----------------------- + +/obj/item/ammo_box/magazine/b92fs + name = "magazine box (Beretta 92FS x 16)" + icon_state = "base_mk45" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_b92fs" + overlay_content = "_uzi" + num_of_magazines = 16 + magazine_type = /obj/item/ammo_magazine/pistol/b92fs + +/obj/item/ammo_box/magazine/b92fs/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/b92fs/empty + empty = TRUE + +//-----------------------FN FP9000 SMG Mag Box----------------------- + +/obj/item/ammo_box/magazine/fp9000 + name = "magazine box (FN FP9000 x 12)" + icon_state = "base_fn" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_fnfp9000" + overlay_content = "_fn" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/fp9000 + +/obj/item/ammo_box/magazine/fp9000/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/fp9000/empty + empty = TRUE + +//-----------------------MAR30/40 Mag Box----------------------- + +/obj/item/ammo_box/magazine/mar30 + name = "magazine box (MAR30/40 x 10)" + icon_state = "base_mar" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_mar30" + overlay_content = "_mar" + num_of_magazines = 10 + magazine_type = /obj/item/ammo_magazine/rifle/mar40 + +/obj/item/ammo_box/magazine/mar30/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/mar30/empty + empty = TRUE + +/obj/item/ammo_box/magazine/mar30/ext + name = "magazine box (MAR30/40 Ext x 8)" + overlay_gun_type = "_mar40" + num_of_magazines = 8 + magazine_type = /obj/item/ammo_magazine/rifle/mar40/extended + +/obj/item/ammo_box/magazine/mar30/ext/empty + empty = TRUE + +//-----------------------MAR50 Mag Box----------------------- + +/obj/item/ammo_box/magazine/mar50 + name = "magazine box (MAR50 x 8)" + icon_state = "base_mar" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "" + overlay_gun_type = "_mar50" + overlay_content = "_mar" + num_of_magazines = 8 + magazine_type = /obj/item/ammo_magazine/rifle/mar40/lmg + +/obj/item/ammo_box/magazine/mar50/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/mar50/empty + empty = TRUE diff --git a/colonialmarines.dme b/colonialmarines.dme index 0fbd39f695b3..e5447c61c5ed 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -2129,12 +2129,12 @@ #include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" -#include "code\modules\mob\new_player\body_type.dm" -#include "code\modules\mob\new_player\ethnicity.dm" +#include "code\modules\mob\new_player\body.dm" #include "code\modules\mob\new_player\login.dm" #include "code\modules\mob\new_player\logout.dm" #include "code\modules\mob\new_player\new_player.dm" #include "code\modules\mob\new_player\preferences_setup.dm" +#include "code\modules\mob\new_player\skin_color.dm" #include "code\modules\mob\new_player\sprite_accessories\facial_hair.dm" #include "code\modules\mob\new_player\sprite_accessories\hair.dm" #include "code\modules\mob\new_player\sprite_accessories\hair_gradients.dm" diff --git a/html/changelogs/AutoChangeLog-pr-6073.yml b/html/changelogs/AutoChangeLog-pr-6073.yml new file mode 100644 index 000000000000..a7178f7f3bd7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6073.yml @@ -0,0 +1,7 @@ +author: "GrrrKitten" +delete-after: True +changes: + - rscadd: "replaces the old ethnicity system with a new skintone system" + - imageadd: "Resprites humans, adds 9 new mix and match body options to replace the old 3 options" + - rscadd: "resprites dogtags and adds an accessory dogtag that can be made visible via attaching to suit/armor" + - imageadd: "Touches up a lot of the underwear sprites" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6324.yml b/html/changelogs/AutoChangeLog-pr-6324.yml new file mode 100644 index 000000000000..ac1c416ea0ae --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6324.yml @@ -0,0 +1,5 @@ +author: "Blundir" +delete-after: True +changes: + - rscadd: "contraband ammo selection in black market" + - rscadd: "tons of new ammo boxes" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6330.yml b/html/changelogs/AutoChangeLog-pr-6330.yml deleted file mode 100644 index bbc7333cfcc1..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6330.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - rscadd: "Adds USCM Observer preset, a copy of CO with a different name." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6333.yml b/html/changelogs/AutoChangeLog-pr-6333.yml deleted file mode 100644 index 626edf61ef08..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6333.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - rscadd: "Added a print button to the ASRS audit log." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6343.yml b/html/changelogs/AutoChangeLog-pr-6343.yml deleted file mode 100644 index 9491814ce471..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6343.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheGamerdk" -delete-after: True -changes: - - rscadd: "All officers and NCO's can now recommend people for medals." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6344.yml b/html/changelogs/AutoChangeLog-pr-6344.yml deleted file mode 100644 index 03b8d2a783ff..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6344.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - rscadd: "Added cameras to Working Joe uniforms." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6354.yml b/html/changelogs/AutoChangeLog-pr-6354.yml deleted file mode 100644 index c41ed529f741..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6354.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "coldironwarrior" -delete-after: True -changes: - - rscadd: "Doctors will spawn in dark blue scrubs by default; Setting your preferred job title to \"Surgeon\" for doctor roles will now spawn you in green scrubs" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6365.yml b/html/changelogs/AutoChangeLog-pr-6365.yml deleted file mode 100644 index 6c8802948832..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6365.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Huffie56" -delete-after: True -changes: - - maptweak: "remove emergency shutter that aren't on the frontier between two areas." - - maptweak: "added emergency shutter that are missing on the frontier between two areas." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6370.yml b/html/changelogs/AutoChangeLog-pr-6370.yml deleted file mode 100644 index a47243cfe740..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6370.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "vero5123" -delete-after: True -changes: - - bugfix: "Fixes overwatch console coordinate comment UI crash" - - bugfix: "Fixes chat UI crash after entering a custom font" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6372.yml b/html/changelogs/AutoChangeLog-pr-6372.yml deleted file mode 100644 index d8ac05744dd9..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6372.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - bugfix: "Changing an Identification Computer to is_weyland (formerly is_centcom) now works correctly and allows assignment of corporate accesses or presets." - - code_imp: "Added two procs for interpreting WY access information in the UI." - - code_imp: "Added separate role groups for PMC and Corporate job defines." - - rscadd: "Added ACCESS_WY_DATABASE as a requirement to use the WY subtype console." - - rscadd: "Added a WY subtype for crew monitor." - - code_imp: "Renamed the faction defines explicitly relating to static defences due to confusion over FACTION_WY and FACTION_WEYLAND." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6373.yml b/html/changelogs/AutoChangeLog-pr-6373.yml deleted file mode 100644 index 82d336973515..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6373.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - rscadd: "Added Forsaken sub category to orbit menu. Also adds an \"Other\" sub category for xeno hives, to split the main hive on its own." - - code_imp: "Changed xenoSplitter to pull the hivenumber rather than base things on the name." \ No newline at end of file diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml index 605fab9328f6..ad032ea74fc1 100644 --- a/html/changelogs/archive/2024-06.yml +++ b/html/changelogs/archive/2024-06.yml @@ -12,3 +12,32 @@ possible. realforest2001: - admin: Added ckey log to ordering ASRS. +2024-06-05: + Huffie56: + - maptweak: remove emergency shutter that aren't on the frontier between two areas. + - maptweak: added emergency shutter that are missing on the frontier between two + areas. + TheGamerdk: + - rscadd: All officers and NCO's can now recommend people for medals. + coldironwarrior: + - rscadd: Doctors will spawn in dark blue scrubs by default; Setting your preferred + job title to "Surgeon" for doctor roles will now spawn you in green scrubs + realforest2001: + - rscadd: Added a print button to the ASRS audit log. + - bugfix: Changing an Identification Computer to is_weyland (formerly is_centcom) + now works correctly and allows assignment of corporate accesses or presets. + - code_imp: Added two procs for interpreting WY access information in the UI. + - code_imp: Added separate role groups for PMC and Corporate job defines. + - rscadd: Added ACCESS_WY_DATABASE as a requirement to use the WY subtype console. + - rscadd: Added a WY subtype for crew monitor. + - code_imp: Renamed the faction defines explicitly relating to static defences due + to confusion over FACTION_WY and FACTION_WEYLAND. + - rscadd: Added Forsaken sub category to orbit menu. Also adds an "Other" sub category + for xeno hives, to split the main hive on its own. + - code_imp: Changed xenoSplitter to pull the hivenumber rather than base things + on the name. + - rscadd: Adds USCM Observer preset, a copy of CO with a different name. + - rscadd: Added cameras to Working Joe uniforms. + vero5123: + - bugfix: Fixes overwatch console coordinate comment UI crash + - bugfix: Fixes chat UI crash after entering a custom font diff --git a/icons/mob/humans/onmob/ties.dmi b/icons/mob/humans/onmob/ties.dmi index 535e2cc69181..ac563deffbac 100644 Binary files a/icons/mob/humans/onmob/ties.dmi and b/icons/mob/humans/onmob/ties.dmi differ diff --git a/icons/mob/humans/species/r_human.dmi b/icons/mob/humans/species/r_human.dmi index 3e8f63d9f312..4ab300efe5dc 100644 Binary files a/icons/mob/humans/species/r_human.dmi and b/icons/mob/humans/species/r_human.dmi differ diff --git a/icons/mob/humans/undershirt.dmi b/icons/mob/humans/undershirt.dmi index 225d413ae0f4..468778851c4c 100644 Binary files a/icons/mob/humans/undershirt.dmi and b/icons/mob/humans/undershirt.dmi differ diff --git a/icons/mob/humans/underwear.dmi b/icons/mob/humans/underwear.dmi index b639d0a61535..3276ca12aeb8 100644 Binary files a/icons/mob/humans/underwear.dmi and b/icons/mob/humans/underwear.dmi differ diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 179d7076f8c1..f3485de9aa9a 100644 Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ diff --git a/icons/obj/items/clothing/ties.dmi b/icons/obj/items/clothing/ties.dmi index 012eb4a9630a..63c7010db55a 100644 Binary files a/icons/obj/items/clothing/ties.dmi and b/icons/obj/items/clothing/ties.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi b/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi index 8655a8bfcf2c..f01be20a48b4 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi b/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi index ff0c6d60d4ac..90c0f341dd88 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/text.dmi b/icons/obj/items/weapons/guns/ammo_boxes/text.dmi index d9a8d5da3fbc..124c40c1afea 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/text.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/text.dmi differ