Stairs are Dangerous (#9210)

* Crates, closets, rollerbeds and wheelchairs now cannot safely traverse
stairs.
This commit is contained in:
Geeves
2024-05-12 21:01:38 +02:00
committed by GitHub
parent 43cd06acf9
commit 3920f83d0f
5 changed files with 51 additions and 0 deletions
+4
View File
@@ -286,3 +286,7 @@
/obj/proc/clean()
clean_blood()
color = initial(color)
/// This fires when the object /crosses() a stair object
/obj/proc/stair_act()
return
@@ -765,6 +765,19 @@
QDEL_NULL(linked_teleporter)
return ..()
/obj/structure/closet/stair_act()
if(opened || !can_open())
return
visible_message(SPAN_WARNING("\The [src] flies open as it bounces on the stairs!"))
for(var/thing in src)
var/atom/movable/AM = thing
AM.forceMove(get_turf(src))
AM.throw_at_random(TRUE, 1, 2)
open()
return ..()
/*
==========================
Contents Scanner
@@ -308,6 +308,21 @@
else
occupant.visible_message(SPAN_DANGER("[occupant] crashed into \the [A]!"))
/obj/structure/bed/stair_act()
if(!buckled)
return
var/atom/movable/unbuckled_atom = unbuckle()
if(!unbuckled_atom)
return
unbuckled_atom.visible_message("<b>\The [unbuckled_atom]</b> goes flying out of \the [src] as it bounces on the stairs!", SPAN_WARNING("You go flying out of \the [src] as it bounces on the stairs!"))
unbuckled_atom.throw_at_random(FALSE, 1, 2)
if(ismob(unbuckled_atom))
var/mob/unbuckled_mob = unbuckled_atom
unbuckled_mob.Paralyse(5)
/obj/structure/bed/psych
name = "psychiatrist's couch"
desc = "For prime comfort during psychiatric evaluations."
@@ -565,6 +580,9 @@
.=..()
set_light(2,1,LIGHT_COLOR_CYAN)
/obj/structure/bed/roller/hover/stair_act()
return
/obj/item/roller
name = "roller bed"
desc = "A collapsed roller bed that can be carried around."
+10
View File
@@ -275,6 +275,11 @@
playsound(src, 'sound/effects/stairs_step.ogg', 50)
playsound(target, 'sound/effects/stairs_step.ogg', 50)
/obj/structure/stairs/Crossed(obj/O)
if(istype(O))
O.stair_act()
return ..()
/obj/structure/stairs/proc/upperStep(var/turf/T)
return (T == loc)
@@ -372,6 +377,11 @@
icon = 'icons/obj/structure/stairs.dmi'
icon_state = "np_stair"
/obj/structure/platform_stairs/Crossed(obj/O)
if(istype(O))
O.stair_act()
return ..()
/obj/structure/platform_stairs/south_north_solo
icon_state = "p_stair_sn_solo_cap"
+6
View File
@@ -0,0 +1,6 @@
author: Geeves
delete-after: True
changes:
- rscadd: "Crates, closets, rollerbeds and wheelchairs now cannot safely traverse stairs."