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
+60
View File
@@ -0,0 +1,60 @@
################################
# 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 different Bishop screens! You can even change them during the round."
- bugfix: "The default bishop face will no longer be layered over the alternate heads."
- rscdel: "Removed the alternate head light markings as the new implementation made them obsolete."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB