From bd18c72d58a97b4dbec913f695e3d0f811ce946d Mon Sep 17 00:00:00 2001 From: c#min7 Date: Tue, 7 Jul 2026 15:13:54 +0100 Subject: [PATCH] Reade and New Gibson Origin Items (#22776) Adds a variety of loadout origin items from Reade and New Gibson. _All sprites by Alsoandanswer/Wezzy._ --- **New Gibsonite Uranium Glass Accessories:** - Adds a bracelet, ring, and necklace that are an emissive green. - Only selectable by characters with the New Gibson origin, incl. Tau Ceti Skrell and Tau Ceti IPCs (for lack of New Gibson-specific skrell/ipc origins). accessories --- **Readic Personalised Breath Mask:** - Adds a recolourable breath mask with an oni mask-like design. - Only selectable by characters with the Reade origin. mask --- **Reade Extreme Racing Jackets:** - Adds an extreme racing jacket with a bi-colour design and various decals that can be selected. - The jacket has an action that temporarily hardens the wearer against heat/near-void conditions for 1 to 2 minutes (though only covers the torso and so cannot replace a soft/voidsuit). - Only selectable by characters with the Reade or New Gibson origins, incl. Tau Ceti Skrell and Tau Ceti IPCs (for lack of New Gibson-specific skrell/ipc origins). jacket Coloured Example: image --- **New Gibsonite Voidsuit and Modkit:** - Adds a sleek/high-tech engineering/ops voidsuit to contrast against the lower tech ones. - A modkit to convert engineering/atmospheric/mining/hangartech voidsuits is available in the loadout. - Has human, skrell, and tajara variants. - A unathi variant has also been sprited but is not available ingame. - Only selectable by characters with the New Gibson, incl. Tau Ceti Skrell (for lack of New Gibson-specific skrell/ipc origins) suit --- code/game/objects/items/devices/modkit.dm | 26 ++++ .../loadout/items/accessories.dm | 6 + .../preference_setup/loadout/items/gloves.dm | 6 + .../preference_setup/loadout/items/mask.dm | 6 + .../preference_setup/loadout/items/suit.dm | 23 +++ .../preference_setup/loadout/items/utility.dm | 6 + .../preference_setup/loadout/items/wrists.dm | 6 + code/modules/clothing/masks/breath.dm | 12 ++ code/modules/clothing/rings/rings.dm | 9 ++ code/modules/clothing/spacesuits/void/misc.dm | 137 +++++++++++++++++ code/modules/clothing/suits/miscellaneous.dm | 141 ++++++++++++++++++ .../clothing/under/accessories/accessory.dm | 15 ++ code/modules/clothing/wrists/wrists.dm | 15 ++ .../kermit-reade-newgibson-origin-items.yml | 9 ++ .../clothing/voidsuit/newgibson_voidsuit.dmi | Bin 0 -> 3553 bytes .../newgibson_uraniumglass_necklace.dmi | Bin 0 -> 858 bytes .../biesel/newgibson_uraniumglass_ring.dmi | Bin 0 -> 302 bytes .../breath/human/biesel/reade_breath_mask.dmi | Bin 0 -> 2802 bytes .../human/biesel/reade_racing_jacket.dmi | Bin 0 -> 1341 bytes .../newgibson_uraniumglass_bracelet.dmi | Bin 0 -> 408 bytes icons/obj/mining_contained.dmi | Bin 10278 -> 11118 bytes 21 files changed, 417 insertions(+) create mode 100644 html/changelogs/kermit-reade-newgibson-origin-items.yml create mode 100644 icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi create mode 100644 icons/obj/item/clothing/accessory/human/biesel/newgibson_uraniumglass_necklace.dmi create mode 100644 icons/obj/item/clothing/gloves/human/biesel/newgibson_uraniumglass_ring.dmi create mode 100644 icons/obj/item/clothing/mask/breath/human/biesel/reade_breath_mask.dmi create mode 100644 icons/obj/item/clothing/suit/storage/toggle/human/biesel/reade_racing_jacket.dmi create mode 100644 icons/obj/item/clothing/wrists/human/biesel/newgibson_uraniumglass_bracelet.dmi diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm index 4c75849e0f9..477a9066cd7 100644 --- a/code/game/objects/items/devices/modkit.dm +++ b/code/game/objects/items/devices/modkit.dm @@ -241,6 +241,32 @@ /obj/item/rig_assembly/industrial = /obj/item/rig_assembly/industrial/himeo ) +/obj/item/voidsuit_modkit/newgibson + name = "new gibsonite EVA suit modkit" + contained_sprite = TRUE + icon = 'icons/obj/mining_contained.dmi' + icon_state = "newgibson_kit" + item_state = "newgibson_kit" + desc = "A simple cardboard box containing the requisition forms, permits, and decal kits for New Gibson EVA equipment." + + suit_options = list( + /obj/item/clothing/suit/space/void/mining = /obj/item/clothing/suit/space/void/mining/newgibson, + /obj/item/clothing/head/helmet/space/void/mining = /obj/item/clothing/head/helmet/space/void/mining/newgibson, + + /obj/item/clothing/suit/space/void/ops = /obj/item/clothing/suit/space/void/ops/newgibson, + /obj/item/clothing/head/helmet/space/void/ops = /obj/item/clothing/head/helmet/space/void/ops/newgibson, + + /obj/item/clothing/suit/space/void/engineering = /obj/item/clothing/suit/space/void/engineering/newgibson, + /obj/item/clothing/head/helmet/space/void/engineering = /obj/item/clothing/head/helmet/space/void/engineering/newgibson, + + /obj/item/clothing/suit/space/void/atmos = /obj/item/clothing/suit/space/void/atmos/newgibson, + /obj/item/clothing/head/helmet/space/void/atmos = /obj/item/clothing/head/helmet/space/void/atmos/newgibson, + ) + +/obj/item/voidsuit_modkit/newgibson/mechanics_hints(mob/user, distance, is_adjacent) + . += ..() + . += "This modkit can be used to convert an industrial or engineering hardsuit into a New Gibsonite variant." + /obj/item/voidsuit_modkit/ceres_lance_unathi name = "\improper Ceres' Lance voidsuit kit" desc = "A highly complicated device that allows you to convert a Ceres' Lancer suit into its Unathi-fitted counterpart and vice versa. Practical!" diff --git a/code/modules/client/preference_setup/loadout/items/accessories.dm b/code/modules/client/preference_setup/loadout/items/accessories.dm index ebdd7fa5a0f..9839411d766 100644 --- a/code/modules/client/preference_setup/loadout/items/accessories.dm +++ b/code/modules/client/preference_setup/loadout/items/accessories.dm @@ -645,6 +645,12 @@ ABSTRACT_TYPE(/datum/gear/accessory) necklace_uncolored["large silver pendant"] = /obj/item/clothing/accessory/necklace/colorable/twopiece/pendant/silver/fat gear_tweaks += new /datum/gear_tweak/path(necklace_uncolored) +/datum/gear/accessory/newgibson_uraniumglass_necklace + display_name = "new gibsonite uranium glass necklace" + path = /obj/item/clothing/accessory/newgibson_uraniumglass_necklace + flags = GEAR_HAS_DESC_SELECTION + origin_restriction = list(/singleton/origin_item/origin/new_gibson, /singleton/origin_item/origin/skrell_biesel, /singleton/origin_item/origin/ipc_tau_ceti) + /datum/gear/accessory/visegradi_sweater display_name = "visegradi patterned sweater" path = /obj/item/clothing/accessory/sweater/visegradi diff --git a/code/modules/client/preference_setup/loadout/items/gloves.dm b/code/modules/client/preference_setup/loadout/items/gloves.dm index ad20261b920..259efc16394 100644 --- a/code/modules/client/preference_setup/loadout/items/gloves.dm +++ b/code/modules/client/preference_setup/loadout/items/gloves.dm @@ -68,6 +68,12 @@ ringtype["ring, plastic"] = /obj/item/clothing/ring/material/plastic gear_tweaks += new /datum/gear_tweak/path(ringtype) +/datum/gear/gloves/ring/newgibson_uraniumglass_ring + display_name = "new gibsonite uranium glass ring" + path = /obj/item/clothing/ring/newgibson_uraniumglass_ring + flags = GEAR_HAS_DESC_SELECTION + origin_restriction = list(/singleton/origin_item/origin/new_gibson, /singleton/origin_item/origin/skrell_biesel, /singleton/origin_item/origin/ipc_tau_ceti) + /datum/gear/gloves/circuitry display_name = "gloves, circuitry (empty)" path = /obj/item/clothing/gloves/circuitry diff --git a/code/modules/client/preference_setup/loadout/items/mask.dm b/code/modules/client/preference_setup/loadout/items/mask.dm index 0185ff12854..d67852bc78f 100644 --- a/code/modules/client/preference_setup/loadout/items/mask.dm +++ b/code/modules/client/preference_setup/loadout/items/mask.dm @@ -31,3 +31,9 @@ path = /obj/item/clothing/mask/breath/gadpathur flags = GEAR_HAS_DESC_SELECTION origin_restriction = list(/singleton/origin_item/origin/gadpathur) + +/datum/gear/mask/reade_breath_mask + display_name = "readic personalised oxygen mask" + path = /obj/item/clothing/mask/breath/reade + flags = GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION + origin_restriction = list(/singleton/origin_item/origin/reade) diff --git a/code/modules/client/preference_setup/loadout/items/suit.dm b/code/modules/client/preference_setup/loadout/items/suit.dm index a4f4063e05d..8b0c64e380a 100644 --- a/code/modules/client/preference_setup/loadout/items/suit.dm +++ b/code/modules/client/preference_setup/loadout/items/suit.dm @@ -660,3 +660,26 @@ ABSTRACT_TYPE(/datum/gear/suit/miscellaneous) description = "A heavy threaded tweed gray jacket. For a different sort of Gentleman." path = /obj/item/clothing/suit/storage/toggle/wizrobe/gentlecoat flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION + +/datum/gear/suit/leather/reade_racing_jacket + display_name = "reade extreme racing jackets selection" + description = "A selection of racing jackets often seen on those at once involved in the underground racing scenes of Reade." + path = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION + origin_restriction = list(/singleton/origin_item/origin/reade, /singleton/origin_item/origin/new_gibson, /singleton/origin_item/origin/skrell_biesel, /singleton/origin_item/origin/ipc_tau_ceti) + +/datum/gear/suit/leather/reade_racing_jacket/New() + ..() + var/list/jackets = list() + jackets["racing jacket, no decal"] = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing + jackets["racing jacket, black-and-white checkers decal"] = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/checker + jackets["racing jacket, eagle decal"] = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/eagle + jackets["racing jacket, eagle decal variant"] = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/eagle2 + jackets["racing jacket, skull decal"] = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/skull + jackets["racing jacket, flame decal"] = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/flames + jackets["racing jacket, knife decal"] = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/knife + jackets["racing jacket, crown decal"] = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/crown + jackets["racing jacket, zombie decal"] = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/zombie + jackets["racing jacket, cat decal"] = /obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/cat + + gear_tweaks += new /datum/gear_tweak/path(jackets) diff --git a/code/modules/client/preference_setup/loadout/items/utility.dm b/code/modules/client/preference_setup/loadout/items/utility.dm index 90315350fa7..6377b3d246f 100644 --- a/code/modules/client/preference_setup/loadout/items/utility.dm +++ b/code/modules/client/preference_setup/loadout/items/utility.dm @@ -116,6 +116,12 @@ allowed_roles = list("Shaft Miner", "Operations Manager", "Ship Engineer", "Atmospheric Technician", "Chief Engineer", "Engineering Apprentice", "Engineering Personnel", "Operations Personnel") origin_restriction = list(/singleton/origin_item/origin/himeo, /singleton/origin_item/origin/ipc_himeo, /singleton/origin_item/origin/free_council) +/datum/gear/utility/newgibson_voidsuit_kit + display_name = "new gibsonite voidsuit kit" + path = /obj/item/voidsuit_modkit/newgibson + allowed_roles = list("Shaft Miner", "Operations Manager", "Ship Engineer", "Atmospheric Technician", "Chief Engineer", "Engineering Apprentice", "Engineering Personnel", "Operations Personnel") + origin_restriction = list(/singleton/origin_item/origin/new_gibson, /singleton/origin_item/origin/skrell_biesel) //A New Gibsonite tajara origin will also need to be added here if/when one is made. + // See the IPC-exclusive tab for the human variant. /datum/gear/utility/assunzione_kit display_name = "assunzionii voidsuit kit" diff --git a/code/modules/client/preference_setup/loadout/items/wrists.dm b/code/modules/client/preference_setup/loadout/items/wrists.dm index d2febc234d7..b1ef86c0741 100644 --- a/code/modules/client/preference_setup/loadout/items/wrists.dm +++ b/code/modules/client/preference_setup/loadout/items/wrists.dm @@ -18,6 +18,12 @@ display_name = "slap bracelet" path = /obj/item/clothing/wrists/slap +/datum/gear/wrists/newgibson_uraniumglass_bracelet + display_name = "new gibsonite uranium glass bracelet" + path = /obj/item/clothing/wrists/newgibson_uraniumglass_bracelet + flags = GEAR_HAS_DESC_SELECTION + origin_restriction = list(/singleton/origin_item/origin/new_gibson, /singleton/origin_item/origin/skrell_biesel, /singleton/origin_item/origin/ipc_tau_ceti) + /datum/gear/wrists/watch display_name = "watch selection" description = "A selection of watches." diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 206d77251af..8ec65f0de4f 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -43,3 +43,15 @@ contained_sprite = TRUE species_restricted = list(BODYTYPE_SKRELL) adjustable = FALSE + +/obj/item/clothing/mask/breath/reade + name = "readic breath mask" + desc = "A personalised breath mask, with design features commonly seen from Reade. It is designed to be both practical and stylish." + icon = 'icons/obj/item/clothing/mask/breath/human/biesel/reade_breath_mask.dmi' + icon_state = "reademask" + item_state = "reademask" + worn_overlay = "airtube" + contained_sprite = TRUE + has_accents = TRUE + build_from_parts = TRUE + diff --git a/code/modules/clothing/rings/rings.dm b/code/modules/clothing/rings/rings.dm index 9f48bbd7bce..23591e5e29d 100644 --- a/code/modules/clothing/rings/rings.dm +++ b/code/modules/clothing/rings/rings.dm @@ -11,6 +11,15 @@ if(ishuman(A) && user != A) user.visible_message(SPAN_WARNING("\The [user] gets down on one knee, presenting \the [src] to [A]."), SPAN_WARNING("You get down on one knee, presenting \the [src] to [A].")) +/obj/item/clothing/ring/newgibson_uraniumglass_ring + name = "uranium glass ring" + desc = "A ring made out of a radiofluorescent, green, uranium glass. It is only marginally radioactive. Commonly seen worn by New Gibsonites." + icon = 'icons/obj/item/clothing/gloves/human/biesel/newgibson_uraniumglass_ring.dmi' + icon_state = "newgibson_ring" + item_state = "newgibson_ring" + plane = ABOVE_LIGHTING_PLANE + contained_sprite = TRUE + //Reagent Rings /obj/item/clothing/ring/reagent diff --git a/code/modules/clothing/spacesuits/void/misc.dm b/code/modules/clothing/spacesuits/void/misc.dm index f98cfd05dfb..7ec6b82a8da 100644 --- a/code/modules/clothing/spacesuits/void/misc.dm +++ b/code/modules/clothing/spacesuits/void/misc.dm @@ -1175,3 +1175,140 @@ light_range = 6 light_color = "#FFFFFF" siemens_coefficient = 0.35 + +// New Gibsonite Voidsuits +/obj/item/clothing/head/helmet/space/void/mining/newgibson + name = "new gibsonite mining voidsuit helmet" + desc = "A sleek and high-tech space helmet fitted with advanced life support systems and reactive systems enhanced with phoronic circuitry.\ + Much of the advanced sensor equipment usually installed appears to have been stripped out. It has splotches of fluorescent uranium paint on it, \ + from a past or current owner. Commonly seen in use by the mining and EVA engineering teams of New Gibson or the small satellites of Reade." + icon = 'icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi' + icon_state = "newgibson_helm" + item_state = "newgibson_helm" + item_state_slots = list( + slot_l_hand_str = "mining_helm", + slot_r_hand_str = "mining_helm" + ) + + light_overlay = "helmet_light_dual" + + species_restricted = list(BODYTYPE_HUMAN) + icon_supported_species_tags = list("taj", "skr") + refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_TAJARA, BODYTYPE_SKRELL) + +/obj/item/clothing/suit/space/void/mining/newgibson + name = "new gibsonite mining voidsuit" + desc = "A sleek and high-tech space suit fitted with advanced life support systems and reactive systems enhanced with phoronic circuitry. \ + It has splotches of fluorescent uranium paint on it, from a past or current owner. Commonly seen in use by the mining teams of New Gibson \ + or the small satellites of Reade." + icon = 'icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi' + item_state = "newgibson" + icon_state = "newgibson" + item_state_slots = list( + slot_l_hand_str = "mining", + slot_r_hand_str = "mining" + ) + species_restricted = list(BODYTYPE_HUMAN) + icon_supported_species_tags = list("taj", "skr") + refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_TAJARA, BODYTYPE_SKRELL) + +/obj/item/clothing/head/helmet/space/void/engineering/newgibson + name = "new gibsonite engineering voidsuit helmet" + desc = "A sleek and high-tech space helmet fitted with advanced life support systems and reactive systems enhanced with phoronic circuitry.\ + Much of the advanced sensor equipment usually installed appears to have been stripped out. It has splotches of fluorescent uranium paint on it, \ + from a past or current owner. Commonly seen in use by the mining and EVA engineering teams of New Gibson or the small satellites of Reade." + icon = 'icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi' + item_state = "newgibson_helm" + icon_state = "newgibson_helm" + light_overlay = "helmet_light_dual" + item_state_slots = list( + slot_l_hand_str = "engineering_helm", + slot_r_hand_str = "engineering_helm" + ) + species_restricted = list(BODYTYPE_HUMAN) + icon_supported_species_tags = list("taj", "skr") + refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_TAJARA, BODYTYPE_SKRELL) + +/obj/item/clothing/suit/space/void/engineering/newgibson + name = "new gibsonite engineering voidsuit" + desc = "A sleek and high-tech space suit fitted with advanced life support systems and reactive systems enhanced with phoronic circuitry. \ + It has splotches of fluorescent uranium paint on it, from a past or current owner. Commonly seen in use by the mining teams of New Gibson \ + or the small satellites of Reade." + icon = 'icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi' + item_state = "newgibson" + icon_state = "newgibson" + item_state_slots = list( + slot_l_hand_str = "engineering", + slot_r_hand_str = "engineering" + ) + species_restricted = list(BODYTYPE_HUMAN) + icon_supported_species_tags = list("taj", "skr") + refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_TAJARA, BODYTYPE_SKRELL) + +/obj/item/clothing/head/helmet/space/void/atmos/newgibson + name = "new gibsonite atmospherics voidsuit helmet" + desc = "A sleek and high-tech space helmet fitted with advanced life support systems and reactive systems enhanced with phoronic circuitry.\ + Much of the advanced sensor equipment usually installed appears to have been stripped out. It has splotches of fluorescent uranium paint on it, \ + from a past or current owner. Commonly seen in use by the mining and EVA engineering teams of New Gibson or the small satellites of Reade." + icon = 'icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi' + item_state = "newgibson_helm" + icon_state = "newgibson_helm" + item_state_slots = list( + slot_l_hand_str = "atmos_helm", + slot_r_hand_str = "atmos_helm" + ) + + light_overlay = "helmet_light_dual" + species_restricted = list(BODYTYPE_HUMAN) + icon_supported_species_tags = list("taj", "skr") + refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_TAJARA, BODYTYPE_SKRELL) + +/obj/item/clothing/suit/space/void/atmos/newgibson + name = "new gibsonite atmospherics voidsuit" + desc = "A sleek and high-tech space suit fitted with advanced life support systems and reactive systems enhanced with phoronic circuitry. \ + It has splotches of fluorescent uranium paint on it, from a past or current owner. Commonly seen in use by the EVA mining, engineering, and courier teams of New Gibson or the small satellites of Reade." + icon = 'icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi' + item_state = "newgibson" + icon_state = "newgibson" + item_state_slots = list( + slot_l_hand_str = "atmos", + slot_r_hand_str = "atmos" + ) + + species_restricted = list(BODYTYPE_HUMAN) + icon_supported_species_tags = list("taj", "skr") + refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_TAJARA, BODYTYPE_SKRELL) + +/obj/item/clothing/head/helmet/space/void/ops/newgibson + name = "new gibsonite operations voidsuit helmet" + desc = "A sleek and high-tech space helmet fitted with advanced life support systems and reactive systems enhanced with phoronic circuitry.\ + Much of the advanced sensor equipment usually installed appears to have been stripped out. It has splotches of fluorescent uranium paint on it, \ + from a past or current owner. Commonly seen in use by the EVA mining, engineering, and courier teams of New Gibson or the small satellites of Reade." + icon = 'icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi' + item_state = "newgibson_helm" + icon_state = "newgibson_helm" + item_state_slots = list( + slot_l_hand_str = "hangartech_helm", + slot_r_hand_str = "hangartech_helm" + ) + + light_overlay = "helmet_light_dual" + species_restricted = list(BODYTYPE_HUMAN) + icon_supported_species_tags = list("taj", "skr") + refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_TAJARA, BODYTYPE_SKRELL) + +/obj/item/clothing/suit/space/void/ops/newgibson + name = "new gibsonite operations voidsuit" + desc = "A sleek and high-tech space suit fitted with advanced life support systems and reactive systems enhanced with phoronic circuitry. \ + It has splotches of fluorescent uranium paint on it, from a past or current owner. Commonly seen in use by the EVA mining, engineering, and courier teams of New Gibson or the small satellites of Reade." + icon = 'icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi' + item_state = "newgibson" + icon_state = "newgibson" + item_state_slots = list( + slot_l_hand_str = "hangartech", + slot_r_hand_str = "hangartech" + ) + + species_restricted = list(BODYTYPE_HUMAN) + icon_supported_species_tags = list("taj", "skr") + refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_TAJARA, BODYTYPE_SKRELL) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 5fdd6f660d1..ea9bce08c2d 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -263,6 +263,147 @@ icon_state = "mold_alt" item_state = "mold_alt" +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing + name = "reade extreme racing jacket" + desc = "A synthleather racing jacket. \ + The jacket has various patches and insignia of unsavoury, underground racing groups and sponsors based on and around Reade stitched or printed onto it. \ + It can be tightly strapped and zipped up tight to offer some void protection to the torso, and a thick layer of fire resistant material lines the inside of the \ + jacket — still not the safest to get into an accident in." + icon = 'icons/obj/item/clothing/suit/storage/toggle/human/biesel/reade_racing_jacket.dmi' + icon_state = "racing" + item_state = "racing" + has_accents = TRUE + build_from_parts = TRUE + contained_sprite = TRUE + + // This is a *space* extreme racing jacket so, it will have some moderate protection from some space environmental hazards, but nothing that replaces the need to source proper voidsuits. + // Legs/head/hands are not protected so, you will still be quickly disabled by void barotrauma if not wearing other PPE. + gas_transfer_coefficient = 0.85 + siemens_coefficient = 0.85 + heat_protection = UPPER_TORSO|LOWER_TORSO|ARMS + max_heat_protection_temperature = T0C + 40 + fire_resist = T0C + 40 + max_pressure_protection = 101.3 + + /// Determines if and what decal is applied to the back of the jacket. + var/decal + + /// Boolean. Has the jacket been fastened tight for some moderate void/heat protection? + var/voidproofed = FALSE + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/mechanics_hints(mob/user, distance, is_adjacent) + . += ..() + . += "This jacket can be fastened to provide temporary protection in near-void conditions and moderately heated environments." + . += "It is not a suitable replacement for a proper space suit as it does not offer total void protection, may come loose on its own, and does not cover the entire body." + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/get_mob_overlay(var/mob/living/carbon/human/human, var/mob_icon, var/mob_state, var/slot) + var/image/I = ..() + if(equip_slot == slot_wear_suit) + if(decal) + var/image/decal_overlay = overlay_image(icon, decal, flags = RESET_COLOR) + I.AddOverlays(decal_overlay) + return I + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/verb/voidproof_toggle_verb() + set name = "Fasten/Unfasten Racing Jacket Straps" + set category = "Object" + set src in usr + + if(use_check_and_message(usr)) + return + if(!ismob(src.loc)) + to_chat(usr, SPAN_WARNING("You need to be wearing the jacket to fasten it tight")) + return + if(opened) + to_chat(usr, SPAN_WARNING("The jacket must be zipped up first!")) + return + + if(!do_after(usr, 2 SECONDS)) + return + + if(voidproofed) + usr.visible_message(SPAN_NOTICE("[usr] unfastens the straps of their racing jacket."), + SPAN_NOTICE("You unfasten the straps of your racing jacket. Much comfier and more mobile!")) + playsound(usr, 'sound/items/zip.ogg', 50, 1) + loosen_straps(usr) + else + usr.visible_message(SPAN_NOTICE("[usr] fastens the straps of their racing jacket tight."), + SPAN_NOTICE("You fasten the straps of your racing jacket tight, providing some moderate void/heat protection. This is going to slow you down a bit...")) + playsound(usr, 'sound/items/zip.ogg', 50, 1) + fasten_straps(usr) + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/proc/fasten_straps(mob/user) + // Buffed pressure/gas transfer/heat protection + min_pressure_protection = 5 // Protects against all but a hard void (and even then, your hands/feet/head aren't protected) + gas_transfer_coefficient = 0.20 + max_heat_protection_temperature = T0C + 200 + fire_resist = T0C + 200 + max_pressure_protection = SPACE_SUIT_MAX_PRESSURE*0.8 + slowdown = 0.2 // cause its more umcomfortable, i guess? slightly better than a softsuit + voidproofed = TRUE + + // After a while, the straps automatically loosen. + addtimer(CALLBACK(src, PROC_REF(straps_come_loose), user), rand(60, 120) SECONDS) + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/proc/loosen_straps(mob/user) + min_pressure_protection = initial(min_pressure_protection) + gas_transfer_coefficient = initial(gas_transfer_coefficient) + max_heat_protection_temperature = initial(max_heat_protection_temperature) + fire_resist = initial(fire_resist) + max_pressure_protection = initial(max_pressure_protection) + slowdown = initial(slowdown) + voidproofed = FALSE + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/proc/straps_come_loose(var/mob/user) + if(voidproofed) + to_chat(user, SPAN_WARNING("You feel a strap of the racing jacket come loose!")) + min_pressure_protection = initial(min_pressure_protection) + gas_transfer_coefficient = initial(gas_transfer_coefficient) + max_heat_protection_temperature = initial(max_heat_protection_temperature) + voidproofed = FALSE + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/checker + decal = "decal_checker" + desc = "A synthetic leather racing jacket with a thin layer of protective padding. The jacket has various patches and insignia of unsavoury, underground racing groups and sponsors based on and around Reade stitched or printed onto it. It has a checkered pattern printed on the back." + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/eagle + decal = "decal_eagle" + desc = "A synthetic leather racing jacket with a thin layer of protective padding. The jacket has various patches and insignia of unsavoury, underground racing groups and sponsors based on and around Reade stitched or printed onto it. It has an eagle printed on the back." + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/eagle2 + decal = "decal_eagle2" + desc = "A synthetic leather racing jacket with a thin layer of protective padding. The jacket has various patches and insignia of unsavoury, underground racing groups and sponsors based on and around Reade stitched or printed onto it. It has an eagle printed on the back." + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/skull + decal = "decal_skull" + desc = "A synthetic leather racing jacket with a thin layer of protective padding. The jacket has various patches and insignia of unsavoury, underground racing groups and sponsors based on and around Reade stitched or printed onto it. It has a skull printed on the back." + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/flames + decal = "decal_flames" + desc = "A synthetic leather racing jacket with a thin layer of protective padding. The jacket has various patches and insignia of unsavoury, underground racing groups and sponsors based on and around Reade stitched or printed onto it. It has a flame decal printed on the back." + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/knife + decal = "decal_knife" + desc = "A synthetic leather racing jacket with a thin layer of protective padding. The jacket has various patches and insignia of unsavoury, underground racing groups and sponsors based on and around Reade stitched or printed onto it. It has a bloodied knife printed on the back, much like the notorious The Killer displayed." + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/crown + decal = "decal_crown" + desc = "A synthetic leather racing jacket with a thin layer of protective padding. The jacket has various patches and insignia of unsavoury, underground racing groups and sponsors based on and around Reade stitched or printed onto it. It has a crown printed on the back, much like the legendary The Monarch displayed." + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/zombie + decal = "decal_zombie" + desc = "A synthetic leather racing jacket with a thin layer of protective padding. The jacket has various patches and insignia of unsavoury, underground racing groups and sponsors based on and around Reade stitched or printed onto it. It has a zombie head decal printed on the back, much like the infamous The Zombie displayed." + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/cat + decal = "decal_cat" + desc = "A synthetic leather racing jacket with a thin layer of protective padding. The jacket has various patches and insignia of unsavoury, underground racing groups and sponsors based on and around Reade stitched or printed onto it. It has a cat head printed on the back." + +/obj/item/clothing/suit/storage/toggle/leather_jacket/reade_racing/random/Initialize() + . = ..() + decal = pick("decal_checker", "decal_eagle", "decal_eagle2", "decal_skull", "decal_flames", "decal_knife", "decal_crown", "decal_zombie", "decal_cat") + color = get_random_colour(lower = 150) + accent_color = get_random_colour(1) + //This one has buttons for some reason /obj/item/clothing/suit/storage/toggle/brown_jacket name = "leather jacket" diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index acfa9f3a04f..fa63d2ea21e 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -1454,3 +1454,18 @@ I.plane = ABOVE_LIGHTING_PLANE I.appearance_flags |= KEEP_APART return I + +/obj/item/clothing/accessory/newgibson_uraniumglass_necklace + name = "uranium glass bead necklace" + desc = "A beaded necklace made out of a radiofluorescent, green, uranium glass. It is only marginally radioactive. Commonly seen worn by New Gibsonites." + icon = 'icons/obj/item/clothing/accessory/human/biesel/newgibson_uraniumglass_necklace.dmi' + icon_state = "newgibson_necklace" + item_state = "newgibson_necklace" + plane = ABOVE_LIGHTING_PLANE + contained_sprite = TRUE + +/obj/item/clothing/accessory/newgibson_uraniumglass_necklace/get_accessory_mob_overlay(var/mob/living/carbon/human/H, var/force = FALSE) + var/image/I = ..() + I.plane = ABOVE_LIGHTING_PLANE + I.appearance_flags |= KEEP_APART + return I diff --git a/code/modules/clothing/wrists/wrists.dm b/code/modules/clothing/wrists/wrists.dm index 0c715a050aa..ef76118a3ec 100644 --- a/code/modules/clothing/wrists/wrists.dm +++ b/code/modules/clothing/wrists/wrists.dm @@ -111,3 +111,18 @@ desc = "A pair of sturdy and thick decorative bracers, seeming better for fashion than protection. They're encrusted with ruby-red gems, and made of REAL faux gold." icon_state = "ruby_bracers" item_state = "ruby_bracers" + +/obj/item/clothing/wrists/newgibson_uraniumglass_bracelet + name = "uranium glass bracelet" + desc = "An enamelled, radiofluorescent uranium glass bracelet. Only marginally radioactive. Commonly seen worn on New Gibsonites." + icon = 'icons/obj/item/clothing/wrists/human/biesel/newgibson_uraniumglass_bracelet.dmi' + icon_state = "newgibson_bracelet" + item_state = "newgibson_bracelet" + plane = ABOVE_LIGHTING_PLANE + contained_sprite = TRUE + +/obj/item/clothing/wrists/newgibson_uraniumglass_bracelet/get_mob_overlay(var/mob/living/carbon/human/H) + var/image/I = ..() + I.plane = ABOVE_LIGHTING_PLANE + I.appearance_flags |= KEEP_APART + return I diff --git a/html/changelogs/kermit-reade-newgibson-origin-items.yml b/html/changelogs/kermit-reade-newgibson-origin-items.yml new file mode 100644 index 00000000000..a5094c8fced --- /dev/null +++ b/html/changelogs/kermit-reade-newgibson-origin-items.yml @@ -0,0 +1,9 @@ +author: wezzy/alsoandanswer (sprites), kermit (code) + +delete-after: True + +changes: + - rscadd: "Adds customisable Readic racing jackets." + - rscadd: "Adds New Gibsonite uranium accessories." + - rscadd: "Adds a New Gibson mining/engineering voidsuit with a modkit." + - rscadd: "Adds a personalised Readic breath mask." diff --git a/icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi b/icons/obj/clothing/voidsuit/newgibson_voidsuit.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c01362d86c4bfdc0e29aed03ea6e729aded77b14 GIT binary patch literal 3553 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 literal 0 HcmV?d00001 diff --git a/icons/obj/item/clothing/gloves/human/biesel/newgibson_uraniumglass_ring.dmi b/icons/obj/item/clothing/gloves/human/biesel/newgibson_uraniumglass_ring.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4fef9844e449c6b740fed9134e1e9e4676b2c301 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv{s5m4*8>L*aHU!3%+zT(UdU`_ zw)sxl3!oHZNswPKgTu2MX+Ta>knv?>FNHaeCLNg+q7ba9ztzUpc%_BC z{yq(3{n*ZKW7W+oBs3CF9Gw|9WyWl-L~ZRIzjij9WoO7cD*J5Lic8i&+xFVdQ&MBb@0J$A--~a#s literal 0 HcmV?d00001 diff --git a/icons/obj/item/clothing/mask/breath/human/biesel/reade_breath_mask.dmi b/icons/obj/item/clothing/mask/breath/human/biesel/reade_breath_mask.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e658fac19a91742f942ac6d84355735900fa6359 GIT binary patch literal 2802 zcmb_ec|4SB8-A4&(KJGqWbB!2<2X^4G1)2o~^*$?WK zJ}qa!F0Tllp_+sh@2ecno&}9*T9;jSXdm4YR~0Q zn1AM?E7cX-n!gS|-lz7bqDksc4iOq$lc4D`*)j_+c@eFlJ8AZI60Jf}Yj_D4E4H3d zn)0hXLezN0-~2dTb}mJ^3(te|Kr9jMA*-!-8IihxLw!dvaLRE40C)gnLp`gI?9~Z# zcQJ}M*N-W|<0g>>8t^v79_JfMv11YEBb}hSO4Y&^QHj27_w2W-wqP0Pbl(tJxg`~f zfz%8Pe|mU;?tlKnd;9eKC}j-=X)eUrSf-=lqeHX$v89;ymA3GqN79sBV*1CHH7 zGsv`jGVAF?e)${^Zc~X)2;16`tP_wF%;1SoL#8cm2L}X19zB|*m0mE-l#fn!BYKs| zU-{ZxV7J92H_s>ybu(Bzg*}pgh8#|P8)h&*UP*DI&(3nrx!t0UR}SvFKH1vxO3fQN zt*NQk*AE#_yl{_C|Kp5*%?SvTy!0YE?E3Zcx*LN^og4Pr=2m@b2!pT|+X_ySIho{v z*<9rq7LAHsd~CjU6%6Bx&6Tor#n)As{JodH#I0{XV!=1k(%L6|`_7Titw}XSdtmy{ zEm%P49XaA^Ha3$KUj*`p5l-txOasaD^Bt#C$#`BcRyPi7fs{CBpmuM z;~zKGfNKfWq&wBl#s}B;H^($t9x_mP_SU8c%MA3j! z)9mo!0Q$}pYwN5y*M_%v7&LyvyI@<>ORzVErkmLgiPpf( zNJDkaGi8LbvGglu6b|}t6qlO#-R@Y) z!Vz{hts<#w6VKjL7P6go{N3(69q3}rDYH-Nh}HNyU}8}Zr2B`nxV{1Spo zh8s-rLFCHyhSf7!>rE_%!3cf)Y{%2uNdmofnaZY3x-B9YF?UM-gHwTGkFenB1MHG2*or-eIT;u_By3^2B`FhOM_sl;nsg&wz;yH4}C$wH%-UgbG_U zQ{vMVzf9Dj_ygaW61clx5Bj0DzcNr=ega2cN&&4W4gmih>UkmpO9c_#tlj0#$AR4~ z?xD%q{aR3}wNJNEyIl+1m*?Y@E}x0jG@xl~yLX;1dV4ihHE1yeyn7r7C1J#4^see-95 zVMKo*!5o;guARlRDu|-Kp&rKbsD1UYpL1?ogd_=MA$?)WzVnY3=)Ghp zp0jF->BO)9$$MU=Yw+ z+DBC%Uc-mwI~>`N)u!sdDpQcoHMwuHZ0mgSkt!N-523_dQhX{0`WUSNgH<=c zj#A5vJ&~Z*3iW#Me%O$ApAHQa*@c=6jP1WoTc{UzC_y~>UcQgPs$HwILG zr(bd$yp<_I X5|Jl2;;wRoLo8ryWM){Q?-=P)t-sz`(%E z&C%}e?sRd2rKz??JThoiLj2JdIH8X(i+y@yM?FtwS8tH3ZyCUqBme*a|NsA1VQD`| zPZ}X5lr$v}6c>0X9KgW9-{kGJ#T~l<0004WQchCV=-0C=30(!mabFbn|D^Y#@B+>N4FF9u^c$S;sO3R@VP*@h&3y&#@UjOEs5uU(fl z6{qv1C`EoP_yc{=&WfWrY_^<@x{hi}_8Dgib*ti%ga{F*F!3O@Z4=IF?ZaHfS>vI{ zIo^G<%H7dYZ5ZgX0x8$bu%h{glWwR{f~gQ%gKKO?#GxCEA=<{wCqyh2$__nIcUCvl z_et-@|3ALir|WN;+!*37nTm6nznA$1YmL^S*OWIy000BjNkl~)GY=lp_b4577n@Jf^p35?vgK?#N}%bNPcq@*;C8hDx@IS7Pw8QMcLh5 z^6Q6_$HnzQ1~0$1U29mB@5XBby!^WNAZ5}; zWoT^j-Z}Q#sv>I@b|yECgVo;JTk~}UEY0tY06)KWs@7k$jh9_~E}vV_t|J$#!^^kQ z(rUidKWYao%i~Ii2I>1na8bS=fBuc(PSQ`2inoZ00-fn>BQ;b$&po2WbBc$vUu+Ki^%qa(4{n z_PyV8h_-y4^8=FI{G8i(afIh`)hM_8xek|=u5*4sN?O16V&eeM<=H8>{J9R7?YzqQ z0YV3s*6)>{^V@QsPa~JzT3+q^fN;_C1Hwhm4*&oF000000NfJu1A^D@H{N}v{5$3c z#IE1}Xk*y?fWY

zE%9xPD*f2Us=B<_C0pVYo6sAa4D>-T$AfNsHzO`0;abXMRB3 z`hC0quWy&m5Afq&B0ssI2000000DvFw_lrKFn-Ry3|0OE^aQIUlkH@G6 zgpYt%>4MYg6xM*?5m0;J?Qn=oUxl~m2E=-eZU6uP000000001P004jl0{{R3eocQU0000IP)t-sz`(!? zW;lSyaV(iE12#6mz`#DEli>gW00DGTPE!Ct=GbNc005JER9JLGWpiV4X>fFDZ*Bkp zc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LY zR3K9+FSR^9GpRT~FFvU#F*!9SwM2=FGbOXA7$|AT#hF%=n41b=t+9@jz)7`*HZlh*rc`4JOBWI=W?ubE>{-H zQ`e{g0001R$F+6thi9F$?t`}m0002MAL1woAk+@`*a&Wos&I+`0000m literal 0 HcmV?d00001 diff --git a/icons/obj/mining_contained.dmi b/icons/obj/mining_contained.dmi index 1332882783ef6a5c7270a60aadd112c9cbff6aff..49993a3415b833e35d2e42309db1dba235a604a6 100644 GIT binary patch literal 11118 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 literal 10278 zcmb_?bzD^4xA&n2gh5I=B?JT+Lb^*pBt;r&Nhv{U=4>SX2MY-Mi;0B)(D;v}uxIPqo2hggHnY{Cud72k$SAJErI z;h(gtn<~muFdd&7Fy>>o9H75tbfay!s0cp$Ems}ze!80|*s=i)7xYX zC4yX#WT$WXIeB``cXTR3=GWZaCdN+;Y<}y`H;hdsGQHB$3ZTQ1LO1@(Ac5b$9|R4h z!!nLVAwYi!<)-te3zUS&;0JQjBSatao01>>sj0qy%m2vB9M#&|nsF~n7Qfx0d6`7j zu9G_Y1<3JZZX`&CGp!;-9}L#YbW}iZ6)vU zd!H2ce64K@6y`8oCgk#`lcFu{^qniU>8#FR)vVJvQVQ|&LB5<6fAWZcsB5;5%L839 zkoz^cYFfU54zlHXux3DX$gT-g5Ft5%8eboyORcicG;%0DGSo&?3jH~G-j}$w`EkX_ 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