mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
Night Vision Goggles update (#84594)
## About The Pull Request This is a reboot of #84550 but with way less unbearable: mesons are off the table and I've made the night vision tonalities lighter now, while also improving the darkness cutoffs of some of them. Btw, you can also turn night vision googles on/off now. Each pair of departmental night vision goggles now comes with their own tint to boot. As always, this doesn't affect nukies and ninjas. They're almost garaunteed to keep their googles equipped and on at all time, so it would honestly adulterate the overall experience a little. Now, for some pictures... In the dark, **top** row is **old**, **bottom** row is **new**. from left to right: security, science, standard/meson, diagnostic, health:  In the light: security, science, no goggles, standard/meson, diagnostic, health:  The screenshots were taken from varedited goggles on the servers because it's bit faster than booting up a local server, plus I had to finetune a few things. ## Why It's Good For The Game So, I kinda wanted to give a bit of screen colors to goggles that was not some sort of "optional, by default turned off" kind of crap nobody cares about, however my previous PR was met with a lot of criticism, which made me rethink how to do it. I honestly don't want it to be a burden, but I do want to make them a bit fancier tho. Also the the medical NVs (and perhaps sec NVs) were a bit crappier than the rest. ## Changelog 🆑 add: Night vision goggles now subtly tint your screen. add: You can turn your night vision goggles off. Doing so removes the tint and the eye protection malus. /🆑
This commit is contained in:
@@ -116,3 +116,36 @@
|
||||
/datum/action/item_action/call_link
|
||||
name = "Call MODlink"
|
||||
|
||||
/datum/action/item_action/toggle_nv
|
||||
name = "Toggle Night Vision"
|
||||
var/stored_cutoffs
|
||||
var/stored_colour
|
||||
|
||||
/datum/action/item_action/toggle_nv/New(obj/item/clothing/glasses/target)
|
||||
. = ..()
|
||||
target.AddElement(/datum/element/update_icon_updates_onmob)
|
||||
|
||||
/datum/action/item_action/toggle_nv/Trigger(trigger_flags)
|
||||
if(!istype(target, /obj/item/clothing/glasses))
|
||||
return ..()
|
||||
var/obj/item/clothing/glasses/goggles = target
|
||||
var/mob/holder = goggles.loc
|
||||
if(!istype(holder) || holder.get_slot_by_item(goggles) != ITEM_SLOT_EYES)
|
||||
holder = null
|
||||
if(stored_cutoffs)
|
||||
goggles.color_cutoffs = stored_cutoffs
|
||||
goggles.flash_protect = FLASH_PROTECTION_SENSITIVE
|
||||
stored_cutoffs = null
|
||||
if(stored_colour)
|
||||
goggles.change_glass_color(stored_colour)
|
||||
playsound(goggles, 'sound/items/night_vision_on.ogg', 30, TRUE, -3)
|
||||
else
|
||||
stored_cutoffs = goggles.color_cutoffs
|
||||
stored_colour = goggles.glass_colour_type
|
||||
goggles.color_cutoffs = list()
|
||||
goggles.flash_protect = FLASH_PROTECTION_NONE
|
||||
if(stored_colour)
|
||||
goggles.change_glass_color(null)
|
||||
playsound(goggles, 'sound/machines/click.ogg', 30, TRUE, -3)
|
||||
holder?.update_sight()
|
||||
goggles.update_appearance()
|
||||
|
||||
@@ -300,7 +300,7 @@
|
||||
new /obj/item/clothing/suit/armor/vest/marine/pmc(src) //The armor kit is comparable to the infiltrator, 6 TC
|
||||
new /obj/item/clothing/head/helmet/marine/pmc(src)
|
||||
new /obj/item/clothing/mask/gas/sechailer(src)
|
||||
new /obj/item/clothing/glasses/night(src) // 3~ TC
|
||||
new /obj/item/clothing/glasses/night/colorless(src) // 3~ TC
|
||||
new /obj/item/clothing/gloves/krav_maga/combatglovesplus(src) //5TC
|
||||
new /obj/item/clothing/shoes/jackboots(src)
|
||||
new /obj/item/storage/belt/military/assault/fisher(src) //items in this belt easily costs 18 TC
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/obj/structure/closet/syndicate/personal/PopulateContents()
|
||||
..()
|
||||
new /obj/item/trench_tool(src)
|
||||
new /obj/item/clothing/glasses/night(src)
|
||||
new /obj/item/clothing/glasses/night/colorless(src)
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
new /obj/item/storage/belt/military(src)
|
||||
new /obj/item/storage/belt/holster/nukie(src)
|
||||
|
||||
@@ -634,6 +634,10 @@ Striking a noncultist, however, will tear their flesh."}
|
||||
icon_state = "blindfold"
|
||||
inhand_icon_state = "blindfold"
|
||||
flash_protect = FLASH_PROTECTION_WELDER
|
||||
actions_types = null
|
||||
color_cutoffs = list(40, 0, 0) //red
|
||||
glass_colour_type = null
|
||||
forced_glass_color = FALSE
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/night/cultblind/equipped(mob/living/user, slot)
|
||||
..()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/datum/outfit/ninja
|
||||
name = "Space Ninja"
|
||||
uniform = /obj/item/clothing/under/syndicate/ninja
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
glasses = /obj/item/clothing/glasses/night/colorless
|
||||
mask = /obj/item/clothing/mask/gas/ninja
|
||||
ears = /obj/item/radio/headset
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
/datum/outfit/syndicate/full
|
||||
name = "Syndicate Operative - Full Kit"
|
||||
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
glasses = /obj/item/clothing/glasses/night/colorless
|
||||
mask = /obj/item/clothing/mask/gas/syndicate
|
||||
back = /obj/item/mod/control/pre_equipped/nuclear
|
||||
r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
|
||||
|
||||
@@ -180,9 +180,15 @@
|
||||
/datum/client_colour/glass_colour/yellow
|
||||
colour = "#ffff66"
|
||||
|
||||
/datum/client_colour/glass_colour/lightyellow
|
||||
colour = "#ffffaa"
|
||||
|
||||
/datum/client_colour/glass_colour/red
|
||||
colour = "#ffaaaa"
|
||||
|
||||
/datum/client_colour/glass_colour/lightred
|
||||
colour = "#ffcccc"
|
||||
|
||||
/datum/client_colour/glass_colour/darkred
|
||||
colour = "#bb5555"
|
||||
|
||||
@@ -195,6 +201,9 @@
|
||||
/datum/client_colour/glass_colour/purple
|
||||
colour = "#ff99ff"
|
||||
|
||||
/datum/client_colour/glass_colour/lightpurple
|
||||
colour = "#ffccff"
|
||||
|
||||
/datum/client_colour/glass_colour/gray
|
||||
colour = "#cccccc"
|
||||
|
||||
|
||||
@@ -92,8 +92,14 @@
|
||||
inhand_icon_state = "nvgmeson"
|
||||
flash_protect = FLASH_PROTECTION_SENSITIVE
|
||||
// Night vision mesons get the same but more intense
|
||||
color_cutoffs = list(10, 30, 10)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
color_cutoffs = list(10, 35, 10)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightgreen
|
||||
actions_types = list(/datum/action/item_action/toggle_nv)
|
||||
forced_glass_color = TRUE
|
||||
|
||||
/obj/item/clothing/glasses/meson/night/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = length(color_cutoffs) ? initial(icon_state) : "nvgmeson_off"
|
||||
|
||||
/obj/item/clothing/glasses/meson/gar
|
||||
name = "gar mesons"
|
||||
@@ -138,8 +144,14 @@
|
||||
icon_state = "scihudnight"
|
||||
flash_protect = FLASH_PROTECTION_SENSITIVE
|
||||
// Real vivid purple
|
||||
color_cutoffs = list(50, 10, 30)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
color_cutoffs = list(30, 5, 15)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightpurple
|
||||
actions_types = list(/datum/action/item_action/toggle_nv)
|
||||
forced_glass_color = TRUE
|
||||
|
||||
/obj/item/clothing/glasses/science/night/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off"
|
||||
|
||||
/obj/item/clothing/glasses/night
|
||||
name = "night vision goggles"
|
||||
@@ -149,8 +161,18 @@
|
||||
flags_cover = GLASSESCOVERSEYES
|
||||
flash_protect = FLASH_PROTECTION_SENSITIVE
|
||||
// Dark green
|
||||
color_cutoffs = list(10, 30, 10)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
color_cutoffs = list(10, 25, 10)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightgreen
|
||||
actions_types = list(/datum/action/item_action/toggle_nv)
|
||||
forced_glass_color = TRUE
|
||||
|
||||
/obj/item/clothing/glasses/night/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off"
|
||||
|
||||
/obj/item/clothing/glasses/night/colorless
|
||||
desc = parent_type::desc + " Now with 50% less green!"
|
||||
forced_glass_color = FALSE
|
||||
|
||||
/obj/item/clothing/glasses/eyepatch
|
||||
name = "eyepatch"
|
||||
|
||||
@@ -67,8 +67,14 @@
|
||||
flash_protect = FLASH_PROTECTION_SENSITIVE
|
||||
flags_cover = GLASSESCOVERSEYES
|
||||
// Blue green, dark
|
||||
color_cutoffs = list(5, 15, 30)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
color_cutoffs = list(20, 20, 45)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightgreen
|
||||
actions_types = list(/datum/action/item_action/toggle_nv)
|
||||
forced_glass_color = TRUE
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/night/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off"
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/night/meson
|
||||
name = "night vision meson health scanner HUD"
|
||||
@@ -79,7 +85,8 @@
|
||||
name = "night vision medical science scanner HUD"
|
||||
desc = "An clandestine medical science heads-up display that allows operatives to find \
|
||||
dying captains and the perfect poison to finish them off in complete darkness."
|
||||
clothing_traits = list(TRAIT_REAGENT_SCANNER)
|
||||
clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_MEDICAL_HUD)
|
||||
forced_glass_color = FALSE
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/sunglasses
|
||||
name = "medical HUDSunglasses"
|
||||
@@ -115,8 +122,14 @@
|
||||
flash_protect = FLASH_PROTECTION_SENSITIVE
|
||||
flags_cover = GLASSESCOVERSEYES
|
||||
// Pale yellow
|
||||
color_cutoffs = list(30, 20, 5)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
color_cutoffs = list(25, 15, 5)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightyellow
|
||||
actions_types = list(/datum/action/item_action/toggle_nv)
|
||||
forced_glass_color = TRUE
|
||||
|
||||
/obj/item/clothing/glasses/hud/diagnostic/night/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off"
|
||||
|
||||
/obj/item/clothing/glasses/hud/diagnostic/sunglasses
|
||||
name = "diagnostic sunglasses"
|
||||
@@ -187,8 +200,14 @@
|
||||
flash_protect = FLASH_PROTECTION_SENSITIVE
|
||||
flags_cover = GLASSESCOVERSEYES
|
||||
// Red with a tint of green
|
||||
color_cutoffs = list(35, 5, 5)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
color_cutoffs = list(40, 15, 10)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightred
|
||||
actions_types = list(/datum/action/item_action/toggle_nv)
|
||||
forced_glass_color = TRUE
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/night/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off"
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/sunglasses/gars
|
||||
name = "\improper HUD gar glasses"
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
/obj/item/storage/box/lights/mixed = 1,
|
||||
)
|
||||
belt = /obj/item/storage/belt/janitor/full
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
glasses = /obj/item/clothing/glasses/night/colorless
|
||||
l_pocket = /obj/item/grenade/chem_grenade/cleaner
|
||||
r_pocket = /obj/item/grenade/chem_grenade/cleaner
|
||||
l_hand = /obj/item/storage/bag/trash/bluespace
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
|
||||
/datum/outfit/syndicatespace/syndicrew
|
||||
name = "Syndicate Ship Crew Member"
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
glasses = /obj/item/clothing/glasses/night/colorless
|
||||
mask = /obj/item/clothing/mask/gas/syndicate
|
||||
l_pocket = /obj/item/gun/ballistic/automatic/pistol
|
||||
r_pocket = /obj/item/knife/combat/survival
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 16 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 19 KiB |
1
sound/items/attributions.txt
Normal file
1
sound/items/attributions.txt
Normal file
@@ -0,0 +1 @@
|
||||
night_vision_on.ogg by Syna-Max -- https://freesound.org/s/60345/ -- License: Attribution NonCommercial 4.0
|
||||
BIN
sound/items/night_vision_on.ogg
Normal file
BIN
sound/items/night_vision_on.ogg
Normal file
Binary file not shown.
Reference in New Issue
Block a user