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.
This commit is contained in:
hazelrat
2024-10-25 17:56:22 +00:00
committed by GitHub
parent d799b7354d
commit 1119236ea8
20 changed files with 145929 additions and 31179 deletions
@@ -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 <span style='color:[selected_color]'>[selected_mode]</span>."))
// 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 <span style='color:[colors_by_mode[new_selected_mode]]'>[new_selected_mode]</span>."))
// 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