diff --git a/code/game/objects/structures/table_flipped.dm b/code/game/objects/structures/table_flipped.dm index c006695a7df0..28af5d0b63bd 100644 --- a/code/game/objects/structures/table_flipped.dm +++ b/code/game/objects/structures/table_flipped.dm @@ -17,10 +17,22 @@ AddElement(/datum/element/connect_loc, loc_connections) +/obj/structure/flippedtable/examine(mob/user) + . = ..() + . += span_notice("You could right the [name] by control shift-clicking it.") + +/obj/structure/flippedtable/proc/check_dir() + if(dir == NORTHEAST || dir == SOUTHEAST) + return EAST + if(dir == NORTHWEST || dir == SOUTHWEST) + return WEST + return dir + /obj/structure/flippedtable/CanAllowThrough(atom/movable/mover, turf/target) . = ..() - var/attempted_dir = get_dir(loc, target) - if(table_type == /obj/structure/table/glass) //Glass table, jolly ranchers pass + var/table_dir = check_dir() + var/attempted_dir = get_dir(loc, mover) + if(table_type == /obj/structure/table/glass) //Glass table, lasers can pass if(istype(mover) && (mover.pass_flags & PASSGLASS)) return TRUE if(istype(mover, /obj/projectile)) @@ -29,20 +41,20 @@ if(proj_obj.trajectory && angle2dir_cardinal(proj_obj.trajectory.angle) == dir) return TRUE return FALSE - return attempted_dir != dir + return attempted_dir != table_dir /obj/structure/flippedtable/proc/on_exit(datum/source, atom/movable/exiter, direction) SIGNAL_HANDLER - + var/table_dir = check_dir() if(exiter == src) return // Let's not block ourselves. - if(table_type == /obj/structure/table/glass) //Glass table, jolly ranchers pass + if(table_type == /obj/structure/table/glass) //Glass table, lasers pass if(istype(exiter) && (exiter.pass_flags & PASSGLASS)) return if(istype(exiter, /obj/projectile)) return - if(direction == dir) + if(direction == table_dir) exiter.Bump(src) return COMPONENT_ATOM_BLOCK_EXIT return @@ -51,10 +63,10 @@ . = ..() if(!istype(user) || !user.can_interact_with(src)) return FALSE - user.visible_message("[user] starts flipping [src]!", "You start flipping over the [src]!") + user.visible_message(span_danger("[user] starts flipping [src]!"), span_notice("You start flipping over the [src]!")) if(do_after(user, max_integrity/4)) var/obj/structure/table/table_unflip = new table_type(src.loc) table_unflip.obj_integrity = obj_integrity - user.visible_message("[user] flips over the [src]!", "You flip over the [src]!") + user.visible_message(span_danger("[user] flips over the [src]!"), span_notice("You flip over the [src]!")) playsound(src, 'sound/items/trayhit2.ogg', 100) qdel(src)