Mobs crushed by doors while inside an atom wont be forcemoved outside of the atom (#10608)

This commit is contained in:
mikomyazaki
2020-11-19 23:54:04 +01:00
committed by GitHub
parent e02259d53b
commit d30d7b9f1d
2 changed files with 53 additions and 13 deletions
+12 -13
View File
@@ -1489,21 +1489,20 @@ About the new airlock wires panel:
SetWeakened(5)
visible_message(SPAN_DANGER("[src] is crushed in the airlock!"), SPAN_DANGER("You are crushed in the airlock!"), SPAN_NOTICE("You hear airlock actuators momentarily struggle."))
var/turf/T = get_turf(src)
var/turf/T = loc
if(istype(T))
var/list/valid_turfs = list()
for(var/dir_to_test in cardinal)
var/turf/new_turf = get_step(T, dir_to_test)
if(!new_turf.contains_dense_objects())
valid_turfs |= new_turf
var/list/valid_turfs = list()
for(var/dir_to_test in cardinal)
var/turf/new_turf = get_step(T, dir_to_test)
if(!new_turf.contains_dense_objects())
valid_turfs |= new_turf
while(valid_turfs.len)
T = pick(valid_turfs)
valid_turfs -= T
if(src.forceMove(T))
return
while(valid_turfs.len)
T = pick(valid_turfs)
valid_turfs -= T
if(src.forceMove(T))
return
/mob/living/carbon/airlock_crush(var/crush_damage)
. = ..()
@@ -0,0 +1,41 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
# balance
# admin
# backend
# security
# refactor
#################################
# Your name.
author: mikomyazaki
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- bugfix: "Being crushed by an airlock while inside something (e.g. a locker) will no longer teleport you outside of the thing."