mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 21:40:55 +01:00
Fix space wind
This commit is contained in:
+23
-8
@@ -141,13 +141,28 @@ mob/living/carbon/human/airflow_hit(atom/A)
|
||||
Stun(round(airflow_speed * vsc.airflow_stun/2))
|
||||
. = ..()
|
||||
|
||||
zone/proc/movables()
|
||||
zone/proc/movables(list/origins)
|
||||
. = list()
|
||||
for(var/turf/T in contents)
|
||||
CHECK_TICK
|
||||
if (!origins || !origins.len)
|
||||
return
|
||||
|
||||
for(var/aa in T)
|
||||
var/atom/movable/A = aa
|
||||
if(!A.simulated || A.anchored || istype(A, /obj/effect) || istype(A, /mob/abstract/eye))
|
||||
continue
|
||||
. += A
|
||||
var/list/A // this should be the longer list
|
||||
var/list/B
|
||||
if (contents.len > origins)
|
||||
A = contents
|
||||
B = origins
|
||||
else
|
||||
A = origins
|
||||
B = contents
|
||||
|
||||
for (var/t in A)
|
||||
var/turf/T = t
|
||||
for (var/tt in B)
|
||||
var/turf/TT = tt
|
||||
if (T.contents.len > !!T.lighting_overlay && get_dist(T, TT) <= EDGE_KNOCKDOWN_MAX_DISTANCE)
|
||||
for (var/am in T)
|
||||
var/atom/movable/AM = am
|
||||
if (AM.simulated && !AM.anchored && !istype(AM, /obj/effect) && !istype(AM, /mob/abstract))
|
||||
.[AM] = TRUE
|
||||
|
||||
CHECK_TICK
|
||||
|
||||
@@ -169,11 +169,11 @@ Class Procs:
|
||||
var/list/attracted
|
||||
var/list/repelled
|
||||
if(differential > 0)
|
||||
attracted = A.movables()
|
||||
repelled = B.movables()
|
||||
attracted = A.movables(connecting_turfs)
|
||||
repelled = B.movables(connecting_turfs)
|
||||
else
|
||||
attracted = B.movables()
|
||||
repelled = A.movables()
|
||||
attracted = B.movables(connecting_turfs)
|
||||
repelled = A.movables(connecting_turfs)
|
||||
|
||||
// These are async, with waitfor = FALSE
|
||||
flow(attracted, abs(differential), 0)
|
||||
@@ -239,7 +239,7 @@ Class Procs:
|
||||
|
||||
var/differential = A.air.return_pressure() - air.return_pressure()
|
||||
if(abs(differential) >= vsc.airflow_lightest_pressure)
|
||||
var/list/attracted = A.movables()
|
||||
var/list/attracted = A.movables(connecting_turfs)
|
||||
// This call is async, with waitfor = FALSE
|
||||
flow(attracted, abs(differential), differential < 0)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user