mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-09 09:01:44 +00:00
Updated for SSair
This commit is contained in:
@@ -320,7 +320,33 @@
|
||||
var/mob/living/carbon/human/H = src
|
||||
H.Weaken(min(pressure_difference / 50, 2))
|
||||
spawn()
|
||||
throw_at(general_direction, pressure_difference / 10, pressure_difference / 200, null, 0, 0, null)
|
||||
var/max_distance = 14 // reduce by one each calculation to prevent infinate loops.
|
||||
var/min_observed_pressure = INFINITY
|
||||
var/turf/target = get_turf(src)
|
||||
if(isunsimulatedturf(target))
|
||||
return 0
|
||||
var/turf/possible_target = get_turf(src)
|
||||
while(!isunsimulatedturf(target) && max_distance > 0)
|
||||
max_distance--
|
||||
var/datum/gas_mixture/target_air = target.return_air()
|
||||
min_observed_pressure = target_air.return_pressure()
|
||||
possible_target = get_step_towards(target,general_direction)
|
||||
if(istype(possible_target, /turf/space))
|
||||
target = possible_target
|
||||
break
|
||||
if(!CanAtmosPass(possible_target))
|
||||
target = possible_target
|
||||
max_distance = 0
|
||||
break
|
||||
var/datum/gas_mixture/possible_target_air = possible_target.return_air()
|
||||
if(possible_target_air.return_pressure() > min_observed_pressure)
|
||||
target = possible_target
|
||||
break
|
||||
target = possible_target
|
||||
if(max_distance)
|
||||
throw_at(target, get_dist(src, target), pressure_difference / 200, null, 0, 0, null)
|
||||
else
|
||||
throw_at(target, pressure_difference / 10, pressure_difference / 200, null, 0, 0, null)
|
||||
last_forced_movement = SSair.times_fired
|
||||
return 1
|
||||
else if(pressure_difference > pressure_resistance)
|
||||
|
||||
Reference in New Issue
Block a user