mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
ZAS fixes.
This commit is contained in:
@@ -50,17 +50,17 @@ atom/movable/RepelAirflowDest(n)
|
||||
|
||||
vs_control/var
|
||||
|
||||
airflow_lightest_pressure = 15
|
||||
airflow_light_pressure = 30
|
||||
airflow_medium_pressure = 45
|
||||
airflow_heavy_pressure = 60
|
||||
airflow_lightest_pressure = 30
|
||||
airflow_light_pressure = 45
|
||||
airflow_medium_pressure = 60
|
||||
airflow_heavy_pressure = 75
|
||||
airflow_heaviest_pressure = 90
|
||||
|
||||
airflow_damage = 0.3
|
||||
airflow_stun = 0.15
|
||||
airflow_speed_decay = 1
|
||||
airflow_delay = 25 //Time in deciseconds before they can be moved by airflow again.
|
||||
airflow_mob_slowdown = 3 //Time in tenths of a second to add as a delay to each movement by a mob.\
|
||||
airflow_delay = 30 //Time in deciseconds before they can be moved by airflow again.
|
||||
airflow_mob_slowdown = 1 //Time in tenths of a second to add as a delay to each movement by a mob.\
|
||||
Only active if they are fighting the pull of the airflow.
|
||||
airflow_stun_cooldown = 10 //How long, in tenths of a second, to wait before stunning them again.
|
||||
|
||||
@@ -390,8 +390,11 @@ mob/living/carbon/human/airflow_hit(atom/A)
|
||||
stunned += round(airflow_speed * vsc.airflow_stun/2)
|
||||
. = ..()
|
||||
|
||||
var/list/airflow_forbidden = list(/obj/structure/ore_box, /mob/aiEye)
|
||||
|
||||
zone/proc/movables()
|
||||
. = list()
|
||||
for(var/turf/T in contents)
|
||||
for(var/atom/A in T)
|
||||
if(!(locate(A) in airflow_forbidden))
|
||||
. += A
|
||||
@@ -101,6 +101,7 @@ datum
|
||||
//Geometry updates lists
|
||||
var/list/turf/simulated/tiles_to_update = list()
|
||||
var/list/turf/simulated/tiles_with_connections = list()
|
||||
var/list/connection/connections_checked = list()
|
||||
// var/list/turf/simulated/groups_to_rebuild = list()
|
||||
|
||||
var/current_cycle = 0
|
||||
@@ -170,6 +171,9 @@ datum
|
||||
for(var/turf/simulated/T in tiles_to_update)
|
||||
T.update_air_properties()
|
||||
tiles_to_update = list()
|
||||
for(var/connection/C in connections_checked)
|
||||
C.CheckPassSanity()
|
||||
connections_checked = list()
|
||||
|
||||
for(var/zone/Z in zones)
|
||||
if(Z.last_update < current_cycle)
|
||||
|
||||
@@ -187,7 +187,7 @@ turf
|
||||
if(air_master.tiles_with_connections["\ref[src]"]) //Check pass sanity of the connections.
|
||||
var/list/connections = air_master.tiles_with_connections["\ref[src]"]
|
||||
for(var/connection/C in connections)
|
||||
C.CheckPassSanity()
|
||||
air_master.connections_checked |= C
|
||||
|
||||
update_zone_properties() //Update self zone and adjacent zones.
|
||||
|
||||
@@ -211,15 +211,18 @@ turf
|
||||
else if(zone)
|
||||
zone.rebuild = 1
|
||||
continue
|
||||
|
||||
else if(!T.CanPass(null, src, 1.5, 1) && !T.CanPass(null, src, 0, 0)) //If I block air, we must look to see if the adjacent turfs need rebuilt.
|
||||
if(T.zone && !T.zone.rebuild)
|
||||
for(var/direction2 in cardinal - direction) //Check all other directions for air that might be connected.
|
||||
var/turf/simulated/NT = get_step(src, direction2)
|
||||
if(NT && NT.zone && NT.zone == T.zone)
|
||||
T.zone.rebuild = 1
|
||||
|
||||
else if((!T.CanPass(null, src, 1.5, 1) && T.CanPass(null, src, 0, 0)) || (!CanPass(null, T, 1.5, 1) && CanPass(null, T, 0, 0)))
|
||||
if(T.zone != zone)
|
||||
ZConnect(src,T)
|
||||
|
||||
else if(zone && !zone.rebuild)
|
||||
for(var/direction2 in cardinal - reverse_direction(direction)) //Check all other directions for air that might be connected.
|
||||
var/turf/simulated/NT = get_step(T, direction2)
|
||||
|
||||
@@ -267,9 +267,9 @@ datum/gas_mixture/proc/zburn(obj/liquid_fuel/liquid)
|
||||
temperature = max( 1700*log(0.4*firelevel + 1.23) , temperature )
|
||||
|
||||
//Consume some gas.
|
||||
var/consumed_gas = min(oxygen,0.0005*firelevel,total_fuel) / fuel_sources
|
||||
var/consumed_gas = min(oxygen,0.005*firelevel,total_fuel) / fuel_sources
|
||||
|
||||
oxygen -= consumed_gas
|
||||
oxygen = max(0,oxygen-consumed_gas)
|
||||
|
||||
toxins = max(0,toxins-consumed_gas)
|
||||
|
||||
|
||||
@@ -117,8 +117,6 @@ proc/ZConnect(turf/A,turf/B)
|
||||
if(!A.zone || !B.zone) return
|
||||
if(A.zone == B.zone) return
|
||||
if(!A.CanPass(0,B,0,0) || !B.CanPass(0,A,0,0)) return
|
||||
if(A.CanPass(null, B, 1.5, 1) && B.CanPass(null, A, 1.5, 1))
|
||||
return ZMerge(A.zone, B.zone)
|
||||
|
||||
//Ensure the connection isn't already made.
|
||||
if(air_master.tiles_with_connections["\ref[A]"])
|
||||
|
||||
@@ -170,8 +170,10 @@
|
||||
..()
|
||||
if(buckled_mob)
|
||||
if(buckled_mob.buckled == src)
|
||||
buckled_mob.loc = src.loc
|
||||
buckled_mob.dir = src.dir
|
||||
buckled_mob.loc = loc
|
||||
buckled_mob.dir = dir
|
||||
else
|
||||
buckled_mob = null
|
||||
|
||||
/obj/structure/stool/bed/chair/Move()
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user