mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Some nice fixes for ZAS.
This commit is contained in:
@@ -59,13 +59,17 @@ vs_control/var
|
|||||||
airflow_damage = 0.3
|
airflow_damage = 0.3
|
||||||
airflow_stun = 0.15
|
airflow_stun = 0.15
|
||||||
airflow_speed_decay = 1
|
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.\
|
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.
|
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()
|
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!"
|
if(weakened <= 0) src << "\red The sudden rush of air knocks you over!"
|
||||||
weakened = max(weakened,5)
|
weakened = max(weakened,5)
|
||||||
|
last_airflow_stun = world.time
|
||||||
|
|
||||||
mob/living/silicon/airflow_stun()
|
mob/living/silicon/airflow_stun()
|
||||||
return
|
return
|
||||||
@@ -74,6 +78,7 @@ mob/living/carbon/metroid/airflow_stun()
|
|||||||
return
|
return
|
||||||
|
|
||||||
mob/living/carbon/human/airflow_stun()
|
mob/living/carbon/human/airflow_stun()
|
||||||
|
if(last_airflow_stun > world.time - vsc.airflow_stun_cooldown) return 0
|
||||||
if(buckled) return 0
|
if(buckled) return 0
|
||||||
if(wear_suit)
|
if(wear_suit)
|
||||||
if(wear_suit.flags & SUITSPACE) return 0
|
if(wear_suit.flags & SUITSPACE) return 0
|
||||||
@@ -81,6 +86,7 @@ mob/living/carbon/human/airflow_stun()
|
|||||||
if(shoes.flags & NOSLIP) return 0
|
if(shoes.flags & NOSLIP) return 0
|
||||||
if(weakened <= 0) src << "\red The sudden rush of air knocks you over!"
|
if(weakened <= 0) src << "\red The sudden rush of air knocks you over!"
|
||||||
weakened = max(weakened,rand(1,2))
|
weakened = max(weakened,rand(1,2))
|
||||||
|
last_airflow_stun = world.time
|
||||||
|
|
||||||
atom/movable/proc/check_airflow_movable(n)
|
atom/movable/proc/check_airflow_movable(n)
|
||||||
|
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ connection
|
|||||||
A.zone.connected_zones -= B.zone
|
A.zone.connected_zones -= B.zone
|
||||||
if(A.zone.connected_zones && !A.zone.connected_zones.len)
|
if(A.zone.connected_zones && !A.zone.connected_zones.len)
|
||||||
A.zone.connected_zones = null
|
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(zone_B in A.zone.connected_zones)
|
||||||
if(A.zone.connected_zones[zone_B] > 1)
|
if(A.zone.connected_zones[zone_B] > 1)
|
||||||
A.zone.connected_zones[zone_B]--
|
A.zone.connected_zones[zone_B]--
|
||||||
@@ -122,7 +122,7 @@ connection
|
|||||||
zone_A.connected_zones -= B.zone
|
zone_A.connected_zones -= B.zone
|
||||||
if(zone_A.connected_zones && !zone_A.connected_zones.len)
|
if(zone_A.connected_zones && !zone_A.connected_zones.len)
|
||||||
zone_A.connected_zones = null
|
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_B in zone_A.connected_zones)
|
||||||
if(zone_A.connected_zones[zone_B] > 1)
|
if(zone_A.connected_zones[zone_B] > 1)
|
||||||
zone_A.connected_zones[zone_B]--
|
zone_A.connected_zones[zone_B]--
|
||||||
@@ -139,7 +139,7 @@ connection
|
|||||||
B.zone.connected_zones -= A.zone
|
B.zone.connected_zones -= A.zone
|
||||||
if(B.zone.connected_zones && !B.zone.connected_zones.len)
|
if(B.zone.connected_zones && !B.zone.connected_zones.len)
|
||||||
B.zone.connected_zones = null
|
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(zone_A in B.zone.connected_zones)
|
||||||
if(B.zone.connected_zones[zone_A] > 1)
|
if(B.zone.connected_zones[zone_A] > 1)
|
||||||
B.zone.connected_zones[zone_A]--
|
B.zone.connected_zones[zone_A]--
|
||||||
@@ -156,7 +156,7 @@ connection
|
|||||||
zone_B.connected_zones -= A.zone
|
zone_B.connected_zones -= A.zone
|
||||||
if(zone_B.connected_zones && !zone_B.connected_zones.len)
|
if(zone_B.connected_zones && !zone_B.connected_zones.len)
|
||||||
zone_B.connected_zones = null
|
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_A in zone_B.connected_zones)
|
||||||
if(zone_B.connected_zones[zone_A] > 1)
|
if(zone_B.connected_zones[zone_A] > 1)
|
||||||
zone_B.connected_zones[zone_A]--
|
zone_B.connected_zones[zone_A]--
|
||||||
|
|||||||
@@ -1552,13 +1552,13 @@ proc/listclearnulls(list/list)
|
|||||||
for(var/turf/simulated/T1 in toupdate)
|
for(var/turf/simulated/T1 in toupdate)
|
||||||
for(var/obj/machinery/door/D2 in T1)
|
for(var/obj/machinery/door/D2 in T1)
|
||||||
doors += D2
|
doors += D2
|
||||||
air_master.tiles_to_update += T1
|
air_master.tiles_to_update |= T1
|
||||||
|
|
||||||
if(fromupdate.len)
|
if(fromupdate.len)
|
||||||
for(var/turf/simulated/T2 in fromupdate)
|
for(var/turf/simulated/T2 in fromupdate)
|
||||||
for(var/obj/machinery/door/D2 in T2)
|
for(var/obj/machinery/door/D2 in T2)
|
||||||
doors += D2
|
doors += D2
|
||||||
air_master.tiles_to_update += T2
|
air_master.tiles_to_update |= T2
|
||||||
|
|
||||||
for(var/obj/O in doors)
|
for(var/obj/O in doors)
|
||||||
O:update_nearby_tiles(1)
|
O:update_nearby_tiles(1)
|
||||||
|
|||||||
@@ -69,18 +69,10 @@ var/list/supply_groups = new()
|
|||||||
name = "\improper Airtight plastic flaps"
|
name = "\improper Airtight plastic flaps"
|
||||||
desc = "Heavy duty, airtight, plastic flaps."
|
desc = "Heavy duty, airtight, plastic flaps."
|
||||||
|
|
||||||
New() //set the turf below the flaps to block air
|
CanPass(atom/A, turf/T, height = 0, air_group = 0)
|
||||||
var/turf/T = get_turf(src.loc)
|
if(!istype(A))
|
||||||
if(T)
|
return 0
|
||||||
T.blocks_air = 1
|
return ..()
|
||||||
..()
|
|
||||||
|
|
||||||
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
|
|
||||||
..()
|
|
||||||
|
|
||||||
/area/supplyshuttle
|
/area/supplyshuttle
|
||||||
name = "Supply Shuttle"
|
name = "Supply Shuttle"
|
||||||
|
|||||||
Reference in New Issue
Block a user