Adds HUD aviators (#4961)

Adds HUD aviators, they can be toggled onto HUD mode or just appearing as aviators. Security variant transforms from security HUD to flash protection. In turn, I've taken away their default glasses in exchange for these. This also adds civilian sunglasses to the loadout for fashion purposes.
This commit is contained in:
ParadoxSpace
2018-08-05 11:23:40 -06:00
committed by Erki
parent 1620d81661
commit f1dd7d562d
11 changed files with 272 additions and 8 deletions

View File

@@ -119,3 +119,15 @@
name = "HUDPatch, Night-Vision" name = "HUDPatch, Night-Vision"
item_cost = 4 item_cost = 4
path = /obj/item/clothing/glasses/eyepatch/hud/night path = /obj/item/clothing/glasses/eyepatch/hud/night
/datum/uplink_item/item/tools/aviatortherm
name = "Aviators, Thermal"
item_cost = 6
path = /obj/item/clothing/glasses/thermal/aviator
desc = "A pair of thermal-vision glasses disguised as aviator shades."
/datum/uplink_item/item/tools/aviatornight
name = "Aviators, Night-Vision"
item_cost = 4
path = /obj/item/clothing/glasses/night/aviator
desc = "A pair of night-vision glasses disguised as aviator shades."

View File

@@ -42,7 +42,8 @@ var/datum/antagonist/raider/raiders
var/list/raider_glasses = list( var/list/raider_glasses = list(
/obj/item/clothing/glasses/thermal, /obj/item/clothing/glasses/thermal,
/obj/item/clothing/glasses/eyepatch/hud/thermal, /obj/item/clothing/glasses/eyepatch/hud/thermal,
/obj/item/clothing/glasses/thermal/plain/monocle /obj/item/clothing/glasses/thermal/plain/monocle,
/obj/item/clothing/glasses/thermal/aviator
) )
var/list/raider_helmets = list( var/list/raider_helmets = list(

View File

@@ -42,7 +42,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves) H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves)
else else
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves) H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(H), slot_glasses) H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/head(H), slot_glasses)
if(H.backbag == 1) if(H.backbag == 1)
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_l_store) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_l_store)
else else

View File

@@ -30,6 +30,7 @@
new /obj/item/weapon/storage/toolbox/mechanical(src) new /obj/item/weapon/storage/toolbox/mechanical(src)
new /obj/item/clothing/suit/storage/hazardvest(src) new /obj/item/clothing/suit/storage/hazardvest(src)
new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson/aviator(src)
new /obj/item/device/multitool(src) new /obj/item/device/multitool(src)
new /obj/item/device/flash(src) new /obj/item/device/flash(src)
new /obj/item/taperoll/engineering(src) new /obj/item/taperoll/engineering(src)
@@ -123,6 +124,7 @@
new /obj/item/clothing/suit/storage/hazardvest(src) new /obj/item/clothing/suit/storage/hazardvest(src)
new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson(src) new /obj/item/clothing/glasses/meson(src)
new /obj/item/clothing/glasses/meson/aviator(src)
new /obj/item/weapon/cartridge/engineering(src) new /obj/item/weapon/cartridge/engineering(src)
new /obj/item/taperoll/engineering(src) new /obj/item/taperoll/engineering(src)

View File

@@ -84,6 +84,7 @@
new /obj/item/clothing/suit/storage/toggle/fr_jacket(src) new /obj/item/clothing/suit/storage/toggle/fr_jacket(src)
new /obj/item/clothing/shoes/white(src) new /obj/item/clothing/shoes/white(src)
new /obj/item/device/radio/headset/headset_med(src) new /obj/item/device/radio/headset/headset_med(src)
new /obj/item/clothing/glasses/hud/health/aviator(src)
/obj/structure/closet/secure_closet/CMO /obj/structure/closet/secure_closet/CMO
@@ -112,6 +113,7 @@
new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(src) new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt(src) new /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt(src)
new /obj/item/weapon/storage/box/inhalers(src) new /obj/item/weapon/storage/box/inhalers(src)
new /obj/item/clothing/glasses/hud/health/aviator(src)
/obj/structure/closet/secure_closet/CMO2 /obj/structure/closet/secure_closet/CMO2
name = "chief medical officer's attire" name = "chief medical officer's attire"

View File

@@ -141,6 +141,7 @@
new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/device/radio/headset/heads/hos(src)
new /obj/item/ammo_magazine/tranq(src) new /obj/item/ammo_magazine/tranq(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/clothing/glasses/sunglasses/sechud/head(src)
new /obj/item/weapon/shield/riot/tact(src) new /obj/item/weapon/shield/riot/tact(src)
new /obj/item/weapon/melee/baton/loaded(src) new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/melee/telebaton(src) new /obj/item/weapon/melee/telebaton(src)
@@ -175,7 +176,7 @@
new /obj/item/clothing/head/beret/sec/hos(src) new /obj/item/clothing/head/beret/sec/hos(src)
new /obj/item/clothing/head/helmet/HoS(src) new /obj/item/clothing/head/helmet/HoS(src)
//Tools //Tools
new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/clothing/glasses/sunglasses/sechud/aviator(src)
new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/device/radio/headset/heads/hos(src)
//Belts //Belts
new /obj/item/weapon/storage/belt/security(src) new /obj/item/weapon/storage/belt/security(src)
@@ -218,6 +219,7 @@
//Tools //Tools
new /obj/item/weapon/cartridge/security(src) new /obj/item/weapon/cartridge/security(src)
new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/clothing/glasses/sunglasses/sechud/aviator(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/taperoll/police(src) new /obj/item/taperoll/police(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/reagent_containers/spray/pepper(src)
@@ -280,6 +282,7 @@
new /obj/item/clothing/head/helmet(src) new /obj/item/clothing/head/helmet(src)
//Tools //Tools
new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/clothing/glasses/sunglasses/sechud/aviator(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/ammo_magazine/c45m/rubber(src) new /obj/item/ammo_magazine/c45m/rubber(src)
new /obj/random/handgun(src) new /obj/random/handgun(src)

View File

@@ -33,6 +33,16 @@
display_name = "science Goggles" display_name = "science Goggles"
path = /obj/item/clothing/glasses/science path = /obj/item/clothing/glasses/science
/datum/gear/eyes/materialaviators
display_name = "aviators, material"
path = /obj/item/clothing/glasses/material/aviator
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Engineering Apprentice","Shaft Miner")
/datum/gear/eyes/mesonaviators
display_name = "aviators, meson"
path = /obj/item/clothing/glasses/meson/aviator
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Engineering Apprentice", "Research Director","Scientist")
/datum/gear/eyes/mesonprescription /datum/gear/eyes/mesonprescription
display_name = "meson goggles, prescription" display_name = "meson goggles, prescription"
path = /obj/item/clothing/glasses/meson/prescription path = /obj/item/clothing/glasses/meson/prescription
@@ -43,20 +53,44 @@
path = /obj/item/clothing/glasses/hud/security path = /obj/item/clothing/glasses/hud/security
allowed_roles = list("Security Officer", "Head of Security", "Warden", "Security Cadet", "Detective", "Forensic Technician") allowed_roles = list("Security Officer", "Head of Security", "Warden", "Security Cadet", "Detective", "Forensic Technician")
/datum/gear/eyes/security/aviator
display_name = "aviators, security"
path = /obj/item/clothing/glasses/sunglasses/sechud/aviator
/datum/gear/eyes/medical /datum/gear/eyes/medical
display_name = "medical HUD" display_name = "medical HUD"
path = /obj/item/clothing/glasses/hud/health path = /obj/item/clothing/glasses/hud/health
allowed_roles = list("Medical Doctor", "Chief Medical Officer", "Chemist", "Paramedic", "Psychiatrist", "Medical Resident") allowed_roles = list("Medical Doctor", "Chief Medical Officer", "Chemist", "Paramedic", "Psychiatrist", "Medical Resident")
/datum/gear/eyes/medical/aviator
display_name = "aviators, medical"
path = /obj/item/clothing/glasses/hud/health/aviator
/datum/gear/eyes/shades /datum/gear/eyes/shades
display_name = "sunglasses, fat" display_name = "sunglasses, fat (Security/Command)"
path = /obj/item/clothing/glasses/sunglasses/big path = /obj/item/clothing/glasses/sunglasses/big
allowed_roles = list("Security Officer", "Head of Security", "Warden", "Captain", "Head of Personnel", "Quartermaster", "Internal Affairs Agent", "Detective", "Forensic Technician") allowed_roles = list("Security Officer", "Head of Security", "Warden", "Captain", "Head of Personnel", "Quartermaster", "Internal Affairs Agent", "Detective", "Forensic Technician")
/datum/gear/eyes/shades/prescriptionsun /datum/gear/eyes/shades/prescriptionsun
display_name = "sunglasses, presciption" display_name = "sunglasses, presciption (Security/Command)"
path = /obj/item/clothing/glasses/sunglasses/prescription path = /obj/item/clothing/glasses/sunglasses/prescription
/datum/gear/eyes/shades/aviator
display_name = "sunglasses, aviator (Security/Command)"
path = /obj/item/clothing/glasses/sunglasses/aviator
/datum/gear/eyes/glasses/fakesun
display_name = "sunglasses, stylish"
path = /obj/item/clothing/glasses/fakesunglasses
/datum/gear/eyes/glasses/fakesun/prescription
display_name = "prescription sunglasses, stylish"
path = /obj/item/clothing/glasses/fakesunglasses/prescription
/datum/gear/eyes/glasses/fakesun/aviator
display_name = "aviators, stylish"
path = /obj/item/clothing/glasses/fakesunglasses/aviator
/datum/gear/eyes/hudpatch /datum/gear/eyes/hudpatch
display_name = "iPatch" display_name = "iPatch"
path = /obj/item/clothing/glasses/eyepatch/hud path = /obj/item/clothing/glasses/eyepatch/hud

View File

@@ -85,6 +85,43 @@ BLIND // can't see anything
desc = "Optical Meson Scanner with prescription lenses." desc = "Optical Meson Scanner with prescription lenses."
prescription = 1 prescription = 1
/obj/item/clothing/glasses/meson/aviator
name = "engineering aviators"
desc = "Modified aviator glasses with a toggled meson interface. Comes with bonus prescription overlay."
icon_state = "aviator_eng"
off_state = "aviator"
item_state_slots = list(slot_r_hand_str = "sunglasses", slot_l_hand_str = "sunglasses")
action_button_name = "Toggle HUD"
activation_sound = 'sound/effects/pop.ogg'
prescription = 1
/obj/item/clothing/glasses/meson/aviator/verb/toggle()
set category = "Object"
set name = "Toggle Aviators"
set src in usr
attack_self(usr)
/obj/item/clothing/glasses/hud/health/aviator
name = "medical HUD aviators"
desc = "Modified aviator glasses with a toggled health HUD. Comes with bonus prescription overlay."
icon_state = "aviator_med"
off_state = "aviator"
item_state_slots = list(slot_r_hand_str = "sunglasses", slot_l_hand_str = "sunglasses")
action_button_name = "Toggle Mode"
toggleable = 1
activation_sound = 'sound/effects/pop.ogg'
prescription = 1
/obj/item/clothing/glasses/hud/health/aviator/verb/toggle()
set category = "Object"
set name = "Toggle Aviators"
set src in usr
attack_self(usr)
/obj/item/clothing/glasses/science /obj/item/clothing/glasses/science
name = "science goggles" name = "science goggles"
desc = "Used to protect your eyes against harmful chemicals!" desc = "Used to protect your eyes against harmful chemicals!"
@@ -114,6 +151,25 @@ BLIND // can't see anything
. = ..() . = ..()
overlay = global_hud.nvg overlay = global_hud.nvg
/obj/item/clothing/glasses/night/aviator
name = "aviators"
desc = "Modified aviator glasses with a toggled night vision interface. Comes with prescription overlay."
icon_state = "aviator_nv"
off_state = "aviator"
item_state_slots = list(slot_r_hand_str = "sunglasses", slot_l_hand_str = "sunglasses")
action_button_name = "Toggle Mode"
toggleable = 1
activation_sound = 'sound/effects/pop.ogg'
prescription = 1
/obj/item/clothing/glasses/night/aviator/verb/toggle()
set category = "Object"
set name = "Toggle Aviators"
set src in usr
attack_self(usr)
/obj/item/clothing/glasses/goggles /obj/item/clothing/glasses/goggles
name = "goggles" name = "goggles"
desc = "A simple pair of plain goggles." desc = "A simple pair of plain goggles."
@@ -164,6 +220,23 @@ BLIND // can't see anything
vision_flags = SEE_OBJS vision_flags = SEE_OBJS
item_flags = AIRTIGHT item_flags = AIRTIGHT
/obj/item/clothing/glasses/material/aviator
name = "material aviators"
desc = "Modified aviator glasses with a toggled ability to make your head ache. Comes with bonus prescription interface."
icon_state = "aviator_mat"
off_state = "aviator"
item_state_slots = list(slot_r_hand_str = "sunglasses", slot_l_hand_str = "sunglasses")
action_button_name = "Toggle Mode"
activation_sound = 'sound/effects/pop.ogg'
prescription = 1
/obj/item/clothing/glasses/material/aviator/verb/toggle()
set category = "Object"
set name = "Toggle Aviators"
set src in usr
attack_self(usr)
/obj/item/clothing/glasses/regular /obj/item/clothing/glasses/regular
name = "prescription glasses" name = "prescription glasses"
desc = "Made by Nerd. Co." desc = "Made by Nerd. Co."
@@ -221,6 +294,13 @@ BLIND // can't see anything
darkness_view = -1 darkness_view = -1
flash_protection = FLASH_PROTECTION_MODERATE flash_protection = FLASH_PROTECTION_MODERATE
/obj/item/clothing/glasses/sunglasses/aviator
name = "aviators"
desc = "A pair of designer sunglasses. They should put HUDs in these."
icon_state = "aviator"
item_state = "aviator"
prescription = 1
/obj/item/clothing/glasses/welding /obj/item/clothing/glasses/welding
name = "welding goggles" name = "welding goggles"
desc = "Protects the eyes from welders, approved by the mad scientist association." desc = "Protects the eyes from welders, approved by the mad scientist association."
@@ -234,7 +314,6 @@ BLIND // can't see anything
/obj/item/clothing/glasses/welding/attack_self() /obj/item/clothing/glasses/welding/attack_self()
toggle() toggle()
/obj/item/clothing/glasses/welding/verb/toggle() /obj/item/clothing/glasses/welding/verb/toggle()
set category = "Object" set category = "Object"
set name = "Adjust welding goggles" set name = "Adjust welding goggles"
@@ -276,7 +355,6 @@ BLIND // can't see anything
item_state = "blindfold" item_state = "blindfold"
tint = TINT_BLIND tint = TINT_BLIND
/obj/item/clothing/glasses/sunglasses/blinders /obj/item/clothing/glasses/sunglasses/blinders
name = "vaurcae blinders" name = "vaurcae blinders"
desc = "Specially designed Vaurca blindfold, designed to let in just enough light to see." desc = "Specially designed Vaurca blindfold, designed to let in just enough light to see."
@@ -291,7 +369,6 @@ BLIND // can't see anything
item_state = null item_state = null
w_class = 1 w_class = 1
/obj/item/clothing/glasses/sunglasses/prescription /obj/item/clothing/glasses/sunglasses/prescription
name = "prescription sunglasses" name = "prescription sunglasses"
prescription = 1 prescription = 1
@@ -301,6 +378,23 @@ BLIND // can't see anything
icon_state = "bigsunglasses" icon_state = "bigsunglasses"
item_state = "bigsunglasses" item_state = "bigsunglasses"
/obj/item/clothing/glasses/fakesunglasses //Sunglasses without flash immunity
name = "stylish sunglasses"
desc = "A pair of designer sunglasses. Doesn't seem like it'll block flashes."
icon_state = "sun"
item_state = "sun"
item_state_slots = list(slot_r_hand_str = "sunglasses", slot_l_hand_str = "sunglasses")
/obj/item/clothing/glasses/fakesunglasses/prescription
name = "stylish prescription sunglasses"
prescription = 1
/obj/item/clothing/glasses/fakesunglasses/aviator
desc = "A pair of designer sunglasses. Doesn't seem like it'll block flashes. Comes with built-in prescription lenses."
icon_state = "aviator"
item_state = "aviator"
prescription = 1
/obj/item/clothing/glasses/sunglasses/sechud /obj/item/clothing/glasses/sunglasses/sechud
name = "HUDsunglasses" name = "HUDsunglasses"
desc = "Sunglasses with a HUD." desc = "Sunglasses with a HUD."
@@ -317,6 +411,66 @@ BLIND // can't see anything
icon_state = "swatgoggles" icon_state = "swatgoggles"
item_flags = AIRTIGHT item_flags = AIRTIGHT
/obj/item/clothing/glasses/sunglasses/sechud/head
name = "advanced aviators"
desc = "Snazzy, advanced aviators with inbuilt combat and security information."
item_state = "hosglasses"
icon_state = "hosglasses"
prescription = 1
/obj/item/clothing/glasses/sunglasses/sechud/aviator
name = "HUD aviators"
desc = "Modified aviator glasses that can be switched between HUD and flash protection modes. Comes with bonus prescription overlay."
icon_state = "sec_hud"
off_state = "sec_flash"
item_state_slots = list(slot_r_hand_str = "sunglasses", slot_l_hand_str = "sunglasses")
action_button_name = "Toggle Mode"
var/on = TRUE
toggleable = TRUE
activation_sound = 'sound/effects/pop.ogg'
prescription = 1
var/hud_holder
/obj/item/clothing/glasses/sunglasses/sechud/aviator/Initialize()
.=..()
hud_holder = hud
/obj/item/clothing/glasses/sunglasses/sechud/aviator/Destroy()
qdel(hud_holder)
hud_holder = null
hud = null
.=..()
/obj/item/clothing/glasses/sunglasses/sechud/aviator/attack_self(mob/user)
if(toggleable && !user.incapacitated())
on = !on
if(on)
flash_protection = FLASH_PROTECTION_NONE
src.hud = hud_holder
to_chat(user, "You switch \the [src] to HUD mode.")
else
flash_protection = initial(flash_protection)
src.hud = null
to_chat(user, "You switch \the [src] to flash protection mode.")
update_icon()
sound_to(user, activation_sound)
user.update_inv_glasses()
user.update_action_buttons()
/obj/item/clothing/glasses/sunglasses/sechud/aviator/update_icon()
if(on)
icon_state = initial(icon_state)
else
icon_state = off_state
/obj/item/clothing/glasses/sunglasses/sechud/aviator/verb/toggle()
set category = "Object"
set name = "Toggle Aviators"
set src in usr
attack_self(usr)
/obj/item/clothing/glasses/thermal /obj/item/clothing/glasses/thermal
name = "optical thermal scanner" name = "optical thermal scanner"
desc = "Thermals in the shape of glasses." desc = "Thermals in the shape of glasses."
@@ -377,6 +531,23 @@ BLIND // can't see anything
item_state = "syringe_kit" item_state = "syringe_kit"
item_flags = null item_flags = null
/obj/item/clothing/glasses/thermal/aviator
name = "aviators"
desc = "Modified aviator glasses with a toggled thermal-vision mode. Comes with bonus prescription overlay."
icon_state = "aviator_thr"
off_state = "aviator"
item_state_slots = list(slot_r_hand_str = "sunglasses", slot_l_hand_str = "sunglasses")
action_button_name = "Toggle HUD"
activation_sound = 'sound/effects/pop.ogg'
prescription = 1
/obj/item/clothing/glasses/thermal/aviator/verb/toggle()
set category = "Object"
set name = "Toggle Aviators"
set src in usr
attack_self(usr)
/obj/item/clothing/glasses/eyepatch/hud /obj/item/clothing/glasses/eyepatch/hud
name = "iPatch" 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." desc = "For the technologically inclined pirate. It connects directly to the optical nerve of the user, replacing the need for that useless eyeball."

View File

@@ -0,0 +1,39 @@
################################
# 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 aviators for each kind of HUD, also adding night/thermal versions to the uplink."
- rscadd: "Adds civilian sunglasses to the loadout, they do not protect against flashes."
- tweak: "Security Officers now have HUD aviators instead of their previous glasses. They can be toggled to HUD or flash protection, but cannot do both at the same time."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 11 KiB