diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index e88fa9dc3e7..f940a4580bc 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -73,7 +73,8 @@ if(H != usr) H << "You feel a chill and are plunged into darkness." H.SetLuminosity(0) //This is required with the object-based lighting - + for(var/mob/living/silicon/robot/R in T.contents) + R.update_headlamp(1) /obj/effect/proc_holder/spell/targeted/shadow_walk diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index 280241e0cc0..07d551ecd9d 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -27,7 +27,7 @@ update_canmove() if(camera) camera.status = 0 - update_headlamp() //So borg lights are disabled when killed. + update_headlamp(1) //So borg lights are disabled when killed. uneq_all() // particularly to ensure sight modes are cleared diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index c0ad6477f9b..bb3a9dce86a 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -30,7 +30,7 @@ else uneq_all() stat = UNCONSCIOUS - update_headlamp() + update_headlamp(1) /mob/living/silicon/robot/handle_regular_status_updates() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 3e5ebc62337..a9f9ef73b6e 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -723,7 +723,7 @@ /mob/living/silicon/robot/update_icons() overlays.Cut() - if(stat == CONSCIOUS) + if(stat != DEAD && !(paralysis || stunned || weakened)) //Not dead, not stunned. var/state_name = icon_state //For easy conversion and/or different names switch(icon_state) if("robot") @@ -1001,12 +1001,16 @@ update_headlamp() -/mob/living/silicon/robot/proc/update_headlamp() +/mob/living/silicon/robot/proc/update_headlamp(var/turn_off = 0) SetLuminosity(0) - if(stat && lamp_intensity) + if(lamp_intensity && (turn_off || stat)) src << "Your headlamp has been deactivated." lamp_intensity = 0 + if(client) + var/obj/screen/robot/lamp/button = locate(/obj/screen/robot/lamp) in client.screen + if(button) + button.icon_state = "lamp0" else AddLuminosity(lamp_intensity) update_icons()