diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 998b213ff4d..70558da2ec7 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -142,18 +142,23 @@ . = buckle_mob(M, forced) if(.) + var/reveal_message if(!silent) if(M == user) + reveal_message = "You come out of hiding and buckle yourself to [src]." M.visible_message(\ "[M.name] buckles themselves to [src].",\ "You buckle yourself to [src].",\ "You hear metal clanking.") else + reveal_message = "You are revealed as you are buckled to [src]." M.visible_message(\ "[M.name] is buckled to [src] by [user.name]!",\ "You are buckled to [src] by [user.name]!",\ "You hear metal clanking.") + M.reveal(silent, reveal_message) //Reveal people so they aren't buckled to chairs from behind. + /atom/movable/proc/user_unbuckle_mob(mob/living/buckled_mob, mob/user) var/mob/living/M = unbuckle_mob(buckled_mob) if(M) @@ -193,4 +198,3 @@ riding_datum.handle_vehicle_layer() riding_datum.handle_vehicle_offsets() //VOREStation Add End - \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index edf1bdd6c6f..1e9fdbc3297 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1555,9 +1555,8 @@ /mob/living/carbon/human/proc/update_icon_special() //For things such as teshari hiding and whatnot. if(status_flags & HIDING) // Hiding? Carry on. - if(stat == DEAD || paralysis || weakened || stunned || restrained()) //stunned/knocked down by something that isn't the rest verb? Note: This was tried with INCAPACITATION_STUNNED, but that refused to work. - reset_plane_and_layer() - status_flags &= ~HIDING + if(stat == DEAD || paralysis || weakened || stunned || restrained() || buckled || LAZYLEN(grabbed_by)) //stunned/knocked down by something that isn't the rest verb? Note: This was tried with INCAPACITATION_STUNNED, but that refused to work. + reveal(TRUE) //Reveal them silently. else layer = HIDING_LAYER diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 9ea12b967c7..6ac15f79fd1 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -1,5 +1,6 @@ /mob/living/death() clear_fullscreens() + reveal(TRUE) //Silently reveal the mob if they were hidden. //VOREStation Edit - Mob spawner stuff if(source_spawner) source_spawner.get_death_report(src) diff --git a/code/modules/mob/living/living_powers.dm b/code/modules/mob/living/living_powers.dm index 1442c80f9ba..6cd5ebb1f5a 100644 --- a/code/modules/mob/living/living_powers.dm +++ b/code/modules/mob/living/living_powers.dm @@ -1,15 +1,20 @@ +/mob/living/proc/reveal(var/silent, var/message = "You have been revealed! You are no longer hidden.") + if(status_flags & HIDING) + status_flags &= ~HIDING + reset_plane_and_layer() + if(!silent && message) + to_chat(src, message) + /mob/living/proc/hide() set name = "Hide" set desc = "Allows to hide beneath tables or certain items. Toggled on or off." set category = "Abilities" - if(stat == DEAD || paralysis || weakened || stunned || restrained()) + if(stat == DEAD || paralysis || weakened || stunned || restrained() || buckled || LAZYLEN(grabbed_by)) return if(status_flags & HIDING) - status_flags &= ~HIDING - reset_plane_and_layer() - to_chat(src,"You have stopped hiding.") + reveal("You have stopped hiding.") else status_flags |= HIDING layer = HIDING_LAYER //Just above cables with their 2.44 diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index b5cc72fd199..96e5378eb2c 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -47,6 +47,8 @@ return affecting.grabbed_by += src + affecting.reveal("You are revealed as [assailant] grabs you.") + assailant.reveal("You reveal yourself as you grab [affecting].") hud = new /obj/screen/grab(src) hud.icon_state = "reinforce"