From d9fd228c68f8ae1a3e9cc341ef81bd0ed036d3cb Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Thu, 7 Jun 2012 10:36:43 -0700 Subject: [PATCH] Some nice fixes for ZAS. --- code/ZAS/Airflow.dm | 8 +++++++- code/ZAS/Connection.dm | 8 ++++---- code/defines/procs/helpers.dm | 4 ++-- code/game/supplyshuttle.dm | 16 ++++------------ 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm index 12cc58496a6..393da224e00 100644 --- a/code/ZAS/Airflow.dm +++ b/code/ZAS/Airflow.dm @@ -59,13 +59,17 @@ vs_control/var 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_delay = 35 //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.\ 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. +mob/var/last_airflow_stun = 0 mob/proc/airflow_stun() + if(last_airflow_stun > world.time - vsc.airflow_stun_cooldown) return 0 if(weakened <= 0) src << "\red The sudden rush of air knocks you over!" weakened = max(weakened,5) + last_airflow_stun = world.time mob/living/silicon/airflow_stun() return @@ -74,6 +78,7 @@ mob/living/carbon/metroid/airflow_stun() return mob/living/carbon/human/airflow_stun() + if(last_airflow_stun > world.time - vsc.airflow_stun_cooldown) return 0 if(buckled) return 0 if(wear_suit) if(wear_suit.flags & SUITSPACE) return 0 @@ -81,6 +86,7 @@ mob/living/carbon/human/airflow_stun() if(shoes.flags & NOSLIP) return 0 if(weakened <= 0) src << "\red The sudden rush of air knocks you over!" weakened = max(weakened,rand(1,2)) + last_airflow_stun = world.time atom/movable/proc/check_airflow_movable(n) diff --git a/code/ZAS/Connection.dm b/code/ZAS/Connection.dm index 97956c44f08..ccf94affec7 100644 --- a/code/ZAS/Connection.dm +++ b/code/ZAS/Connection.dm @@ -105,7 +105,7 @@ connection A.zone.connected_zones -= B.zone if(A.zone.connected_zones && !A.zone.connected_zones.len) A.zone.connected_zones = null - if( zone_B && (!B.zone && zone_B != B.zone) ) + if( zone_B && (!B.zone || zone_B != B.zone) ) if(zone_B in A.zone.connected_zones) if(A.zone.connected_zones[zone_B] > 1) A.zone.connected_zones[zone_B]-- @@ -122,7 +122,7 @@ connection zone_A.connected_zones -= B.zone if(zone_A.connected_zones && !zone_A.connected_zones.len) zone_A.connected_zones = null - if( zone_B && (!B.zone && zone_B != B.zone) ) + if( zone_B && (!B.zone || zone_B != B.zone) ) if(zone_B in zone_A.connected_zones) if(zone_A.connected_zones[zone_B] > 1) zone_A.connected_zones[zone_B]-- @@ -139,7 +139,7 @@ connection B.zone.connected_zones -= A.zone if(B.zone.connected_zones && !B.zone.connected_zones.len) B.zone.connected_zones = null - if( zone_A && (!A.zone && zone_A != A.zone) ) + if( zone_A && (!A.zone || zone_A != A.zone) ) if(zone_A in B.zone.connected_zones) if(B.zone.connected_zones[zone_A] > 1) B.zone.connected_zones[zone_A]-- @@ -156,7 +156,7 @@ connection zone_B.connected_zones -= A.zone if(zone_B.connected_zones && !zone_B.connected_zones.len) zone_B.connected_zones = null - if( zone_A && (!A.zone && zone_A != A.zone) ) + if( zone_A && (!A.zone || zone_A != A.zone) ) if(zone_A in zone_B.connected_zones) if(zone_B.connected_zones[zone_A] > 1) zone_B.connected_zones[zone_A]-- diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm index c9fb95b21fd..5ba10519160 100644 --- a/code/defines/procs/helpers.dm +++ b/code/defines/procs/helpers.dm @@ -1552,13 +1552,13 @@ proc/listclearnulls(list/list) for(var/turf/simulated/T1 in toupdate) for(var/obj/machinery/door/D2 in T1) doors += D2 - air_master.tiles_to_update += T1 + air_master.tiles_to_update |= T1 if(fromupdate.len) for(var/turf/simulated/T2 in fromupdate) for(var/obj/machinery/door/D2 in T2) doors += D2 - air_master.tiles_to_update += T2 + air_master.tiles_to_update |= T2 for(var/obj/O in doors) O:update_nearby_tiles(1) diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index e7e7a06a884..8e173913891 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -69,18 +69,10 @@ var/list/supply_groups = new() name = "\improper Airtight plastic flaps" desc = "Heavy duty, airtight, plastic flaps." - New() //set the turf below the flaps to block air - var/turf/T = get_turf(src.loc) - if(T) - T.blocks_air = 1 - ..() - - Del() //lazy hack to set the turf to allow air to pass if it's a simulated floor - var/turf/T = get_turf(src.loc) - if(T) - if(istype(T, /turf/simulated/floor)) - T.blocks_air = 0 - ..() + CanPass(atom/A, turf/T, height = 0, air_group = 0) + if(!istype(A)) + return 0 + return ..() /area/supplyshuttle name = "Supply Shuttle"