Add better-fitting hoods for monitor heads. (#30200)

* Add better-fitting hoods for monitor heads.

* Fix some icons not animating properly, thanks IconDiffBot2!

* Here you go

* Incorporate linter feedback.

* Re-order the checks slightly to make the hoods render.

* Defluff

---------

Co-authored-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
This commit is contained in:
Alan
2025-09-22 09:15:35 -04:00
committed by GitHub
parent 061fa12327
commit 32b127ebb2
10 changed files with 26 additions and 3 deletions
+2
View File
@@ -100,6 +100,7 @@
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
magical = TRUE
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
/obj/item/clothing/head/hooded/culthood/alt
icon_state = "cult_hoodalt"
@@ -214,6 +215,7 @@
flags_inv = HIDEFACE
flags_cover = HEADCOVERSEYES
armor = list(MELEE = -25, BULLET = -25, LASER = -25, ENERGY = -25, BOMB = -25, RAD = -25, FIRE = 0, ACID = 0)
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head.dmi',
"Drask" = 'icons/mob/clothing/species/drask/head.dmi',
+1
View File
@@ -994,6 +994,7 @@ GLOBAL_LIST_EMPTY(multiverse)
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
magical = TRUE
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head.dmi',
"Kidan" = 'icons/mob/clothing/species/kidan/head.dmi',
+3
View File
@@ -83,6 +83,7 @@
icon_state = "chaplain_hood"
flags = BLOCKHAIR
flags_cover = HEADCOVERSEYES
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
//Chaplain
/obj/item/clothing/head/hooded/nun_hood
@@ -91,6 +92,7 @@
icon_state = "nun_hood"
flags = BLOCKHAIR
flags_cover = HEADCOVERSEYES
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
//Chaplain
/obj/item/clothing/head/hooded/monk_hood
@@ -99,6 +101,7 @@
icon_state = "monk_hood"
flags = BLOCKHAIR
flags_cover = HEADCOVERSEYES
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
/obj/item/clothing/head/witchhunter_hat
name = "witchhunter hat"
@@ -830,6 +830,7 @@
flags_cover = HEADCOVERSEYES
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
/obj/item/clothing/suit/armor/bone
name = "bone armor"
+1
View File
@@ -105,6 +105,7 @@
cold_protection = HEAD
flags = BLOCKHAIR
flags_inv = HIDEEARS | HIDEMASK | HIDEFACE | HIDEEYES
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head.dmi',
+6 -1
View File
@@ -255,6 +255,7 @@
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
flags = BLOCKHAIR
flags_inv = HIDEEARS
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
/obj/item/clothing/suit/hooded/carp_costume/dragon
name = "space carp poncho"
@@ -310,6 +311,7 @@
icon_state = "salmon"
flags = BLOCKHAIR
flags_inv = HIDEEARS
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
/// It's Hip!
/obj/item/clothing/suit/hooded/bee_costume
@@ -329,6 +331,7 @@
icon_state = "bee"
flags = THICKMATERIAL|BLOCKHAIR
flags_inv = HIDEEARS
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/head.dmi')
/// OH MY GOD WHAT HAVE YOU DONE!?!?!?
@@ -372,6 +375,7 @@
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
flags = BLOCKHAIR
flags_inv = HIDEEARS
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
sprite_sheets = list(
"Grey" = 'icons/mob/clothing/species/grey/head.dmi',
"Vox" = 'icons/mob/clothing/species/vox/head.dmi'
@@ -593,6 +597,7 @@
flags = BLOCKHAIR
armor = list(MELEE = 5, BULLET = 5, LASER = 50, ENERGY = 50, BOMB = 0, RAD = 0, FIRE = INFINITY, ACID = INFINITY)
strip_delay = 3 SECONDS
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/head.dmi',
"Grey" = 'icons/mob/clothing/species/grey/head.dmi')
@@ -650,7 +655,7 @@
cold_protection = HEAD
flags = BLOCKHAIR
flags_inv = HIDEEARS
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head.dmi'
)
+3
View File
@@ -931,6 +931,7 @@
/// Epic_Charger: Linda Clark
/obj/item/clothing/head/hooded/hood/fluff/linda
icon_state = "greenhood"
icon_monitor = null
/// Hylocereus: Sam Aria
/obj/item/clothing/suit/hooded/hoodie/fluff/hylo
@@ -956,6 +957,7 @@
/obj/item/clothing/head/hooded/hood/fluff/skeleton
icon = 'icons/obj/custom_items.dmi'
icon_state = "skeleton_hood"
icon_monitor = null
/// RazekPraxis: SHODAN
/obj/item/clothing/suit/armor/shodanscoat
@@ -1025,6 +1027,7 @@
desc = "A hood with some horns <i>glued</i> to them, or something like that. Custom fit for a Unathi's head shape."
icon = 'icons/obj/custom_items.dmi'
icon_state = "xydonus_bomberhood"
icon_monitor = null
/// Pineapple Salad: Dan Jello
/obj/item/clothing/suit/fluff/pineapple
@@ -33,6 +33,7 @@
heat_protection = HEAD
armor = list(MELEE = 20, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 50, RAD = 50, FIRE = 50, ACID = 50)
resistance_flags = FIRE_PROOF
icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi'
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head.dmi',
"Drask" = 'icons/mob/clothing/species/drask/head.dmi',
@@ -802,7 +802,13 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
if(head)
update_hud_head(head)
var/worn_icon = listgetindex(head.sprite_sheets, dna.species.sprite_sheet_name) || head.worn_icon || 'icons/mob/clothing/head.dmi'
var/obj/item/organ/external/head/head_organ = get_organ("head")
var/datum/robolimb/robohead = head_organ.is_robotic() ? GLOB.all_robolimbs[head_organ.model] : null
var/obj/item/clothing/head/head_clothes
if(istype(head, /obj/item/clothing/head))
head_clothes = head
var/worn_icon = (head_clothes && robohead && robohead.is_monitor ? head_clothes.icon_monitor : FALSE) || listgetindex(head.sprite_sheets, dna.species.sprite_sheet_name) || head.worn_icon || 'icons/mob/clothing/head.dmi'
var/worn_icon_state = head.worn_icon_state || head.icon_state
var/mutable_appearance/standing = mutable_appearance(worn_icon, worn_icon_state, layer = -HEAD_LAYER, alpha = head.alpha, color = head.color)
@@ -814,7 +820,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
if(istype(head, /obj/item/clothing/head))
var/obj/item/clothing/head/w_hat = head
for(var/obj/item/clothing/head/hat in w_hat.attached_hats)
var/hat_worn_icon = listgetindex(hat.sprite_sheets, dna.species.sprite_sheet_name) || hat.worn_icon || 'icons/mob/clothing/head.dmi'
var/hat_worn_icon = (robohead && robohead.is_monitor ? hat.icon_monitor : FALSE) ||listgetindex(hat.sprite_sheets, dna.species.sprite_sheet_name) || hat.worn_icon || 'icons/mob/clothing/head.dmi'
var/hat_worn_icon_state = hat.worn_icon_state || hat.icon_state
standing.overlays += image(icon = hat_worn_icon, icon_state = hat_worn_icon_state)
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB