diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 130a2d23..ff2a7786 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -9239,7 +9239,9 @@ pixel_x = -17; pixel_y = 3 }, -/obj/machinery/recharger, +/obj/machinery/recharger{ + pixel_y = 4 + }, /turf/open/floor/plasteel/grimy, /area/centcom/ferry) "tR" = ( @@ -9518,6 +9520,7 @@ id_tag = "CCDormChemlight"; name = "Kenshin Midori's Bunk" }, +/obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/plasteel, /area/centcom/ferry) "uy" = ( @@ -11091,7 +11094,13 @@ /area/centcom/evac) "yh" = ( /obj/structure/table/wood, -/obj/item/paper/monitorkey, +/obj/item/paper/monitorkey{ + pixel_x = 10; + pixel_y = -3 + }, +/obj/machinery/recharger{ + pixel_y = 4 + }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) "yi" = ( @@ -14324,12 +14333,22 @@ /turf/open/floor/plasteel/white, /area/centcom/holding) "Fk" = ( -/obj/machinery/door/airlock/centcom{ - name = "CentCom"; - opacity = 1 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/carpet/black, -/area/centcom/ferry) +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark, +/area/centcom/control) "Fm" = ( /obj/machinery/shower{ dir = 4 @@ -17669,6 +17688,23 @@ /obj/item/toy/tennis/green, /obj/item/radio/headset/headset_cent, /obj/item/clothing/under/rank/centcom_officer, +/obj/item/clothing/suit/hooded/wintercoat/centcom, +/obj/item/clothing/shoes/jackboots, +/obj/item/pda/lieutenant{ + hidden = 0 + }, +/obj/item/melee/classic_baton/telescopic, +/obj/item/storage/box/survival, +/obj/item/crowbar/red, +/obj/item/card/id/ert{ + assignment = "Off-Duty Intelligence Officer"; + desc = "An ID straight from Central Command."; + name = "Kenshin Midori's ID Card (Off-Duty Intelligence Officer)"; + registered_name = "Kenshin Midori" + }, +/obj/item/encryptionkey/heads/captain, +/obj/item/flashlight/seclite, +/obj/item/gun/energy/e_gun/dragnet/snare, /turf/open/floor/wood, /area/centcom/ferry) "Ms" = ( @@ -19923,9 +19959,6 @@ /area/centcom/holding) "Vn" = ( /obj/structure/table/wood/fancy, -/obj/item/candle/infinite{ - pixel_y = 6 - }, /obj/effect/turf_decal/loading_area{ dir = 1; icon_state = "drain"; @@ -19941,6 +19974,10 @@ pixel_x = 7; pixel_y = 5 }, +/obj/item/candle{ + pixel_x = 1; + pixel_y = 6 + }, /turf/open/floor/wood, /area/centcom/control) "Vo" = ( @@ -20252,13 +20289,6 @@ name = "plating" }, /area/centcom/control) -"Wm" = ( -/obj/machinery/door/airlock/centcom{ - name = "CentCom"; - opacity = 1 - }, -/turf/open/space/basic, -/area/centcom/ferry) "Wn" = ( /obj/effect/turf_decal/loading_area{ dir = 6; @@ -20694,9 +20724,9 @@ /obj/item/reagent_containers/food/snacks/meatballspaghetti{ pixel_y = 14 }, -/obj/item/candle/infinite{ +/obj/item/candle{ pixel_x = 1; - pixel_y = 3 + pixel_y = 6 }, /turf/open/floor/wood, /area/centcom/control) @@ -21235,6 +21265,8 @@ dir = 1 }, /obj/structure/closet/crate/secure{ + anchored = 1; + name = "secure gear crate"; req_access_txt = "101" }, /obj/item/clothing/suit/space/officer, @@ -21243,7 +21275,6 @@ /obj/item/clothing/gloves/combat, /obj/item/implanter/cqc, /obj/item/gun/energy/e_gun/stun, -/obj/item/gun/energy/e_gun/dragnet/snare, /obj/item/radio/headset/headset_cent/commander, /obj/item/clothing/glasses/thermal, /obj/item/clothing/under/syndicate{ @@ -21251,9 +21282,20 @@ }, /obj/item/card/id/ert{ assignment = "Intelligence Officer"; + desc = "An ID straight from Central Command."; name = "Kenshin Midori's ID Card (Intelligence Officer)"; registered_name = "Kenshin Midori" }, +/obj/item/book{ + damtype = "stamina"; + desc = "An old and dusty book, the pages look faded from time while looking at the pages alone makes you tired."; + force = 80; + hitsound = "punch"; + name = "very heavy book"; + throwforce = 160 + }, +/obj/item/storage/box/zipties, +/obj/item/clothing/mask/gas/sechailer, /turf/open/floor/wood, /area/centcom/ferry) "Zz" = ( @@ -54984,14 +55026,14 @@ oe mD mD qR -Wm +ZT mD mD mD oe mD mD -Fk +ZT mD mD mD @@ -63197,7 +63239,7 @@ iu io rN CX -iC +Fk DF DT io @@ -66005,7 +66047,7 @@ nM nM io mQ -iu +io rK iu tN diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 581bb2bc..77964258 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -5,10 +5,10 @@ #define CHANNEL_JUKEBOX 1021 #define CHANNEL_JUKEBOX_START 1016 //The gap between this and CHANNEL_JUKEBOX determines the amount of free jukebox channels. This currently allows 6 jukebox channels to exist. #define CHANNEL_JUSTICAR_ARK 1015 -#define CHANNEL_HEARTBEAT 1014 //sound channel for heartbeats -#define CHANNEL_AMBIENCE 1013 -#define CHANNEL_BUZZ 1012 -#define CHANNEL_BICYCLE 1011 +#define CHANNEL_HEARTBEAT 1020 //sound channel for heartbeats +#define CHANNEL_AMBIENCE 1019 +#define CHANNEL_BUZZ 1018 +#define CHANNEL_BICYCLE 1017 //CIT CHANNELS - TRY NOT TO REGRESS #define CHANNEL_PRED 1010 @@ -79,3 +79,51 @@ 'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\ 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg') + + +//default byond sound environments +#define SOUND_ENVIRONMENT_NONE -1 +#define SOUND_ENVIRONMENT_GENERIC 0 +#define SOUND_ENVIRONMENT_PADDED_CELL 1 +#define SOUND_ENVIRONMENT_ROOM 2 +#define SOUND_ENVIRONMENT_BATHROOM 3 +#define SOUND_ENVIRONMENT_LIVINGROOM 4 +#define SOUND_ENVIRONMENT_STONEROOM 5 +#define SOUND_ENVIRONMENT_AUDITORIUM 6 +#define SOUND_ENVIRONMENT_CONCERT_HALL 7 +#define SOUND_ENVIRONMENT_CAVE 8 +#define SOUND_ENVIRONMENT_ARENA 9 +#define SOUND_ENVIRONMENT_HANGAR 10 +#define SOUND_ENVIRONMENT_CARPETED_HALLWAY 11 +#define SOUND_ENVIRONMENT_HALLWAY 12 +#define SOUND_ENVIRONMENT_STONE_CORRIDOR 13 +#define SOUND_ENVIRONMENT_ALLEY 14 +#define SOUND_ENVIRONMENT_FOREST 15 +#define SOUND_ENVIRONMENT_CITY 16 +#define SOUND_ENVIRONMENT_MOUNTAINS 17 +#define SOUND_ENVIRONMENT_QUARRY 18 +#define SOUND_ENVIRONMENT_PLAIN 19 +#define SOUND_ENVIRONMENT_PARKING_LOT 20 +#define SOUND_ENVIRONMENT_SEWER_PIPE 21 +#define SOUND_ENVIRONMENT_UNDERWATER 22 +#define SOUND_ENVIRONMENT_DRUGGED 23 +#define SOUND_ENVIRONMENT_DIZZY 24 +#define SOUND_ENVIRONMENT_PSYCHOTIC 25 +//If we ever make custom ones add them here + +//"sound areas": easy way of keeping different types of areas consistent. +#define SOUND_AREA_STANDARD_STATION SOUND_ENVIRONMENT_PARKING_LOT +#define SOUND_AREA_LARGE_ENCLOSED SOUND_ENVIRONMENT_QUARRY +#define SOUND_AREA_SMALL_ENCLOSED SOUND_ENVIRONMENT_BATHROOM +#define SOUND_AREA_TUNNEL_ENCLOSED SOUND_ENVIRONMENT_STONEROOM +#define SOUND_AREA_LARGE_SOFTFLOOR SOUND_ENVIRONMENT_CARPETED_HALLWAY +#define SOUND_AREA_MEDIUM_SOFTFLOOR SOUND_ENVIRONMENT_LIVINGROOM +#define SOUND_AREA_SMALL_SOFTFLOOR SOUND_ENVIRONMENT_ROOM +#define SOUND_AREA_ASTEROID SOUND_ENVIRONMENT_CAVE +#define SOUND_AREA_SPACE SOUND_ENVIRONMENT_UNDERWATER +#define SOUND_AREA_LAVALAND SOUND_ENVIRONMENT_MOUNTAINS +#define SOUND_AREA_ICEMOON SOUND_ENVIRONMENT_CAVE +#define SOUND_AREA_WOODFLOOR SOUND_ENVIRONMENT_CITY + +#define INTERACTION_SOUND_RANGE_MODIFIER -3 +#define EQUIP_SOUND_VOLUME 30 \ No newline at end of file diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index df5ea45d..d6673894 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -149,9 +149,14 @@ SUBSYSTEM_DEF(vote) if("5") v += winners[option] //Add the number votes to the pool numbers += (winners[option]*5) //Add the value of the vote to numbers - while (v < DYNAMIC_VOTE_NORMALIZATION) //For low low pop, low vote rounds. - numbers += DYNAMIC_DEFAULT_CHAOS //stops the one person voting from setting the chaos to five and flooding the station with anomalies - v += 1 + if(v < DYNAMIC_VOTE_NORMALIZATION) + while (v < DYNAMIC_VOTE_NORMALIZATION) //For low low pop, low vote rounds. + numbers += DYNAMIC_DEFAULT_CHAOS //stops the one person voting from setting the chaos to five and flooding the station with anomalies + v += 1 + else if (voted.len < GLOB.clients.len) //Have non-voters "vote" 2, if we're not lowpop + for(var/I in 1 to (GLOB.clients.len - voted.len)) + v += 1 + numbers += 2 var/total = 0 for (var/i in numbers) total += i diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index a0090bde..8cb1f333 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -29,9 +29,13 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) obj_flags = NONE var/item_flags = NONE - var/hitsound = null - var/usesound = null - var/throwhitsound = null + + var/hitsound + var/usesound + var/throwhitsound + ///Sound used when equipping the item into a valid slot + var/equip_sound + var/w_class = WEIGHT_CLASS_NORMAL var/total_mass //Total mass in arbitrary pound-like values. If there's no balance reasons for an item to have otherwise, this var should be the item's weight in pounds. var/slot_flags = 0 //This is used to determine on which slots an item can fit. @@ -423,6 +427,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) A.Grant(user) item_flags |= IN_INVENTORY + if(equip_sound && (slot_flags & slotdefine2slotbit(slot))) + playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE) + //sometimes we only want to grant the item's action if it's equipped in a specific slot. /obj/item/proc/item_action_slot_check(slot, mob/user) if(slot == SLOT_IN_BACKPACK || slot == SLOT_LEGCUFFED) //these aren't true slots, so avoid granting actions there diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 1ea8b361..3d56fdb6 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -232,7 +232,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(lit) user.visible_message("[user] calmly drops and treads on \the [src], putting it out instantly.") new type_butt(user.loc) - new /obj/effect/decal/cleanable/ash(user.loc) qdel(src) . = ..() diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index a91b592c..78d3d057 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -11,6 +11,7 @@ max_integrity = 300 var/content_overlays = FALSE //If this is true, the belt will gain overlays based on what it's holding var/worn_overlays = FALSE //worn counterpart of the above. + equip_sound = 'sound/items/equip/toolbelt_equip.ogg' /obj/item/storage/belt/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins belting [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index e14646e2..1d960b21 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -27,8 +27,8 @@ var/mob_storage_capacity = 3 // how many human sized mob/living can fit together inside a closet. var/storage_capacity = 30 //This is so that someone can't pack hundreds of items in a locker/crate then open it in a populated area to crash clients. var/cutting_tool = /obj/item/weldingtool - var/open_sound = 'sound/machines/click.ogg' - var/close_sound = 'sound/machines/click.ogg' + var/open_sound = 'sound/effects/locker_open.ogg' + var/close_sound = 'sound/effects/locker_close.ogg' var/material_drop = /obj/item/stack/sheet/metal var/material_drop_amount = 2 var/delivery_icon = "deliverycloset" //which icon to use when packagewrapped. null to be unwrappable. diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 1d071557..45a49125 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -963,4 +963,12 @@ icon_state = "enzojacket" item_state = "enzojacket" body_parts_covered = CHEST|ARMS -//End \ No newline at end of file +//End + +//Might get moved later since I have no clue where to put this stuff for now - Luke_vale +/obj/item/clothing/suit/toggle/labcoat/formallab + name = "winter labcoat" + desc = "A stark white labcoat, thicker and kitted out with extra fluff to keep you warm even on the coldest of mad sceinctist nights." + icon_state = "labcoat_formal" + item_state = "labcoat_formal" + body_parts_covered = CHEST|ARMS diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 2889242c..d581f8b2 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -16,6 +16,7 @@ var/obj/item/clothing/accessory/attached_accessory var/mutable_appearance/accessory_overlay mutantrace_variation = MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. + equip_sound = 'sound/items/equip/jumpsuit_equip.ogg' /obj/item/clothing/under/worn_overlays(isinhands = FALSE) . = list() @@ -156,4 +157,4 @@ if(SENSOR_COORDS) . += "Its vital tracker and tracking beacon appear to be enabled." if(attached_accessory) - . += "\A [attached_accessory] is attached to it." + . += "\A [attached_accessory] is attached to it." diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index dc89f8b6..130c53ab 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -427,10 +427,10 @@ output += "
...?" else . += "[print_flavor_text()]" - output += "
[url_encode(json_encode(flavor_text))]" + output += "
[url_encode(flavor_text)]" if(ooc_text) output += "

OOC" - output += "
[url_encode(json_encode(ooc_text))]" + output += "
[url_encode(ooc_text)]" SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, msg) . += "*---------*" diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index bfc59e55..b5ec7e12 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -123,7 +123,8 @@ /obj/item/clothing/head/cowboyhat/white = 3, /obj/item/clothing/head/cowboyhat/pink = 3, /obj/item/clothing/shoes/cowboyboots = 3, - /obj/item/clothing/shoes/cowboyboots/black = 3) + /obj/item/clothing/shoes/cowboyboots/black = 3, + /obj/item/clothing/under/polychromic/vsweater = 3) contraband = list(/obj/item/clothing/under/syndicate/tacticool = 3, /obj/item/clothing/under/syndicate/tacticool/skirt = 3, /obj/item/clothing/mask/balaclava = 3, diff --git a/html/statbrowser.html b/html/statbrowser.html index c9856acc..f293891a 100644 --- a/html/statbrowser.html +++ b/html/statbrowser.html @@ -87,7 +87,7 @@ li a:hover:not(.active) { font-size: 12px; margin: 2px 2px; cursor: pointer; - border-radius: 10%; + border-radius: 0%; transition-duration: 0.25s; order: 3; } @@ -764,11 +764,6 @@ function remove_mobexamine() { tab_change("Status"); } -function update_mobexamine(TC) { - turfcontents = JSON.parse(TC); - if(current_tab == "Examine") - draw_listedturf(); -} //turf @@ -959,26 +954,26 @@ function draw_verbs(cat){ function set_theme(which) { if (which == "light") { + document.body.style.backgroundColor = "white"; + document.body.style.color = "black"; document.body.className = ""; set_style_sheet("browserOutput_white"); + setCookie("theme", "white", 365); } else if (which == "dark") { + document.body.style.backgroundColor = "#171717"; + document.body.style.color = "#a4bad6"; document.body.className = "dark"; set_style_sheet("browserOutput"); + setCookie("theme", "dark", 365); } } function set_light_theme() { - document.body.style.backgroundColor = "white"; - document.body.style.color = "black"; - document.body.className = ""; - set_style_sheet("browserOutput_white") + set_theme("light"); } function set_dark_theme() { - document.body.style.backgroundColor = "#171717"; - document.body.style.color = "#a4bad6"; - document.body.className = "dark"; - set_style_sheet("browserOutput") + set_theme("dark"); } function set_style_sheet(sheet) { @@ -1013,6 +1008,22 @@ function create_debug(){ } } +function checkCookie() { + var stylecookie=getCookie("theme"); + if (stylecookie == "dark") { + set_dark_theme(); + } else { + set_light_theme(); + } +} + +function setCookie(cname,cvalue,exdays) { + var d = new Date(); + d.setTime(d.getTime() + (exdays*24*60*60*1000)); + var expires = "expires=" + d.toGMTString(); + document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; +} + function getCookie(cname) { var name = cname + '='; var ca = document.cookie.split(';'); @@ -1026,5 +1037,6 @@ function getCookie(cname) { return ''; } + diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 68b090c9..41f42a43 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/suit_digi.dmi b/icons/mob/suit_digi.dmi index efefb543..cfe1617e 100644 Binary files a/icons/mob/suit_digi.dmi and b/icons/mob/suit_digi.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 9ea46443..39d166fd 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm index 99474806..9777d33c 100644 --- a/modular_citadel/code/game/machinery/vending.dm +++ b/modular_citadel/code/game/machinery/vending.dm @@ -57,6 +57,7 @@ /obj/item/clothing/neck/stole/black = 2, /obj/item/clothing/under/polychromic/stripper = 3, /obj/item/clothing/under/polychromic/bikini = 3, + /obj/item/clothing/under/polychromic/onepeice = 3, /obj/item/clothing/under/polychromic/shortpants/pantsu = 3, /obj/item/clothing/under/polychromic/bulge = 3, /obj/item/clothing/suit/maidapron = 3, diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 062ed470..b43dd4c0 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -218,3 +218,8 @@ name = "Pharoah tunic" category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/nemes + +/datum/gear/fluffcoat + name = "Winter labcoat" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/suit/toggle/labcoat/formallab \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index c6c93ff2..62a40d39 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -458,6 +458,12 @@ path = /obj/item/clothing/under/polychromic/bottomless cost = 2 +/datum/gear/polysweatervirgin + name = "Polychromic Virginkiller Sweater" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/polychromic/vsweater + cost = 2 + /datum/gear/corset name = "Corset" category = SLOT_W_UNIFORM diff --git a/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm b/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm index 1a26629e..a5514898 100644 --- a/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm +++ b/modular_citadel/code/modules/clothing/under/polychromic_clothes.dm @@ -209,4 +209,26 @@ primary_color = "#808080" //RGB in hexcode secondary_color = "#FFFFFF" hastertiary = FALSE - body_parts_covered= CHEST|GROIN \ No newline at end of file + body_parts_covered= CHEST|GROIN + +/obj/item/clothing/under/polychromic/vsweater + name = "virgin killer sweater" + desc = "A sweater designed to be as provocative as possible, with almost all of the back missing, bairly hiding anything from that angle. Warning: Doesn't actually kill virgins." + icon_state = "vkiller" + item_color = "vkiller" + item_state = "rainbow" + primary_color = "#E1D6C9" //RGB in hexcode + secondary_color = "#FFFFFF" + hastertiary = FALSE + body_parts_covered= CHEST|GROIN + +/obj/item/clothing/under/polychromic/onepeice + name = "polychromic swimsuit" + desc = "Perfect for summer, and those who want to have something with a bit more material." + icon_state = "onepeice" + item_color = "onepeice" + item_state = "rainbow" + primary_color = "#010052" //RGB in hexcode + secondary_color = "#eb7a7a" + tertiary_color = "#ffffff" + body_parts_covered = CHEST|GROIN \ No newline at end of file diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi index 5c4c534a..23018f84 100644 Binary files a/modular_citadel/icons/mob/suit_digi.dmi and b/modular_citadel/icons/mob/suit_digi.dmi differ diff --git a/modular_citadel/icons/polyclothes/item/uniform.dmi b/modular_citadel/icons/polyclothes/item/uniform.dmi index 42e122d9..274a4a77 100644 Binary files a/modular_citadel/icons/polyclothes/item/uniform.dmi and b/modular_citadel/icons/polyclothes/item/uniform.dmi differ diff --git a/modular_citadel/icons/polyclothes/mob/uniform.dmi b/modular_citadel/icons/polyclothes/mob/uniform.dmi index b698c210..07d3b1aa 100644 Binary files a/modular_citadel/icons/polyclothes/mob/uniform.dmi and b/modular_citadel/icons/polyclothes/mob/uniform.dmi differ diff --git a/sound/effects/locker_close.ogg b/sound/effects/locker_close.ogg new file mode 100644 index 00000000..124f5d85 Binary files /dev/null and b/sound/effects/locker_close.ogg differ diff --git a/sound/effects/locker_open.ogg b/sound/effects/locker_open.ogg new file mode 100644 index 00000000..86cbcea0 Binary files /dev/null and b/sound/effects/locker_open.ogg differ diff --git a/sound/items/equip/jumpsuit_equip.ogg b/sound/items/equip/jumpsuit_equip.ogg new file mode 100644 index 00000000..bdcc2bb3 Binary files /dev/null and b/sound/items/equip/jumpsuit_equip.ogg differ diff --git a/sound/items/equip/toolbelt_equip.ogg b/sound/items/equip/toolbelt_equip.ogg new file mode 100644 index 00000000..0ef67a3f Binary files /dev/null and b/sound/items/equip/toolbelt_equip.ogg differ