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
+11 -1
View File
@@ -15,7 +15,7 @@
path = /obj/item/weapon/storage/secure/briefcase/money
desc = "A briefcase with 10,000 untraceable credits for funding your sneaky activities."
/datum/uplink_item/item/tools/firingpin //todo, make this a special syndicate one instead of just a normal one?
/datum/uplink_item/item/tools/firingpin //todo, make this a special syndicate one instead of just a normal one?
name = "Firing Pin"
item_cost = 2
path = /obj/item/device/firing_pin
@@ -104,3 +104,13 @@
name = "Syndicate Cyborg Teleporter"
item_cost = 35
path = /obj/item/weapon/antag_spawner/borg_tele
/datum/uplink_item/item/tools/heatpatch
name = "HUDPatch, Thermal"
item_cost = 6
path = /obj/item/clothing/glasses/eyepatch/hud/thermal
/datum/uplink_item/item/tools/nightpatch
name = "HUDPatch, Night-Vision"
item_cost = 4
path = /obj/item/clothing/glasses/eyepatch/hud/night
+1 -1
View File
@@ -41,7 +41,7 @@ var/datum/antagonist/raider/raiders
var/list/raider_glasses = list(
/obj/item/clothing/glasses/thermal,
/obj/item/clothing/glasses/thermal/plain/eyepatch,
/obj/item/clothing/glasses/eyepatch/hud/thermal,
/obj/item/clothing/glasses/thermal/plain/monocle
)
+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
@@ -0,0 +1,40 @@
################################
# 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
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
# balance
#################################
# Your name.
author: ParadoxSpace
# 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, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Adds HUD Eyepatches for Security, Medical, Mesons, Material, and Science."
- rscadd: "Adds civilian iPatch for general use."
- rscadd: "Adds Welder Eyepatch."
- rscadd: "Adds Night Vision and Thermal Vision eyepatches to uplink, and heist roundstart."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB