Dominia cape code tweaks (mainly: they all should now display in character setup) (#21363)

Changelog: 
> - rscadd: "The tribunalist medical cape can now have its mantle be
rolled up, like its non-medical tribunalist counterpart."
> - rscadd: "Alt-clicking on tribunalist capes now rolls their mantles
up."
> - bugfix: "All dominian capes should now properly display as attached
to clothing in character setup preview."

I have noticed that non-Zavodskoi dominian capes never seemed to display
as attached in the character setup, and attempting to solve that made me
notice how all the capes are poorly pathed and have vestiges of code
solutions made for their old sprite variations. So this PR, which was
made in like 30 minutes, _attempts_ to fix that.

I also have noticed that the tribunalist medical cape had sprites that
allowed it to be rolled up, but the code did not support that. Now it
does. I also added an alt-click functionality to roll them up, because
why not.
This commit is contained in:
ElorgRHG
2025-09-28 14:13:12 +02:00
committed by GitHub
parent 28a4128ab8
commit f3d39de03d
9 changed files with 108 additions and 124 deletions
@@ -136,15 +136,15 @@ ABSTRACT_TYPE(/datum/gear/religion/dominia)
/datum/gear/religion/dominia/cape
display_name = "dominian outerwear selection"
description = "A selection of capes and outerwear worn by the Moroz Holy Tribunal."
path = /obj/item/clothing/under/dominia/priest
slot = slot_wear_suit
path = /obj/item/clothing/accessory/poncho/dominia_cape/tribunalist
slot = slot_in_backpack
/datum/gear/religion/dominia/cape/New()
..()
var/list/cape = list()
cape["tribunalist red cape"] = /obj/item/clothing/accessory/poncho/dominia/red
cape["tribunalist full cape"] = /obj/item/clothing/accessory/poncho/dominia/red/double
cape["tribunalist surcoat"] = /obj/item/clothing/accessory/poncho/dominia/red/surcoat
cape["tribunalist red cape"] = /obj/item/clothing/accessory/poncho/dominia_cape/tribunalist
cape["tribunalist full cape"] = /obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/double
cape["tribunalist surcoat"] = /obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/surcoat
gear_tweaks += new /datum/gear_tweak/path(cape)
/datum/gear/religion/dominia/accessory
@@ -192,7 +192,7 @@ ABSTRACT_TYPE(/datum/gear/religion/dominia)
/datum/gear/religion/dominia/cape_consular
display_name = "tribunalist cousular cape"
description = "A truly majestic gold and red cape worn by members of the clergy affiliated with His Majesty's Diplomatic Service."
path = /obj/item/clothing/accessory/poncho/dominia/consular
path = /obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/consular
slot = slot_wear_suit
allowed_roles = list("Consular Officer")
@@ -320,6 +320,7 @@
/datum/gear/suit/dominia_cape
display_name = "dominian cape"
path = /obj/item/clothing/accessory/poncho/dominia_cape
slot = slot_in_backpack
flags = GEAR_HAS_DESC_SELECTION
culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi)
@@ -346,6 +347,7 @@
/datum/gear/suit/dominia_cape_colorable
display_name = "dominian cape selection, colorable"
path = /obj/item/clothing/accessory/poncho/dominia_cape/colorable
slot = slot_in_backpack
flags = GEAR_HAS_DESC_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION
description = "A black or white Dominian cape with a colorable stripe that can be used to represent either a generic cape or a Minor House."
culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi)
@@ -359,7 +361,8 @@
/datum/gear/suit/dominia_medical_cape
display_name = "tribunalist medical cape"
path = /obj/item/clothing/accessory/poncho/dominia_cape/hospital
path = /obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/medical
slot = slot_in_backpack
flags = GEAR_HAS_DESC_SELECTION
allowed_roles = list("Chief Medical Officer", "Physician", "Surgeon", "Pharmacist", "Paramedic", "Medical Intern")
culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi)
+80 -114
View File
@@ -48,33 +48,17 @@
item_state = "dominian_cape"
icon_override = null
contained_sprite = TRUE
var/cape_backing_state = "cape_backing"
protects_against_weather = FALSE
/obj/item/clothing/accessory/poncho/dominia_cape/white
name = "white dominian cape"
icon_state = "dominian_capew"
item_state = "dominian_capew"
cape_backing_state = "capew_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/zavod
name = "zavodskoi dominian cape"
icon_state = "dominian_capez"
item_state = "dominian_capez"
cape_backing_state = "capez_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/get_mob_overlay(var/mob/living/carbon/human/human, var/mob_icon, var/mob_state, var/slot)
var/image/I = ..()
if(slot == slot_wear_suit_str)
var/image/cape_backing = image(mob_icon, null, cape_backing_state, human ? human.layer - 0.01 : MOB_LAYER - 0.01)
I.AddOverlays(cape_backing)
return I
/obj/item/clothing/accessory/poncho/dominia_cape/get_accessory_mob_overlay(mob/living/carbon/human/human, force)
var/image/base = ..()
var/image/cape_backing = image(icon, null, cape_backing_state, human ? human.layer - 0.01 : MOB_LAYER - 0.01)
base.AddOverlays(cape_backing)
return base
/obj/item/clothing/accessory/poncho/dominia_cape/strelitz
name = "house strelitz cape"
@@ -86,13 +70,11 @@
name = "white house strelitz cape"
icon_state = "strelitz_capew"
item_state = "strelitz_capew"
cape_backing_state = "capew_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/strelitz/zavod
name = "zavodskoi house strelitz cape"
icon_state = "strelitz_capez"
item_state = "strelitz_capez"
cape_backing_state = "capez_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/volvalaad
name = "house volvalaad cape"
@@ -104,13 +86,11 @@
name = "white house volvalaad cape"
icon_state = "volvalaad_capew"
item_state = "volvalaad_capew"
cape_backing_state = "capew_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/volvalaad/zavod
name = "zavodskoi house volvalaad cape"
icon_state = "volvalaad_capez"
item_state = "volvalaad_capez"
cape_backing_state = "capez_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/kazhkz
name = "house kazhkz cape"
@@ -122,13 +102,11 @@
name = "white house kazhkz cape"
icon_state = "kazhkz_capew"
item_state = "kazhkz_capew"
cape_backing_state = "capew_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/kazhkz/zavod
name = "zavodskoi house kazhkz cape"
icon_state = "kazhkz_capez"
item_state = "kazhkz_capez"
cape_backing_state = "capez_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/hansan
name = "clan han'san cape"
@@ -140,13 +118,11 @@
name = "white clan han'san cape"
icon_state = "hansan_capew"
item_state = "hansan_capew"
cape_backing_state = "capew_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/hansan/zavod
name = "zavodskoi clan han'san cape"
icon_state = "hansan_capez"
item_state = "hansan_capez"
cape_backing_state = "capez_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/caladius
name = "house caladius cape"
@@ -158,13 +134,11 @@
name = "white house caladius cape"
icon_state = "caladius_capew"
item_state = "caladius_capew"
cape_backing_state = "capew_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/caladius/zavod
name = "zavodskoi house caladius cape"
icon_state = "caladius_capez"
item_state = "caladius_capez"
cape_backing_state = "capez_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/zhao
name = "house zhao cape"
@@ -176,13 +150,11 @@
name = "white house zhao cape"
icon_state = "zhao_capew"
item_state = "zhao_capew"
cape_backing_state = "capew_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/zhao/zavod
name = "zavodskoi house zhao cape"
icon_state = "zhao_capez"
item_state = "zhao_capez"
cape_backing_state = "capez_backing"
/obj/item/clothing/accessory/poncho/dominia_cape/colorable
icon_state = "dominian_cape_colorable"
@@ -207,10 +179,88 @@
icon_state = "armsman_mantle"
item_state = "armsman_mantle"
/obj/item/clothing/accessory/poncho/dominia_cape/hospital
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist
name = "tribunalist cape"
desc = "This is a cape in the style of Dominian clergy. The red differentiates the clergy from the nobility who wear traditionally black capes."
desc_extended = "Dominian priests and priestesses are traditionally expected to wear red or golden clothing when discharging \
their duties. Capes are worn as both a fashion statement to attract the attention of crowds and as a simple form of protection\
against the elements."
icon = 'icons/obj/item/clothing/accessory/poncho/dominia_red.dmi'
icon_state = "dominian_cape_red"
item_state = "dominian_cape_red"
var/rolled = FALSE
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/update_clothing_icon()
if(ismob(loc))
var/mob/M = loc
M.update_inv_wear_suit()
get_mob_overlay(TRUE)
get_inv_overlay(TRUE)
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/verb/roll_up_mantle()
set name = "Roll Up Cape Mantle"
set desc = "Roll up your cape's mantle. Doesn't work with some capes."
set category = "Object.Equipped"
set src in usr
if(use_check_and_message(usr))
return FALSE
var/list/icon_states = icon_states(icon)
var/initial_state = initial(icon_state)
var/new_state = "[initial_state]_h"
if(!(new_state in icon_states))
to_chat(usr, SPAN_WARNING("Your cape doesn't allow this!"))
return
rolled = !rolled
to_chat(usr, SPAN_NOTICE("You roll your cape's mantle [rolled ? "up" : "down"]."))
icon_state = rolled ? new_state : initial_state
item_state = rolled ? new_state : initial_state
overlay_state = rolled ? new_state : initial_state
update_icon()
update_clothing_icon()
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/AltClick(mob/user)
roll_up_mantle(user)
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/surcoat
name = "tribunalist surcoat"
desc = "A simple red surcoat commonly worn by Dominian clergy members."
desc_extended = "Spun with rough but hardy fabrics from the Dominian frontier, this surcoat is commonly worn by poorer Tribunal clergy as well as missionaries\
seeking protection from the elements. This garment was popularized by the Kael'kah sect and remains respected as a symbol of humility and poverty amongst priests."
icon = 'icons/obj/item/clothing/accessory/poncho/dominia_surcoat.dmi'
icon_state = "dominian_surcoat"
item_state = "dominian_surcoat"
overlay_state = "dominian_surcoat"
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/double
name = "tribunalist's full cape"
desc = "This is a large cape in the style of Dominian clergy. The symbol of 'The Eye' of the Tribunal is present on both the front and the back."
desc_extended = "This style of cape is among the most flashy and ornate of the Tribunal's garb. Its weight and impracticality of use means that \
it is often only worn by clergy of high station and on special occasions. Lower ranking members of the Tribunal or those who wear it frequently \
are often frowned upon as arrogant and vain."
icon = 'icons/obj/item/clothing/accessory/poncho/dominia_doublecape.dmi'
icon_state = "dominian_doublecape"
item_state = "dominian_doublecape"
overlay_state = "dominian_doublecape"
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/consular
name = "tribunalist consular's cape"
desc = "A truly majestic gold and red cape worn by members of the clergy affiliated with His Majesty's Diplomatic Service."
desc_extended = "His Majesty's Diplomatic Service - as with much of the Empire tends to be dominated by the great houses, though the Service also \
employs may commoners - as long as they can pass the rigorous examinations required to become a full member of the Diplomatic Service."
icon = 'icons/obj/item/clothing/accessory/poncho/dominia_consular_cape.dmi'
icon_state = "dominia_cape_consular"
item_state = "dominia_cape_consular"
overlay_state = "dominia_cape_consular"
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/medical
name = "tribunalist medical cape"
desc = "A white-and-green cape in the style of the Dominian clergy. Worn by those medical workers affiliated with the Moroz Holy Tribunal."
cape_backing_state = ""
desc_extended = null
icon = 'icons/obj/item/clothing/accessory/poncho/dominia_medical_cape.dmi'
icon_state = "dominian_cape_hospital"
item_state = "dominian_cape_hospital"
@@ -514,90 +564,6 @@
name = "black zhao noble dress"
house = "zhao"
/obj/item/clothing/accessory/poncho/dominia
protects_against_weather = FALSE
/obj/item/clothing/accessory/poncho/dominia/red/surcoat
name = "tribunalist surcoat"
desc = "A simple red surcoat commonly worn by Dominian clergy members."
desc_extended = "Spun with rough but hardy fabrics from the Dominian frontier, this surcoat is commonly worn by poorer Tribunal clergy as well as missionaries\
seeking protection from the elements. This garment was popularized by the Kael'kah sect and remains respected as a symbol of humility and poverty amongst priests."
icon = 'icons/obj/item/clothing/accessory/poncho/dominia_surcoat.dmi'
icon_state = "dominian_surcoat"
item_state = "dominian_surcoat"
overlay_state = "dominian_surcoat"
icon_override = null
/obj/item/clothing/accessory/poncho/dominia/red/double
name = "tribunalist's full cape"
desc = "This is a large cape in the style of Dominian clergy. The symbol of 'The Eye' of the Tribunal is present on both the front and the back."
desc_extended = "This style of cape is among the most flashy and ornate of the Tribunal's garb. Its weight and impracticality of use means that \
it is often only worn by clergy of high station and on special occasions. Lower ranking members of the Tribunal or those who wear it frequently \
are often frowned upon as arrogant and vain."
icon = 'icons/obj/item/clothing/accessory/poncho/dominia_doublecape.dmi'
icon_state = "dominian_doublecape"
item_state = "dominian_doublecape"
overlay_state = "dominian_doublecape"
icon_override = null
/obj/item/clothing/accessory/poncho/dominia/red
name = "tribunalist cape"
desc = "This is a cape in the style of Dominian clergy. The red differentiates the clergy from the nobility who wear traditionally black capes."
desc_extended = "Dominian priests and priestesses are traditionally expected to wear red or golden clothing when discharging \
their duties. Capes are worn as both a fashion statement to attract the attention of crowds and as a simple form of protection\
against the elements."
icon = 'icons/obj/item/clothing/accessory/poncho/dominia_red.dmi'
icon_state = "dominian_cape_red"
item_state = "dominian_cape_red"
overlay_state = "dominian_cape_red"
contained_sprite = TRUE
icon_override = null
var/rolled = FALSE
/obj/item/clothing/accessory/poncho/dominia/red/update_clothing_icon()
if(ismob(loc))
var/mob/M = loc
M.update_inv_wear_suit()
get_mob_overlay(TRUE)
get_inv_overlay(TRUE)
/obj/item/clothing/accessory/poncho/dominia/red/verb/roll_up_mantle()
set name = "Roll Up Cape Mantle"
set desc = "Roll up your cape's mantle. Doesn't work with some capes."
set category = "Object.Equipped"
set src in usr
if(use_check_and_message(usr))
return FALSE
var/list/icon_states = icon_states(icon)
var/initial_state = initial(icon_state)
var/new_state = "[initial_state]_h"
if(!(new_state in icon_states))
to_chat(usr, SPAN_WARNING("Your cape doesn't allow this!"))
return
rolled = !rolled
to_chat(usr, SPAN_NOTICE("You roll your cape's mantle [rolled ? "up" : "down"]."))
icon_state = rolled ? new_state : initial_state
item_state = rolled ? new_state : initial_state
overlay_state = rolled ? new_state : initial_state
update_icon()
update_clothing_icon()
/obj/item/clothing/accessory/poncho/dominia/consular
name = "tribunalist consular's cape"
desc = "A truly majestic gold and red cape worn by members of the clergy affiliated with His Majesty's Diplomatic Service."
desc_extended = "His Majesty's Diplomatic Service - as with much of the Empire tends to be dominated by the great houses, though the Service also \
employs may commoners - as long as they can pass the rigorous examinations required to become a full member of the Diplomatic Service."
icon = 'icons/obj/item/clothing/accessory/poncho/dominia_consular_cape.dmi'
icon_state = "dominia_cape_consular"
item_state = "dominia_cape_consular"
overlay_state = "dominia_cape_consular"
contained_sprite = TRUE
icon_override = null
var/rolled = FALSE
/obj/item/clothing/under/dominia/consular
name = "dominian consular officer's uniform"
desc = "The traditional red-black-gold uniform of a member of His Majesty's Diplomatic Service."
@@ -0,0 +1,15 @@
# Your name.
author: ElorgRHG
# 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: "The tribunalist medical cape can now have its mantle be rolled up, like its non-medical tribunalist counterpart."
- rscadd: "Alt-clicking on tribunalist capes now rolls their mantles up."
- bugfix: "All dominian capes should now properly display as attached to clothing in character setup preview."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 973 B

@@ -5119,7 +5119,7 @@
req_access = list(212)
},
/obj/item/clothing/under/dominia/priest,
/obj/item/clothing/accessory/poncho/dominia/red,
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist,
/obj/item/clothing/head/beret/dominia/priest,
/obj/item/flame/lighter/zippo/dominia,
/obj/item/clothing/accessory/flagpatch/dominia,
@@ -3529,7 +3529,7 @@
},
/obj/item/clothing/under/dominia/priest,
/obj/item/clothing/accessory/dominia,
/obj/item/clothing/accessory/poncho/dominia/red/surcoat,
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/surcoat,
/obj/item/clothing/head/beret/dominia,
/obj/machinery/light,
/turf/simulated/floor/tiled/dark,
+1 -1
View File
@@ -41656,7 +41656,7 @@
dir = 9
},
/obj/structure/table/stone/marble,
/obj/item/clothing/accessory/poncho/dominia/red/surcoat,
/obj/item/clothing/accessory/poncho/dominia_cape/tribunalist/surcoat,
/obj/item/clothing/head/beret/dominia,
/turf/simulated/floor/marble/dark,
/area/horizon/holodeck/source_tribunal)