You can now push Wraith Spectacles up (#22188)

* You can now push Wraith Spectacles up

* you need to... actually LOSE the xray vision

* Don't flicker toooo much

* for bonus points, let's us refactor status effects while we're here

* might as well keep that around
This commit is contained in:
Joan Lung
2016-12-16 10:59:26 +13:00
committed by oranges
parent 3b10ab8fdc
commit b2fcbabb0b
11 changed files with 160 additions and 103 deletions
+19 -13
View File
@@ -685,25 +685,31 @@ BLIND // can't see anything
body_parts_covered |= CHEST
return adjusted
/obj/item/clothing/proc/weldingvisortoggle() //Malk: proc to toggle welding visors on helmets, masks, goggles, etc.
if(!can_use(usr))
return
/obj/item/clothing/proc/weldingvisortoggle(mob/user) //proc to toggle welding visors on helmets, masks, goggles, etc.
if(!can_use(user))
return FALSE
up ^= 1
flags ^= visor_flags
flags_inv ^= visor_flags_inv
flags_cover ^= initial(flags_cover)
icon_state = "[initial(icon_state)][up ? "up" : ""]"
usr << "<span class='notice'>You adjust \the [src] [up ? "up" : "down"].</span>"
flash_protect ^= initial(flash_protect)
tint ^= initial(tint)
visor_toggling()
if(istype(usr, /mob/living/carbon))
var/mob/living/carbon/C = usr
user << "<span class='notice'>You adjust \the [src] [up ? "up" : "down"].</span>"
if(istype(user, /mob/living/carbon))
var/mob/living/carbon/C = user
C.head_update(src, forced = 1)
for(var/X in actions)
var/datum/action/A = X
A.UpdateButtonIcon()
return TRUE
/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags
up = !up
flags ^= visor_flags
flags_inv ^= visor_flags_inv
flags_cover ^= initial(flags_cover)
icon_state = "[initial(icon_state)][up ? "up" : ""]"
flash_protect ^= initial(flash_protect)
tint ^= initial(tint)
/obj/item/clothing/proc/can_use(mob/user)
if(user && ismob(user))
+13 -11
View File
@@ -3,6 +3,17 @@
materials = list(MAT_GLASS = 250)
var/glass_colour_type = null //colors your vision when worn
/obj/item/clothing/glasses/visor_toggling()
..()
vision_flags ^= initial(vision_flags)
darkness_view ^= initial(darkness_view)
invis_view ^= initial(invis_view)
/obj/item/clothing/glasses/weldingvisortoggle(mob/user)
. = ..()
if(. && user)
user.update_sight()
//called when thermal glasses are emped.
/obj/item/clothing/glasses/proc/thermal_overload()
if(ishuman(src.loc))
@@ -202,17 +213,8 @@
visor_flags_inv = HIDEEYES
glass_colour_type = /datum/client_colour/glass_colour/gray
/obj/item/clothing/glasses/welding/attack_self()
toggle()
/obj/item/clothing/glasses/welding/verb/toggle()
set category = "Object"
set name = "Adjust welding goggles"
set src in usr
weldingvisortoggle()
/obj/item/clothing/glasses/welding/attack_self(mob/user)
weldingvisortoggle(user)
/obj/item/clothing/glasses/sunglasses/blindfold
+2 -10
View File
@@ -28,16 +28,8 @@
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
resistance_flags = FIRE_PROOF
/obj/item/clothing/head/welding/attack_self()
toggle()
/obj/item/clothing/head/welding/verb/toggle()
set category = "Object"
set name = "Adjust welding helmet"
set src in usr
weldingvisortoggle()
/obj/item/clothing/head/welding/attack_self(mob/user)
weldingvisortoggle(user)
/*
+2 -8
View File
@@ -29,15 +29,9 @@
visor_flags_cover = MASKCOVERSEYES
resistance_flags = FIRE_PROOF
/obj/item/clothing/mask/gas/welding/attack_self()
toggle()
/obj/item/clothing/mask/gas/welding/attack_self(mob/user)
weldingvisortoggle(user)
/obj/item/clothing/mask/gas/welding/verb/toggle()
set category = "Object"
set name = "Adjust welding mask"
set src in usr
weldingvisortoggle()
// ********************************************************************
@@ -72,4 +72,6 @@
var/blood_volume = 0 //how much blood the mob has
var/obj/effect/proc_holder/ranged_ability //Any ranged ability the mob has, as a click override
var/list/status_effects //a list of all status effects the mob has
var/slipping = FALSE