diff --git a/code/datums/uplink/devices and tools.dm b/code/datums/uplink/devices and tools.dm index 6dde1c9aee2..7f0d9cfe182 100644 --- a/code/datums/uplink/devices and tools.dm +++ b/code/datums/uplink/devices and tools.dm @@ -119,3 +119,15 @@ name = "HUDPatch, Night-Vision" item_cost = 4 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." \ No newline at end of file diff --git a/code/game/antagonist/outsider/raider.dm b/code/game/antagonist/outsider/raider.dm index caf3d7e5627..a5d32547e35 100644 --- a/code/game/antagonist/outsider/raider.dm +++ b/code/game/antagonist/outsider/raider.dm @@ -42,7 +42,8 @@ var/datum/antagonist/raider/raiders var/list/raider_glasses = list( /obj/item/clothing/glasses/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( diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index fd783f4135f..dc1d208ce18 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -42,7 +42,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black/unathi(H), slot_gloves) 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/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) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_l_store) else diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 7a30661eac1..4ff094261e1 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -30,6 +30,7 @@ new /obj/item/weapon/storage/toolbox/mechanical(src) new /obj/item/clothing/suit/storage/hazardvest(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/flash(src) new /obj/item/taperoll/engineering(src) @@ -123,6 +124,7 @@ new /obj/item/clothing/suit/storage/hazardvest(src) new /obj/item/clothing/mask/gas(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/taperoll/engineering(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index f7d41ed3097..8b8d9d8f7a3 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -84,6 +84,7 @@ new /obj/item/clothing/suit/storage/toggle/fr_jacket(src) new /obj/item/clothing/shoes/white(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 @@ -112,6 +113,7 @@ new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(src) new /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt(src) new /obj/item/weapon/storage/box/inhalers(src) + new /obj/item/clothing/glasses/hud/health/aviator(src) /obj/structure/closet/secure_closet/CMO2 name = "chief medical officer's attire" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 1231c3a473a..2e74401a4ad 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -141,6 +141,7 @@ new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/ammo_magazine/tranq(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/melee/baton/loaded(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/helmet/HoS(src) //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) //Belts new /obj/item/weapon/storage/belt/security(src) @@ -218,6 +219,7 @@ //Tools new /obj/item/weapon/cartridge/security(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/taperoll/police(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) @@ -280,6 +282,7 @@ new /obj/item/clothing/head/helmet(src) //Tools 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/ammo_magazine/c45m/rubber(src) new /obj/random/handgun(src) diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes.dm b/code/modules/client/preference_setup/loadout/loadout_eyes.dm index 1d8443707b3..61029dab53f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes.dm @@ -33,6 +33,16 @@ display_name = "science Goggles" 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 display_name = "meson goggles, prescription" path = /obj/item/clothing/glasses/meson/prescription @@ -43,20 +53,44 @@ path = /obj/item/clothing/glasses/hud/security 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 display_name = "medical HUD" path = /obj/item/clothing/glasses/hud/health 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 - display_name = "sunglasses, fat" + display_name = "sunglasses, fat (Security/Command)" 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") /datum/gear/eyes/shades/prescriptionsun - display_name = "sunglasses, presciption" + display_name = "sunglasses, presciption (Security/Command)" 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 display_name = "iPatch" path = /obj/item/clothing/glasses/eyepatch/hud diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 1262c4ce600..b0bcefe4ae1 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -85,6 +85,43 @@ BLIND // can't see anything desc = "Optical Meson Scanner with prescription lenses." 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 name = "science goggles" desc = "Used to protect your eyes against harmful chemicals!" @@ -114,6 +151,25 @@ BLIND // can't see anything . = ..() 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 name = "goggles" desc = "A simple pair of plain goggles." @@ -164,6 +220,23 @@ BLIND // can't see anything vision_flags = SEE_OBJS 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 name = "prescription glasses" desc = "Made by Nerd. Co." @@ -221,6 +294,13 @@ BLIND // can't see anything darkness_view = -1 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 name = "welding goggles" 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() toggle() - /obj/item/clothing/glasses/welding/verb/toggle() set category = "Object" set name = "Adjust welding goggles" @@ -276,7 +355,6 @@ BLIND // can't see anything item_state = "blindfold" tint = TINT_BLIND - /obj/item/clothing/glasses/sunglasses/blinders name = "vaurcae blinders" 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 w_class = 1 - /obj/item/clothing/glasses/sunglasses/prescription name = "prescription sunglasses" prescription = 1 @@ -301,6 +378,23 @@ BLIND // can't see anything icon_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 name = "HUDsunglasses" desc = "Sunglasses with a HUD." @@ -317,6 +411,66 @@ BLIND // can't see anything icon_state = "swatgoggles" 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 name = "optical thermal scanner" desc = "Thermals in the shape of glasses." @@ -377,6 +531,23 @@ BLIND // can't see anything item_state = "syringe_kit" 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 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." diff --git a/html/changelogs/paradoxspace-topgun.yml b/html/changelogs/paradoxspace-topgun.yml new file mode 100644 index 00000000000..6fc981b1048 --- /dev/null +++ b/html/changelogs/paradoxspace-topgun.yml @@ -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." diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index fd77e51cf4d..716007cc4e0 100644 Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index b7e78d70272..fa617df99bc 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ