Bishop Screens! + Other Bishop related fixes (#20898)

Breaks the monopoly baselines had over changeable screens by letting
Bishops do it as well. Currently there are only two options asides from
the default, an exclamation mark and a cross, but adding more is fairly
simple.
Also fixes the default face being layered on top of the alternative
heads by restricting what screens are available to each head.
Removes the markings that related to the lights in the alternative heads
as this implementation renders them obsolete. As a bonus, Siseyo and
Sienna lights are now animated!

The new screen options:

![image](https://github.com/user-attachments/assets/68c4a2eb-13f5-4ddb-8afb-9953e599b89d)
This commit is contained in:
CometBlaze
2025-06-30 18:02:53 +00:00
committed by GitHub
parent 723692b07a
commit 18b2d76516
5 changed files with 102 additions and 21 deletions
@@ -4390,7 +4390,8 @@ Follow by example and make good judgement based on length which list to include
/datum/sprite_accessory/facial_hair/ipc_screen_blank/none
name = "no IPC screen"
icon_state = "none"
robotize_type_required = list(PROSTHETIC_HOPLAN, PROSTHETIC_RAXUS, PROSTHETIC_INDRICUS)
species_allowed = list(/datum/species/machine, /datum/species/machine/bishop)
robotize_type_required = list(PROSTHETIC_HOPLAN, PROSTHETIC_RAXUS, PROSTHETIC_INDRICUS, PROSTHETIC_SELEN)
/datum/sprite_accessory/facial_hair/ipc_screen_blank/ipc_screen_blue
name = "blue IPC screen"
@@ -4688,6 +4689,41 @@ Follow by example and make good judgement based on length which list to include
name = "question mark IPC screen"
icon_state = "ipc_question"
//bishop screens
/datum/sprite_accessory/facial_hair/ipc_screen_blank/bishop
icon = 'icons/mob/human_face/ipc_screens.dmi'
name = "Bishop Face"
icon_state = "bishop_face"
species_allowed = list(/datum/species/machine/bishop)
robotize_type_required = list()
required_organ = BP_HEAD
gender = NEUTER
/datum/sprite_accessory/facial_hair/ipc_screen_blank/bishop/bishop_cross
name = "Bishop Cross"
icon_state = "bishop_cross"
/datum/sprite_accessory/facial_hair/ipc_screen_blank/bishop/bishop_surprise
name = "Bishop Exclamation Mark"
icon_state = "bishop_surprise"
/datum/sprite_accessory/facial_hair/ipc_screen_blank/bishop/siseyo_lights
name = "Siseyo Lights"
icon_state = "siseyo_lights"
robotize_type_required = list(PROSTHETIC_SISEYO)
/datum/sprite_accessory/facial_hair/ipc_screen_blank/bishop/sienna_lights
name = "Sienna Lights"
icon_state = "sienna_lights"
robotize_type_required = list(PROSTHETIC_SIENNA)
/datum/sprite_accessory/facial_hair/ipc_screen_blank/bishop/selen_lights
name = "Selen Lights"
icon_state = "selen_lights"
robotize_type_required = list(PROSTHETIC_SELEN)
//diona stuff
/datum/sprite_accessory/facial_hair/diona_eye
icon = 'icons/mob/human_face/dionae_hair.dmi'
name = "Mono Eye"
@@ -6680,34 +6716,18 @@ Follow by example and make good judgement based on length which list to include
body_parts = list(BP_HEAD)
robotize_type_required = list(PROSTHETIC_SELEN)
/datum/sprite_accessory/marking/bishop_lights/bishop_mask/selen/lights
name = "Bishop - Selen Lights"
icon_state = "selen_lights"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/bishop_lights/bishop_mask/sienna
name = "Bishop - Sienna Primary Colors"
icon_state = "sienna_primary"
body_parts = list(BP_HEAD)
robotize_type_required = list(PROSTHETIC_SIENNA)
/datum/sprite_accessory/marking/bishop_lights/sienna/lights
name = "Bishop - Sienna Lights"
icon_state = "sienna_lights"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/bishop_lights/siseyo
name = "Bishop - Siseyo Primary Colors"
icon_state = "siseyo_primary"
body_parts = list(BP_HEAD)
robotize_type_required = list(PROSTHETIC_SISEYO)
/datum/sprite_accessory/marking/bishop_lights/sienna/lights
name = "Bishop - Siseyo Lights"
icon_state = "siseyo_lights"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/bishop_lights/bishop_panels
name = "Bishop - Full Body Panel Colors"
icon_state = "bishop_panels"
@@ -491,7 +491,7 @@
deform = 'icons/mob/human_races/ipc/r_ind_bishop.dmi'
preview_icon = 'icons/mob/human_races/ipc/ind_bishop_preview.dmi'
eyes = "bishop_eyes"
eyes = "blank_eyes"
eyes_icon_blend = ICON_MULTIPLY
brute_mod = 1.2
@@ -499,7 +499,7 @@
resist_mod = 4
num_alternate_languages = 3
appearance_flags = HAS_EYE_COLOR | HAS_UNDERWEAR | HAS_SOCKS
appearance_flags = HAS_HAIR_COLOR | HAS_UNDERWEAR | HAS_SOCKS
examine_color = "#00afea"
@@ -521,12 +521,13 @@
inherent_verbs = list(
/mob/living/carbon/human/proc/self_diagnostics,
/mob/living/carbon/human/proc/check_tag
/mob/living/carbon/human/proc/check_tag,
/mob/living/carbon/human/proc/change_monitor
)
/datum/species/machine/bishop/get_light_color(mob/living/carbon/human/H)
if (istype(H))
return rgb(H.r_eyes, H.g_eyes, H.b_eyes)
return rgb(H.r_facial, H.g_facial, H.b_facial)
/datum/species/machine/unbranded
name = SPECIES_IPC_UNBRANDED