diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index fb85dbb55a..3165170eb9 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -345,6 +345,10 @@ var/global/list/gear_datums = list() display_name = "bandana, red" path = /obj/item/clothing/mask/bandana/red +/datum/gear/bandanamask/ipc_monitor + display_name = "display monitor (prosthetic head only)" + path = /obj/item/clothing/mask/monitor + /datum/gear/sterilemask display_name = "sterile mask" path = /obj/item/clothing/mask/surgical diff --git a/code/modules/clothing/masks/monitor.dm b/code/modules/clothing/masks/monitor.dm new file mode 100644 index 0000000000..b2bfc13876 --- /dev/null +++ b/code/modules/clothing/masks/monitor.dm @@ -0,0 +1,82 @@ +//IPC-face object for FPB. +/obj/item/clothing/mask/monitor + + name = "display monitor" + desc = "A rather clunky old CRT-style display screen, fit for mounting on an optical output." + flags_inv = HIDEFACE|HIDEEYES + body_parts_covered = FACE + dir = SOUTH + + icon = 'icons/mob/monitor_icons.dmi' + icon_override = 'icons/mob/monitor_icons.dmi' + icon_state = "ipc_blank" + item_state = null + + var/monitor_state_index = "blank" + var/global/list/monitor_states = list( + "blank" = "ipc_blank", + "pink" = "ipc_pink", + "red" = "ipc_red", + "green" = "ipc_green", + "blue" = "ipc_blue", + "breakout" = "ipc_breakout", + "eight" = "ipc_eight", + "goggles" = "ipc_goggles", + "heart" = "ipc_heart", + "monoeye" = "ipc_monoeye", + "nature" = "ipc_nature", + "orange" = "ipc_orange", + "purple" = "ipc_purple", + "shower" = "ipc_shower", + "static" = "ipc_static", + "yellow" = "ipc_yellow" + ) + +/obj/item/clothing/mask/monitor/set_dir() + dir = SOUTH + return + +/obj/item/clothing/mask/monitor/equipped() + ..() + var/mob/living/carbon/human/H = loc + if(istype(H) && H.wear_mask == src) + canremove = 0 + H << "\The [src] connects to your display output." + +/obj/item/clothing/mask/monitor/dropped() + canremove = 1 + return ..() + +/obj/item/clothing/mask/monitor/mob_can_equip(var/mob/living/carbon/human/user, var/slot) + if (!..()) + return 0 + if(istype(user)) + var/obj/item/organ/external/E = user.organs_by_name[BP_HEAD] + if(istype(E) && (E.status & ORGAN_ROBOT)) + return 1 + user << "You must have a robotic head to install this upgrade." + return 0 + +/obj/item/clothing/mask/monitor/verb/set_monitor_state() + set name = "Set Monitor State" + set desc = "Choose an icon for your monitor." + set category = "IC" + + set src in usr + var/mob/living/carbon/human/H = loc + if(!istype(H) || H != usr) + return + if(H.wear_mask != src) + usr << "You have not installed \the [src] yet." + return + var/choice = input("Select a screen icon.") as null|anything in monitor_states + if(choice) + monitor_state_index = choice + update_icon() + +/obj/item/clothing/mask/monitor/update_icon() + if(!(monitor_state_index in monitor_states)) + monitor_state_index = initial(monitor_state_index) + icon_state = monitor_states[monitor_state_index] + var/mob/living/carbon/human/H = loc + if(istype(H)) H.update_inv_wear_mask() \ No newline at end of file diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index ec6a38de92..d8b9fbd7cf 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -435,81 +435,6 @@ name = "Bald" icon_state = "bald" - icp_screen_pink - name = "pink IPC screen" - icon_state = "ipc_pink" - species_allowed = list("Machine") - - icp_screen_red - name = "red IPC screen" - icon_state = "ipc_red" - species_allowed = list("Machine") - - icp_screen_green - name = "green IPC screen" - icon_state = "ipc_green" - species_allowed = list("Machine") - - icp_screen_blue - name = "blue IPC screen" - icon_state = "ipc_blue" - species_allowed = list("Machine") - - icp_screen_breakout - name = "breakout IPC screen" - icon_state = "ipc_breakout" - species_allowed = list("Machine") - - icp_screen_eight - name = "eight IPC screen" - icon_state = "ipc_eight" - species_allowed = list("Machine") - - icp_screen_goggles - name = "goggles IPC screen" - icon_state = "ipc_goggles" - species_allowed = list("Machine") - - icp_screen_heart - name = "heart IPC screen" - icon_state = "ipc_heart" - species_allowed = list("Machine") - - icp_screen_monoeye - name = "monoeye IPC screen" - icon_state = "ipc_monoeye" - species_allowed = list("Machine") - - icp_screen_nature - name = "nature IPC screen" - icon_state = "ipc_nature" - species_allowed = list("Machine") - - icp_screen_orange - name = "orange IPC screen" - icon_state = "ipc_orange" - species_allowed = list("Machine") - - icp_screen_purple - name = "purple IPC screen" - icon_state = "ipc_purple" - species_allowed = list("Machine") - - icp_screen_shower - name = "shower IPC screen" - icon_state = "ipc_shower" - species_allowed = list("Machine") - - icp_screen_static - name = "static IPC screen" - icon_state = "ipc_static" - species_allowed = list("Machine") - - icp_screen_yellow - name = "yellow IPC screen" - icon_state = "ipc_yellow" - species_allowed = list("Machine") - /* /////////////////////////////////// / =---------------------------= / diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 0d7031fb5f..ac9c437e9c 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/monitor_icons.dmi b/icons/mob/monitor_icons.dmi new file mode 100644 index 0000000000..a50ee70dfb Binary files /dev/null and b/icons/mob/monitor_icons.dmi differ diff --git a/polaris.dme b/polaris.dme index 2684ea31cf..f799edc636 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1049,6 +1049,7 @@ #include "code\modules\clothing\masks\breath.dm" #include "code\modules\clothing\masks\gasmask.dm" #include "code\modules\clothing\masks\miscellaneous.dm" +#include "code\modules\clothing\masks\monitor.dm" #include "code\modules\clothing\masks\voice.dm" #include "code\modules\clothing\shoes\colour.dm" #include "code\modules\clothing\shoes\jobs.dm"