HUD Eyepatches (#4513)

from left to right
security, medical, meson, material, science, thermal, welder, night vision, standard (no hud)

None add any flash protection except the welder HUD (only partly).
This commit is contained in:
ParadoxSpace
2018-04-06 22:04:02 +03:00
committed by Erki
parent 25ef886bf9
commit 2ddc7b6b08
8 changed files with 227 additions and 21 deletions
+2 -2
View File
@@ -791,7 +791,7 @@
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/plain/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch/hud/thermal(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_belt)
@@ -848,7 +848,7 @@
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/plain/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch/hud/thermal(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/hgpirate(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(M), slot_belt)
@@ -56,3 +56,42 @@
/datum/gear/eyes/shades/prescriptionsun
display_name = "sunglasses, presciption"
path = /obj/item/clothing/glasses/sunglasses/prescription
/datum/gear/eyes/hudpatch
display_name = "iPatch"
path = /obj/item/clothing/glasses/eyepatch/hud
/datum/gear/eyes/secpatch
display_name = "HUDpatch, Security"
path= /obj/item/clothing/glasses/eyepatch/hud/security
allowed_roles = list("Security Officer", "Head of Security", "Warden", "Security Cadet", "Detective", "Forensic Technician")
cost = 2 //snowflake tax
/datum/gear/eyes/medpatch
display_name = "HUDpatch, Medical"
path = /obj/item/clothing/glasses/eyepatch/hud/medical
allowed_roles = list("Medical Doctor", "Chief Medical Officer", "Chemist", "Paramedic", "Psychiatrist", "Medical Resident")
cost = 2
/datum/gear/eyes/mespatch
display_name = "HUDpatch, Mesons"
path = /obj/item/clothing/glasses/eyepatch/hud/meson
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Engineering Apprentice", "Research Director","Scientist")
cost = 2
/datum/gear/eyes/matpatch
display_name = "HUDpatch, Material"
path = /obj/item/clothing/glasses/eyepatch/hud/material
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Engineering Apprentice")
cost = 2
/datum/gear/eyes/scipatch
display_name = "HUDpatch, Science"
path = /obj/item/clothing/glasses/eyepatch/hud/science
cost = 2
/datum/gear/eyes/weldpatch
display_name = "HUDpatch, Welding"
path = /obj/item/clothing/glasses/eyepatch/hud/welder
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Engineering Apprentice","Research Director","Roboticist")
cost = 2
+134 -17
View File
@@ -105,17 +105,21 @@
body_parts_covered = 0
var/flipped = 0
/obj/item/clothing/glasses/eyepatch/attack_self(mob/user)
/obj/item/clothing/glasses/eyepatch/verb/flip_patch()
set name = "Flip Patch"
set category = "Object"
set src in usr
if (usr.stat || usr.restrained())
return
src.flipped = !src.flipped
if(src.flipped)
src.icon_state = "[icon_state]_1"
src.item_state = "[icon_state]_1"
to_chat(user, "You change \the [src] to cover the left eye.")
src.icon_state = "[icon_state]_r"
else
src.icon_state = initial(icon_state)
src.icon_state = initial(icon_state)
to_chat(user, "You change \the [src] to cover the right eye.")
user.update_inv_glasses()
to_chat(usr, "You change \the [src] to cover the [src.flipped ? "left" : "right"] eye.")
update_clothing_icon()
/obj/item/clothing/glasses/monocle
name = "monocle"
@@ -341,20 +345,133 @@
icon_state = "thermoncle"
flags = null //doesn't protect eyes because it's a monocle, duh
item_flags = null
body_parts_covered = 0
/obj/item/clothing/glasses/thermal/plain/eyepatch
name = "optical thermal eyepatch"
desc = "An eyepatch with built-in thermal optics"
icon_state = "eyepatch"
item_state = "eyepatch"
body_parts_covered = 0
item_flags = null
/obj/item/clothing/glasses/thermal/plain/jensen
name = "optical thermal implants"
desc = "A set of implantable lenses designed to augment your vision"
icon_state = "thermalimplants"
item_state = "syringe_kit"
item_flags = null
item_flags = null
/obj/item/clothing/glasses/eyepatch/hud
name = "iPatch"
desc = "For the technologically inclined pirate. It connects directly to the optical nerve of the user, replacing the need for that useless eyeball."
icon_state = "hudpatch"
item_state = "hudpatch"
off_state = "hudpatch"
action_button_name = "Toggle iPatch"
prescription = 1 //To emulate not having one eyeball
toggleable = 1
var/eye_color = COLOR_WHITE
var/image/mob_overlay
/obj/item/clothing/glasses/eyepatch/hud/Initialize()
. = ..()
mob_overlay = image('icons/obj/clothing/glasses.dmi', "[icon_state]_eye")
mob_overlay.appearance_flags = RESET_COLOR
mob_overlay.color = eye_color
mob_overlay.layer = LIGHTING_LAYER+1
update_icon()
/obj/item/clothing/glasses/eyepatch/hud/equipped(mob/user, slot)
if (slot == slot_glasses)
user.add_overlay(mob_overlay, TRUE)
else
user.cut_overlay(mob_overlay, TRUE)
. =..()
/obj/item/clothing/glasses/eyepatch/hud/Destroy()
if (ishuman(loc))
loc.cut_overlay(mob_overlay, TRUE)
QDEL_NULL(mob_overlay)
return ..()
/obj/item/clothing/glasses/eyepatch/hud/attack_self()
..()
update_icon()
/obj/item/clothing/glasses/eyepatch/hud/update_icon()
cut_overlays()
if(active)
var/image/eye = image('icons/obj/clothing/glasses.dmi', "[icon_state]_ovr")
eye.appearance_flags = RESET_COLOR
eye.color = eye_color
add_overlay (eye)
/obj/item/clothing/glasses/eyepatch/hud/forceMove(atom/newloc)
if (!ishuman(loc))
return ..()
var/mob/M = loc
. = ..()
if (loc !=M)
M.cut_overlay(mob_overlay, TRUE)
/obj/item/clothing/glasses/eyepatch/hud/security
name = "HUDpatch"
desc = "A Security-type heads-up display that connects directly to the optic nerve of the user, replacing what you lost in Space 'Nam."
hud = /obj/item/clothing/glasses/hud/security
eye_color = COLOR_BLUE
/obj/item/clothing/glasses/eyepatch/hud/medical
name = "MEDpatch"
desc = "A Medical-type heads-up display that connects directly to the optic nerve of the user, giving you information about a patient your department will likely ignore."
hud = /obj/item/clothing/glasses/hud/health
eye_color = COLOR_CYAN
/obj/item/clothing/glasses/eyepatch/hud/meson
name = "MESpatch"
desc = "An optical meson scanner display that connects directly to the optic nerve of the user, giving you cool green vision at the low cost of your only other eye."
vision_flags = SEE_TURFS
see_invisible = SEE_INVISIBLE_NOLIGHTING
eye_color = COLOR_LIME
/obj/item/clothing/glasses/eyepatch/hud/meson/Initialize()
..()
overlay = global_hud.meson
/obj/item/clothing/glasses/eyepatch/hud/material
name = "MATpatch"
desc = "An optical material scanner display that connects directly to the optic nerve of the user, making you a professional at I Spy."
vision_flags = SEE_OBJS
eye_color = COLOR_LUMINOL
/obj/item/clothing/glasses/eyepatch/hud/science
name = "SCIpatch"
desc = "A science-type heads-up display that connects directly to the optic nerve of the user. Does nothing, but at least you won't get acid in your eye socket."
eye_color = COLOR_PURPLE
/obj/item/clothing/glasses/eyepatch/hud/science/Initialize()
..()
overlay = global_hud.science
/obj/item/clothing/glasses/eyepatch/hud/thermal
name = "HEATpatch"
desc = "A thermal-type heads-up display that connects directly to the optic nerve of the user. Double the tacticool, half the eyes."
vision_flags = SEE_MOBS
see_invisible = SEE_INVISIBLE_NOLIGHTING
eye_color = COLOR_ORANGE
/obj/item/clothing/glasses/eyepatch/hud/thermal/New()
..()
overlay = global_hud.thermal
/obj/item/clothing/glasses/eyepatch/hud/welder
name = "WELDpatch"
desc = "A light-filtering display that connects directly to the optic nerve of the user, blocking light for exactly one eye. Choose wisely."
flash_protection = FLASH_PROTECTION_MODERATE
tint = TINT_MODERATE
eye_color = COLOR_BLACK
/obj/item/clothing/glasses/eyepatch/hud/night
name = "NITEpatch"
desc = "A light-amplifying display that connects directly to the optic nerve of the user. Helps you avoid a battery charge from bumping an officer in the dark."
darkness_view = 7
see_invisible = SEE_INVISIBLE_NOLIGHTING
eye_color = COLOR_GREEN
/obj/item/clothing/glasses/eyepatch/hud/night/New()
..()
overlay = global_hud.nvg