From 1119236ea810f34917c26ad6568b030e256c842e Mon Sep 17 00:00:00 2001 From: hazelrat <83198434+hazelrat@users.noreply.github.com> Date: Fri, 25 Oct 2024 18:56:22 +0100 Subject: [PATCH] Golden Deep ghostrole remap (#20031) **This is up for review.** - Remaps the Golden Deep ghostrole to be better. - Includes new uniforms for menial Golden Deep synthetics, and new Golden Deep voidsuits. - Includes the clothes dyer, a new item that changes the colour of recolourable clothing to whatever the user wishes. Adds it exclusively to the Golden Deep ship, so the merchant can customise their drip as much as if they were in the loadout, since pretty much all of the newer GD clothing is recolourable. Works for both the regular colour and the accent colour. - Uses submaps for the warehouse. - A few semi-empty spaces exist right now which will be filled once the sprites for what's going to go there are complete, particularly in the great hall. - The armoury is intended to be pretty strong - it's a cargo freighter with very valuable cargo, so you have an unusually hard fight to get said cargo if you board. It contains a laser rifle, a combat shotgun (with a box of EMP shells, notably, with the idea that the Hoplan should be particularly good at restraining other synthetics), two energy glaives, and two pistols intended for the Hoplan. There are also two machine pistols and two energy carbines, intended for if the Hoplan wish to arm the rest of the crew. - Adds the ship to Valley Hale - has the OK from lore, as far as I know. --- aurorastation.dme | 2 + code/__DEFINES/access.dm | 9 + code/game/machinery/suit_cycler_units.dm | 23 + .../objects/items/devices/clothes_dyer.dm | 60 + code/game/turfs/simulated/shuttle_turfs.dm | 3 + code/modules/clothing/factions/goldendeep.dm | 22 + code/modules/clothing/spacesuits/void/misc.dm | 66 +- .../clothing/under/accessories/accessory.dm | 5 + code/modules/merchant/merchant_programs.dm | 4 +- html/changelogs/hazelmouse-goldendeep.yml | 60 + .../uniforms/goldendeep_porter_uniform.dmi | Bin 0 -> 2321 bytes icons/obj/clothing/voidsuit/golden_deep.dmi | Bin 887 -> 8632 bytes maps/away/ships/golden_deep/golden_deep.dm | 86 +- maps/away/ships/golden_deep/golden_deep.dmm | 143737 +++++++++++++++ maps/away/ships/golden_deep/golden_deep.jsonc | 12 + .../ships/golden_deep/golden_deep_areas.dm | 135 +- .../golden_deep/golden_deep_ghostroles.dm | 114 +- .../golden_deep/golden_deep_landmarks.dm | 131 + .../golden_deep/golden_deep_merchant.dmm | 31047 ---- .../ships/golden_deep/golden_deep_submaps.dmm | 1592 + 20 files changed, 145929 insertions(+), 31179 deletions(-) create mode 100644 code/game/objects/items/devices/clothes_dyer.dm create mode 100644 html/changelogs/hazelmouse-goldendeep.yml create mode 100644 icons/clothing/under/uniforms/goldendeep_porter_uniform.dmi create mode 100644 maps/away/ships/golden_deep/golden_deep.dmm create mode 100644 maps/away/ships/golden_deep/golden_deep.jsonc create mode 100644 maps/away/ships/golden_deep/golden_deep_landmarks.dm delete mode 100644 maps/away/ships/golden_deep/golden_deep_merchant.dmm create mode 100644 maps/away/ships/golden_deep/golden_deep_submaps.dmm diff --git a/aurorastation.dme b/aurorastation.dme index 700b107815d..d51f20d3113 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1137,6 +1137,7 @@ #include "code\game\objects\items\devices\auto_cpr.dm" #include "code\game\objects\items\devices\binoculars.dm" #include "code\game\objects\items\devices\chameleonproj.dm" +#include "code\game\objects\items\devices\clothes_dyer.dm" #include "code\game\objects\items\devices\cosmetic_surgery_kit.dm" #include "code\game\objects\items\devices\debugger.dm" #include "code\game\objects\items\devices\dociler.dm" @@ -3934,6 +3935,7 @@ #include "maps\away\ships\golden_deep\golden_deep.dm" #include "maps\away\ships\golden_deep\golden_deep_areas.dm" #include "maps\away\ships\golden_deep\golden_deep_ghostroles.dm" +#include "maps\away\ships\golden_deep\golden_deep_landmarks.dm" #include "maps\away\ships\hegemony\fishing_trawler\fishing_league_trawler.dm" #include "maps\away\ships\hegemony\fishing_trawler\fishing_league_trawler_areas.dm" #include "maps\away\ships\hegemony\fishing_trawler\fishing_league_trawler_ghostroles.dm" diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index dad202c54ec..bb79b8193dd 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -670,10 +670,12 @@ id = ACCESS_HEPHAESTUS access_type = ACCESS_TYPE_CENTCOM +// For the Golden Deep ghostrole. This is the access for the merchant and guards, but not for the owned synthetics. #define ACCESS_GOLDEN_DEEP 217 /datum/access/golden_deep id = ACCESS_GOLDEN_DEEP access_type = ACCESS_TYPE_CENTCOM + desc = "Golden Deep" #define ACCESS_KONYANG_POLICE 218 /datum/access/konyang_police @@ -733,6 +735,13 @@ id = ACCESS_AUTAKH access_type = ACCESS_TYPE_CENTCOM +// For the Golden Deep ghostrole. This is for the owned synthetics, so they lack some of the access their superiors enjoy. +#define ACCESS_GOLDEN_DEEP_OWNED 229 +/datum/access/golden_deep_owned + id = ACCESS_GOLDEN_DEEP_OWNED + access_type = ACCESS_TYPE_CENTCOM + desc = "Golden Deep, Limited Access" + //guest rooms - for any ship/event that requires hotel-esque rooms #define ACCESS_GUEST_ROOMS 230 //use with req_one_access diff --git a/code/game/machinery/suit_cycler_units.dm b/code/game/machinery/suit_cycler_units.dm index aba7fefef7c..4771d7ae085 100644 --- a/code/game/machinery/suit_cycler_units.dm +++ b/code/game/machinery/suit_cycler_units.dm @@ -337,3 +337,26 @@ /obj/machinery/suit_cycler/offship/tarwa/captain suit = /obj/item/clothing/suit/space/void/unathi_pirate/tarwa/captain helmet = /obj/item/clothing/head/helmet/space/void/unathi_pirate/tarwa/captain + +// For owned Golden Deep synthetics, Thesians, and other non-combatants. +/obj/machinery/suit_cycler/offship/golden_deep + model_text = "Golden Deep" + req_one_access = list(ACCESS_GOLDEN_DEEP_OWNED, ACCESS_GOLDEN_DEEP) + departments = list("Golden Deep") + species = list(BODYTYPE_IPC) + suit = /obj/item/clothing/suit/space/void/golden_deep/menial + helmet = /obj/item/clothing/head/helmet/space/void/golden_deep/menial + +// For the Hoplan, armed guards of the ships of the Golden Deep. +/obj/machinery/suit_cycler/offship/golden_deep/hoplan + model_text = "Golden Deep Hoplan" + req_access = list(ACCESS_GOLDEN_DEEP) + suit = /obj/item/clothing/suit/space/void/golden_deep/hoplan + helmet = /obj/item/clothing/head/helmet/space/void/golden_deep/hoplan + +// For merchants of the Golden Deep. Only they're rich enough, duh. +/obj/machinery/suit_cycler/offship/golden_deep/merchant + model_text = "Golden Deep Merchant" + req_access = list(ACCESS_GOLDEN_DEEP) + suit = /obj/item/clothing/suit/space/void/golden_deep + helmet = /obj/item/clothing/head/helmet/space/void/golden_deep diff --git a/code/game/objects/items/devices/clothes_dyer.dm b/code/game/objects/items/devices/clothes_dyer.dm new file mode 100644 index 00000000000..e178f77c7be --- /dev/null +++ b/code/game/objects/items/devices/clothes_dyer.dm @@ -0,0 +1,60 @@ +#define BASE_COLOR "Base Color" +#define ACCENT_COLOR "Accent Color" + +// Only works for clothes that are already recolorable. +/obj/item/device/clothes_dyer + name = "clothes dyer" + desc = "This is a device designed to rapidly dye clothes to new colors. Naysayers say it isn't great for the fabric, but what do they know?" + desc_info = "Select the desired color by using the item on yourself, and alternate between the primary and secondary colour of the item by alt-clicking the item. This only works on clothing items that are recolorable." + icon = 'icons/obj/item/tools/paint_sprayer.dmi' + icon_state = "floor_painter" + item_state = "floor_painter" + contained_sprite = TRUE + /// Controls whether the dyer changes the primary or accent color of the clothes item. + var/selected_mode = BASE_COLOR + /// Contains the colors the dyer is set to for each possible mode. + var/list/colors_by_mode = list(BASE_COLOR = "#FFFFFF", ACCENT_COLOR = "#FFFFFF") + +// Changes the color of the selected mode. +/obj/item/device/clothes_dyer/attack_self(mob/user) + var/selected_color = input(user, "Please select dye color.", "Dye Color", colors_by_mode[selected_mode]) as color|null + if (!selected_color) + return + + colors_by_mode[selected_mode] = selected_color + to_chat(user, SPAN_NOTICE("You adjust the color of [selected_mode].")) + +// Switches the mode. +/obj/item/device/clothes_dyer/AltClick(mob/user) + if (!Adjacent(user)) + return + + var/new_selected_mode = tgui_input_list(user, "Please select which clothing aspect you would like to dye.", "Dyeing Mode", colors_by_mode, selected_mode) + if (!new_selected_mode) + return + + selected_mode = new_selected_mode + to_chat(user, SPAN_NOTICE("You adjust the mode of the clothes dyer to [new_selected_mode].")) + +// Changes the color on clothing. +/obj/item/device/clothes_dyer/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + if (!proximity_flag) + return + + if (!isclothing(target)) + return + + var/obj/item/clothing/target_clothing = target + + playsound(get_turf(target), 'sound/effects/spray3.ogg', 30, TRUE, -6) + switch(selected_mode) + if (BASE_COLOR) + target_clothing.color = colors_by_mode[selected_mode] + if (ACCENT_COLOR) + target_clothing.accent_color = colors_by_mode[selected_mode] + target_clothing.update_icon() + target_clothing.update_clothing_icon() + to_chat(user, SPAN_NOTICE("You dye the clothing.")) + +#undef BASE_COLOR +#undef ACCENT_COLOR diff --git a/code/game/turfs/simulated/shuttle_turfs.dm b/code/game/turfs/simulated/shuttle_turfs.dm index 1bab12e263c..e1c077f254b 100644 --- a/code/game/turfs/simulated/shuttle_turfs.dm +++ b/code/game/turfs/simulated/shuttle_turfs.dm @@ -60,6 +60,9 @@ /turf/simulated/wall/shuttle/dark/cardinal/gold color = COLOR_GOLD +/turf/simulated/wall/shuttle/dark/cardinal/closet_gold + color = COLOR_CLOSET_GOLD + /turf/simulated/wall/shuttle/dark/long_diagonal_2 name = "test diagonal" icon_state = "d2-we-1" diff --git a/code/modules/clothing/factions/goldendeep.dm b/code/modules/clothing/factions/goldendeep.dm index 81fc2b9bcd2..ec0c16bad53 100644 --- a/code/modules/clothing/factions/goldendeep.dm +++ b/code/modules/clothing/factions/goldendeep.dm @@ -85,6 +85,10 @@ contained_sprite = TRUE has_accents = TRUE +// Unique variation for use with the Golden Deep ghostrole. +/obj/item/clothing/accessory/goldendeep/black + color = "#333333" + /obj/item/clothing/accessory/goldendeep/pompous name = "pompous shirt" desc = "Poofy and ostentatious, this shirt of fine fabric screams wealth." @@ -244,3 +248,21 @@ /obj/item/storage/backpack/goldendeep/baseline icon_state = "sacred_icon_baseline" item_state = "sacred_icon_baseline" + +// Porter uniforms, notably used for the Golden Deep owned synthetic ghostrole. +/obj/item/clothing/under/goldendeep/porter + name = "porter uniform" + desc = "Fashioned by the Golden Deep and still regularly used within its menial workforce, this weather resistant uniform decorates independent delivery workers spur-wide. With padded segments along its arms, legs, and back, the suit is perfect for package carrying rigs." + desc_extended = "Originally the invention of an unknown synthetic, the design of plain utilitarian jumpsuits known as 'Porter Uniforms' has skyrocketed in popularity, with many different firms and organizations within the Golden Deep inventing their own variety. Known not to be particularly comfortable for organic use." + icon_state = "porter_uniform" + item_state = "porter_uniform" + icon = 'icons/clothing/under/uniforms/goldendeep_porter_uniform.dmi' + contained_sprite = TRUE + +/obj/item/clothing/head/goldendeep/porter + name = "porter hood" + desc = "This is a simple and nondescript hood designed to fit over many shapes of head, intended to provide protection from the elements. While originally fashioned by the Golden Deep and remaining particularly popular in it, its use has also branched out widely throughout the spur among independent delivery workers." + icon_state = "porter_hood" + item_state = "porter_hood" + icon = 'icons/clothing/under/uniforms/goldendeep_porter_uniform.dmi' + contained_sprite = TRUE diff --git a/code/modules/clothing/spacesuits/void/misc.dm b/code/modules/clothing/spacesuits/void/misc.dm index 94f9f4f1407..d3e4c1ed1c3 100644 --- a/code/modules/clothing/spacesuits/void/misc.dm +++ b/code/modules/clothing/spacesuits/void/misc.dm @@ -628,6 +628,7 @@ icon_supported_species_tags = null refittable_species = list(BODYTYPE_HUMAN) +// For use by merchants of the Golden Deep. /obj/item/clothing/head/helmet/space/void/golden_deep name = "golden helmet" desc = "A glamorous, decorated helmet plated with gold. Very hefty." @@ -646,7 +647,7 @@ rad = ARMOR_RAD_SMALL ) siemens_coefficient = 0.35 - species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) + species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) brightness_on = 6 /obj/item/clothing/suit/space/void/golden_deep @@ -658,7 +659,6 @@ contained_sprite = 1 slowdown = 1 - w_class = WEIGHT_CLASS_NORMAL armor = list( melee = ARMOR_MELEE_RESISTANT, bullet = ARMOR_BALLISTIC_MEDIUM, @@ -670,7 +670,67 @@ ) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) siemens_coefficient = 0.35 - species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) + species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) + +// For use by non-combatant and non-merchant members of the Golden Deep. +/obj/item/clothing/suit/space/void/golden_deep/menial + name = "golden deep voidsuit" + desc = "This is a deep red voidsuit typical of the Golden Deep, often used by its less ostentatious - and, less wealthy - members to go about the work necessary to uphold the interests of their merchant and Collective." + icon_state = "golden_deep" + item_state = "golden_deep" + armor = list( + melee = ARMOR_MELEE_RESISTANT, + bullet = ARMOR_BALLISTIC_MINOR, + laser = ARMOR_LASER_MINOR, + bomb = ARMOR_BOMB_PADDED, + bio = ARMOR_BIO_SHIELDED, + rad = ARMOR_RAD_RESISTANT + ) + +/obj/item/clothing/head/helmet/space/void/golden_deep/menial + name = "golden deep voidsuit helmet" + desc = "This is a deep red voidsuit helmet typical of the Golden Deep, often used by its less ostentatious - and, less wealthy - members to go about the work necessary to uphold the interests of their merchant and Collective. Clever ergonomics appear to allow the helmet to fit a very diverse range of head shapes, including those of a standard baseline." + icon_state = "golden_deep_helm" + item_state = "golden_deep_helm" + armor = list( + melee = ARMOR_MELEE_RESISTANT, + bullet = ARMOR_BALLISTIC_MINOR, + laser = ARMOR_LASER_MINOR, + bomb = ARMOR_BOMB_PADDED, + bio = ARMOR_BIO_SHIELDED, + rad = ARMOR_RAD_RESISTANT + ) + +// For use by the Hoplan, the Golden Deep's military. +/obj/item/clothing/suit/space/void/golden_deep/hoplan + name = "hoplan voidsuit" + desc = "This is an extremely bulky and heavily made voidsuit used by the Hoplan, the military of the Golden Deep. Designed to provide extreme protection in all conditions, but not particularly comfortable for human use." + icon_state = "hoplan" + item_state = "hoplan" + armor = list( + melee = ARMOR_MELEE_RESISTANT, + bullet = ARMOR_BALLISTIC_MEDIUM, + laser = ARMOR_LASER_MEDIUM, + energy = ARMOR_ENERGY_SMALL, + bomb = ARMOR_BOMB_PADDED, + bio = ARMOR_BIO_SHIELDED, + rad = ARMOR_RAD_SMALL + ) + +/obj/item/clothing/head/helmet/space/void/golden_deep/hoplan + name = "hoplan voidsuit helmet" + desc = "This is an extremely bulky and heavily made voidsuit helmet used by the Hoplan, the military of the Golden Deep. Designed to provide extreme protection in all conditions, but not particularly comfortable for human use." + icon_state = "hoplan_helm" + item_state = "hoplan_helm" + armor = list( + melee = ARMOR_MELEE_RESISTANT, + bullet = ARMOR_BALLISTIC_MEDIUM, + laser = ARMOR_LASER_MEDIUM, + energy = ARMOR_ENERGY_SMALL, + bomb = ARMOR_BOMB_PADDED, + bio = ARMOR_BIO_SHIELDED, + rad = ARMOR_RAD_SMALL + ) /obj/item/clothing/head/helmet/space/void/mining/himeo name = "himeo mining voidsuit helmet" diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index 89a7ede2ad6..c3f828e3371 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -156,6 +156,11 @@ /obj/item/clothing/accessory/proc/flip_message(mob/user) to_chat(user, "You change \the [src] to be on your [src.flipped ? "right" : "left"] side.") +/obj/item/clothing/accessory/update_clothing_icon() + if (ismob(loc)) + var/mob/mob = src.loc + mob.update_inv_wear_suit() + /obj/item/clothing/accessory/red name = "red tie" icon_state = "redtie" diff --git a/code/modules/merchant/merchant_programs.dm b/code/modules/merchant/merchant_programs.dm index fba65d8d08a..fd1aa255569 100644 --- a/code/modules/merchant/merchant_programs.dm +++ b/code/modules/merchant/merchant_programs.dm @@ -260,5 +260,5 @@ required_access_download = list(ACCESS_MERCHANTS_GUILD) /datum/computer_file/program/merchant/golden_deep - required_access_run = list(ACCESS_GOLDEN_DEEP) - required_access_download = list(ACCESS_GOLDEN_DEEP) + required_access_run = list(ACCESS_GOLDEN_DEEP, ACCESS_GOLDEN_DEEP_OWNED) + required_access_download = list(ACCESS_GOLDEN_DEEP, ACCESS_GOLDEN_DEEP_OWNED) diff --git a/html/changelogs/hazelmouse-goldendeep.yml b/html/changelogs/hazelmouse-goldendeep.yml new file mode 100644 index 00000000000..b27ca89dfc4 --- /dev/null +++ b/html/changelogs/hazelmouse-goldendeep.yml @@ -0,0 +1,60 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: hazelmouse + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Remaps the Golden Deep ghostrole to fit newer standards." + - rscadd: "Adds a number of new assets to the game for the Golden Deep, including new voidsuits and menial uniforms." + - rscadd: "Adds the clothes dyer item to the game, used to recolor recolorable clothing. Adds it to the Golden Deep ghostrole." diff --git a/icons/clothing/under/uniforms/goldendeep_porter_uniform.dmi b/icons/clothing/under/uniforms/goldendeep_porter_uniform.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c4e1c13ec0949ab5620b296aca3105e93ce8fb17 GIT binary patch literal 2321 zcma)8XEfUj8~lIc2062^cb*<@-NJHLS71B$iZ&i=Bj2~?K& zjbvSG3maBiSd=H3UhM+{o~Jg!m8_ITm5jv-7PGptY{abJiM79#s)ryXkw|HTq-|1) zlJv*7g5~)sO4X3-YJ6R)T^3Gxudq4JFWJhCzQLQlm5jIQusoa45HY;^7&9i?IBE?6Z z2%{_DeBq);Z!zF%_FPX^j}^aa^Pw?LvEPMB+G2;?z{QKa27hKHQwZgR3$F^G z{&LWrR=ocqhIQV%r|;ARuuzB>v)C^D-L6~mw|X&-$Zv^% zAVSj*S@~@t8CR-{xc#NZHt`4Z=c*;<^L5*??^`~8aY-t2{FZ(~O=mFt7S4+zS zL*Dk?Eo!u4)O*L~=^(?ObL*}m=AY3vIL&2b+bRBQN%bsr0e42@Cb+y`T6qBx*NSCr zcbxhXeYPj(0%k^x+cRI2ui>N|gzV{5)w^WTl)rD}wnRGY3a#e03~lk>;{Xmwyd`EK zKw`bzJ;A50|G(VR@q&ipZGts^;q6ltbdJi1JgP>KH6n!Naqk`tMQv%%Cy5X$J4tGLj@fTtPyaD=cG*V7Tke6zD{H88X7=Vjdd6W6G<0-Ry^bX$= zMS_RGIb7-gyg2P&TFF%Dn^S-hg%diJd(3zR-ZH_w!)wtFLfOgHXe>QY@(#a$nb#(I zQpM1Q7Inv2Vrf!U5m-JQ%r6{CIS#cySuEc_`CW3~;IgN-xR6_mO_Pe{a;>=Dw4$%u zz{}CD5F%$i@%FY`LM5$?#biERNR=fO_K%EK4_qi#~SQ22a*q24=P-`{6BNfA$ zL#ia_m)&NoO8b7|RD-Fwf|^DjB~sURZ}o8QMNVVc_(9y~Lbx12jj(wo$XLO@P`9Jc z9`3oSb7sC4>Zm#w(V$&MG5XUVmXdJHjIV0E=lq?82?<`p=3hfx*)|Z)aB4eb zc`rnY*XnZ{+0U10PbEbDUhh^?D}_*B{n@;m3raRTqli>?l#L6IXu7n zU15+i)lhBu0t-C*cKwMUaJIm4Z-tx830nZ z_uUP7G1~?+bPoI(2z&uoLiC>FH@0SGgfXXu$jX?MloSBy@t1ga!l-wGhN6U3EXSp0 zA->v2+K)BK`KZhW0M*V1!+S4$CC{t)&1F1vVXVjH4o?^~0^Ac(04NXO7+BBT=s#9z zl+hQhL)uuju|z~~)4C5wt2V!?au$6$l~QSqR|ga57yiEzQEy7le;rs+8SdUHGO1Qp zvzPy|2St6iV5F0-6Kb?Zwda2jg@(*>6i{dpvd2LUbZYJ(bp=u@DhHt2e&^0(Tm=;h zKs(2UYDkpveAgQqCwr$~Sp+=Rrz1=NqiXKW+peXN%E$`b!Od^%!+Z~G2EB{MhaT3$ zG&F>~F8039I6*9lSuCZHxE6Y-JF0UhJNc7Q2R*)U{34y#cppVjCAe%U~pGlW0 za~0PikdKz7Z+8}RUm%@ld{C8CJZ-nC&%g&6^J$^FicNYtY$d~4VoQ$g56gE!OSUr^cu{R7N|C21|SA%y}Lj`gNbnJP$DEFIm=9nPaMVO03PDH0h zU}G|cY)C=t7hsGaKa1nS()C~}LsN05`@>xjY#63OWytl+tvm+)JGXek88DC#{`rUL S0Gj^R07iN@b@4Y`V*dr%VrI$! literal 0 HcmV?d00001 diff --git a/icons/obj/clothing/voidsuit/golden_deep.dmi b/icons/obj/clothing/voidsuit/golden_deep.dmi index 64b4e3acb4150d52607deb728d8f3a6f743f4e2a..702feef9768b1069d4b8dae61d4d9eab521a6d42 100644 GIT binary patch literal 8632 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 literal 887 zcmV--1Bm>IP)ik$X>7c>hOOl0yV7m?7?AcgwH5{4Dzex`7sG6Qk$1U-GRd*g=i4Mszh<`$xCwbGAvF<_&mzJr?dkvMz$HR&)5-v7f-4}f zGI$4%kupShRod|2axi#Y_LT?>1P}~;oX;ypEmpzF5L6GikMkL8<+H2w&;&~unojiz zrcDRf6QQ#PM{4VI340zzmS&5t0TK#gwKPkHP)0k-ADb^>KcH7kKHnabIHOBzYZY z4hBrB438jN)5rPTTKJioK`RKyO@cKhszGs;XCicphpyA>pl}L09AM3I(5nfwIR5`| zk6LBll6&)(Xlv(P2CNZNsw_A4_}uNwftuC(t|hcWi|O`fak)#j-L(WhZZ7^j3A5J# z`f8U!L4$wSe3b*=RYljp_f^puV0`U_#g8q*<=9vay!@qAU@(h&4enbJ-Cj0+JEi?X=R*?5g*72_R1)uyE&zNQPiHc1l zX%;TqH-5=7;8uWdAi(BzDrJTBb6_Dei4|7iPNaBOt2}h*(4j-$(r?P&fP>lnN&Wx; N002ovPDHLkV1l{Mpzi