From ede9f48d188e2f827a01463cd71335a9b908c184 Mon Sep 17 00:00:00 2001
From: CometBlaze <59415394+CometBlaze@users.noreply.github.com>
Date: Fri, 1 Aug 2025 20:53:43 +0100
Subject: [PATCH] Adds a colourable exo-stellar sekeleton (#21073)
Adds a colourable exoskeleton offworlders can choose instead of the
current one. It does the exact same things as the standard exoskeleton,
the only difference is that you can change how it looks.
---
.../loadout/items/xeno/human.dm | 7 +++
code/modules/clothing/spacesuits/rig/rig.dm | 2 +
.../clothing/spacesuits/rig/suits/light.dm | 3 +
html/changelogs/CometBlaze-exoskeleton.yml | 58 ++++++++++++++++++
icons/obj/item/clothing/rig/offworlder.dmi | Bin 5928 -> 10296 bytes
5 files changed, 70 insertions(+)
create mode 100644 html/changelogs/CometBlaze-exoskeleton.yml
diff --git a/code/modules/client/preference_setup/loadout/items/xeno/human.dm b/code/modules/client/preference_setup/loadout/items/xeno/human.dm
index a2fb2e6cac7..4a74b8f76c1 100644
--- a/code/modules/client/preference_setup/loadout/items/xeno/human.dm
+++ b/code/modules/client/preference_setup/loadout/items/xeno/human.dm
@@ -84,6 +84,13 @@
whitelisted = list(SPECIES_HUMAN_OFFWORLD)
sort_category = "Xenowear - Human"
+/datum/gear/offworlder_rig/colorable
+ display_name = "colorable exo-stellar skeleton"
+ path = /obj/item/rig/light/offworlder/colorable
+ whitelisted = list(SPECIES_HUMAN_OFFWORLD)
+ sort_category = "Xenowear - Human"
+ flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION
+
/datum/gear/accessory/offworlder_card
display_name = "scarab passblade"
path = /obj/item/clothing/accessory/badge/passcard/scarab
diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm
index d68822a8a3e..748563eb391 100644
--- a/code/modules/clothing/spacesuits/rig/rig.dm
+++ b/code/modules/clothing/spacesuits/rig/rig.dm
@@ -750,6 +750,8 @@
if(check_slot && check_slot == use_obj)
return
use_obj.forceMove(wearer)
+ if(src.color)
+ use_obj.color = src.color
if(!wearer.equip_to_slot_if_possible(use_obj, equip_to, 0, 1))
use_obj.forceMove(src)
if(check_slot)
diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm
index a2875537d0d..c37d4fa7906 100644
--- a/code/modules/clothing/spacesuits/rig/suits/light.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/light.dm
@@ -241,6 +241,9 @@
cold_protection = UPPER_TORSO
flags_inv = 0
+/obj/item/rig/light/offworlder/colorable
+ icon_state = "offworlder_rig_colorable"
+
/obj/item/rig/light/offworlder/frontier
name = "advanced mobility hardsuit control module"
desc = "Patterned off of the standard Exo-Stellar Skeleton, this sophisticated and light hardsuit is a staple of many armed forces throughout the Frontier. The mobility it grants compared to bulkier suits, while still packing the potential for a versatile toolset, has made it especially popular in the often cramped environments of ships and stations."
diff --git a/html/changelogs/CometBlaze-exoskeleton.yml b/html/changelogs/CometBlaze-exoskeleton.yml
new file mode 100644
index 00000000000..dffb4707864
--- /dev/null
+++ b/html/changelogs/CometBlaze-exoskeleton.yml
@@ -0,0 +1,58 @@
+################################
+# 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: CometBlaze
+
+# 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: "Added a colorable exo-stellar skeletons offworlders can pick in the loadout."
diff --git a/icons/obj/item/clothing/rig/offworlder.dmi b/icons/obj/item/clothing/rig/offworlder.dmi
index 05a869894842970f6d6099ffe35337614a7b7c11..16387c82a93b8450d62f168f09a7ea82c5b116dc 100644
GIT binary patch
literal 10296
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