diff --git a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_cage.dm b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_cage.dm
index 760194d9df..45dd1355c9 100644
--- a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_cage.dm
+++ b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_cage.dm
@@ -31,6 +31,8 @@
var/overlay_layer = -(GENITALS_FRONT_LAYER - 0.01)
var/is_overlay_on
+ var/cage_sprite
+
/obj/item/genital_equipment/chastity_cage/Initialize(mapload, obj/item/key/chastity_key/newkey = null)
. = ..()
@@ -38,8 +40,6 @@
key = newkey
color = pick(list(COLOR_LIGHT_PINK, COLOR_STRONG_VIOLET, null))
- cage_overlay = mutable_appearance(icon, worn_icon_state ? worn_icon_state : "worn_[icon_state]", overlay_layer)
- cage_overlay.color = color //Set the overlay's color to the cage item's
/obj/item/genital_equipment/chastity_cage/Destroy()
if(owner)
@@ -117,6 +117,17 @@
//turn that flag on
ENABLE_BITFIELD(penor.genital_flags, GENITAL_CHASTENED)
+ switch(penor.size)
+ if(1 to 2)
+ cage_sprite = 1
+ if(3 to 4)
+ cage_sprite = 2
+ if(5)
+ cage_sprite = 3
+
+ cage_overlay = mutable_appearance(icon, worn_icon_state ? worn_icon_state : "worn_[icon_state]_[cage_sprite]", overlay_layer)
+ cage_overlay.color = color //Set the overlay's color to the cage item's
+
H.add_overlay(cage_overlay)
is_overlay_on = TRUE
diff --git a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/metal_chastity_cage.dm b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/metal_chastity_cage.dm
index 3a5668a482..ccc3a8be17 100644
--- a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/metal_chastity_cage.dm
+++ b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/metal_chastity_cage.dm
@@ -6,16 +6,24 @@
break_require = TOOL_WELDER
var/jingle_chance = 1.25//in percentage
+ var/mutable_appearance/skin_overlay
+ var/skin_overlay_layer = -(GENITALS_FRONT_LAYER - 0.02)
-/obj/item/genital_equipment/chastity_cage/metal/equip()
+/obj/item/genital_equipment/chastity_cage/metal/equip(user, target, obj/item/organ/genital/penis/penor)
. = ..()
RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/on_move)
+ skin_overlay = mutable_appearance(icon, "worn_[icon_state]_[cage_sprite]_skin", skin_overlay_layer)
+ skin_overlay.color = penor.color
+
+ owner.add_overlay(skin_overlay)
+
/obj/item/genital_equipment/chastity_cage/metal/proc/on_move(atom/old_loc, dir)
if(owner.stat == CONSCIOUS && prob(jingle_chance))
owner.visible_message("[owner.name] jingles slightly as they move.",
"You jingle slightly as you move.")
-/obj/item/genital_equipment/chastity_cage/metal/unequip_process(obj/item/organ/genital/G)
+/obj/item/genital_equipment/chastity_cage/metal/unequip(obj/item/organ/genital/G)
UnregisterSignal(owner, COMSIG_MOVABLE_MOVED)
+ owner.cut_overlay(skin_overlay)
. = ..()
diff --git a/modular_splurt/icons/obj/lewd_items/chastity.dmi b/modular_splurt/icons/obj/lewd_items/chastity.dmi
index 531971b7bb..60fd57b608 100644
Binary files a/modular_splurt/icons/obj/lewd_items/chastity.dmi and b/modular_splurt/icons/obj/lewd_items/chastity.dmi differ