diff --git a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm
index e2f88ac9d9f..e76ed33827c 100644
--- a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm
+++ b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm
@@ -4,7 +4,7 @@
/obj/effect/proc_holder/changeling/augmented_eyesight
name = "Augmented Eyesight"
desc = "Creates heat receptors in our eyes and dramatically increases light sensing ability."
- helptext = "Grants us night vision and thermal vision. It may be toggled on or off."
+ helptext = "Grants us night vision and thermal vision. It may be toggled on or off. We will become more vulnerable to flash-based devices while active."
chemical_cost = 0
dna_cost = 2 //Would be 1 without thermal vision
var/active = 0 //Whether or not vision is enhanced
@@ -13,9 +13,11 @@
active = !active
if(active)
user << "We feel a minute twitch in our eyes, and darkness creeps away."
+ user.weakeyes = 1
else
user << "Our vision dulls. Shadows gather."
user.sight -= SEE_MOBS
+ user.weakeyes = 0
while(active)
user.see_in_dark = 8
user.see_invisible = 2
diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm
index 3873123583f..f575ccd7778 100644
--- a/code/game/machinery/flasher.dm
+++ b/code/game/machinery/flasher.dm
@@ -84,6 +84,9 @@
if(L.flash_eyes())
L.Weaken(strength)
+ if(L.weakeyes)
+ L.Weaken(strength * 1.5)
+ L.visible_message("[L] gasps and shields their eyes!")
return 1
diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm
index e680889e33d..1345391f783 100644
--- a/code/game/objects/items/devices/flash.dm
+++ b/code/game/objects/items/devices/flash.dm
@@ -60,11 +60,16 @@
/obj/item/device/flash/proc/flash_carbon(var/mob/living/carbon/M, var/mob/user = null, var/power = 5, targeted = 1)
add_logs(user, M, "flashed", object="[src.name]")
if(user && targeted)
+ if(M.weakeyes)
+ M.Weaken(3) //quick weaken bypasses eye protection but has no eye flash
if(M.flash_eyes(1, 1))
M.confused += power
terrible_conversion_proc(M, user)
M.Stun(1)
user.visible_message("[user] blinds [M] with the flash!")
+ if(M.weakeyes)
+ M.Stun(2)
+ M.visible_message("[M] gasps and shields their eyes!")
else
user.visible_message("[user] fails to blind [M] with the flash!")
else
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index 4dc95ea12e3..f4ed728f21d 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -109,6 +109,8 @@
//20% chance to actually hit the eyes
if(prob(effectchance * diode.rating) && C.flash_eyes(severity))
outmsg = "You blind [C] by shining [src] in their eyes."
+ if(C.weakeyes)
+ C.Stun(1)
else
outmsg = "You fail to blind [C] by shining [src] at their eyes."
diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm
index 8157a2208e7..9c39b6c5f3d 100644
--- a/code/game/objects/items/weapons/grenades/flashbang.dm
+++ b/code/game/objects/items/weapons/grenades/flashbang.dm
@@ -27,11 +27,19 @@
var/distance = max(1,get_dist(src,T))
//Flash
+ if(M.weakeyes)
+ M.visible_message("[M] screams and collapses!")
+ M << "AAAAGH!"
+ M.Weaken(15) //hella stunned
+ M.Stun(15)
+ M.eye_stat += 8
+
if(M.flash_eyes())
M.eye_stat += rand(1, 3)
M.Stun(max(10/distance, 3))
M.Weaken(max(10/distance, 3))
+
//Bang
if((loc == M) || loc == M.loc)//Holding on person or being exactly where lies is significantly more dangerous and voids protection
M.Stun(10)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index a8918fd3051..2084317d388 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -155,6 +155,8 @@
/mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0)
var/damage = intensity - check_eye_prot()
if(..()) // we've been flashed
+ if(weakeyes)
+ Stun(2)
switch(damage)
if(1)
src << "Your eyes sting a little."
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 292206ab56b..5358cf7a878 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -141,6 +141,7 @@
var/area/lastarea = null
var/digitalcamo = 0 // Can they be tracked by the AI?
+ var/weakeyes = 0 //Are they vulnerable to flashes?
var/has_unlimited_silicon_privilege = 0 // Can they interact with station electronics