diff --git a/code/ZAS/Connection.dm b/code/ZAS/Connection.dm index b517aa4e513..41fba731be3 100644 --- a/code/ZAS/Connection.dm +++ b/code/ZAS/Connection.dm @@ -63,6 +63,8 @@ connection B.zone.connected_zones[A.zone] = 1 else B.zone.connected_zones[A.zone]++ + if(A.HasDoor(B) || B.HasDoor(A)) + indirect = 1 else world.log << "Attempted to create connection object for non-zone tiles: [T] -> [O]" del(src) @@ -193,6 +195,8 @@ connection Cleanup() if(!A.CanPass(null, B, 0, 0) || !B.CanPass(null, A, 0, 0)) del src + if(A.HasDoor(B) || B.HasDoor(A)) + indirect = 1 proc/Sanitize() //If the zones change on connected turfs, update it. diff --git a/code/ZAS/FEA_system.dm b/code/ZAS/FEA_system.dm index 4d64c2e6bc4..fcd71dbff51 100644 --- a/code/ZAS/FEA_system.dm +++ b/code/ZAS/FEA_system.dm @@ -107,6 +107,7 @@ datum var/current_cycle = 0 var/update_delay = 5 //How long between check should it try to process atmos again. var/failed_ticks = 0 //How many ticks have runtimed? + var/next_stat_check = 10 /* process() @@ -167,6 +168,12 @@ datum proc/tick() + if(current_cycle >= next_stat_check) + var/zone/z = pick(zones) + var/log_file = file("[time2text(world.timeofday, "statistics/DD-MM-YYYY.txt")]") + log_file << "Zone | \The [get_area(pick(z.contents))] | [z.air.oxygen], [z.air.nitrogen], [z.air.carbon_dioxide], [z.air.toxins] | [z.air.temperature] | [z.air.group_multiplier * z.air.volume]" + next_stat_check = current_cycle + (rand(5,7)*60) + if(tiles_to_update.len > 0) //If there are tiles to update, do so. for(var/turf/simulated/T in tiles_to_update) T.update_air_properties() diff --git a/code/ZAS/Functions.dm b/code/ZAS/Functions.dm index ee1a5f27143..19b8b0af170 100644 --- a/code/ZAS/Functions.dm +++ b/code/ZAS/Functions.dm @@ -126,10 +126,7 @@ proc/ZConnect(turf/A,turf/B) if(C.B == B || C.A == B) return - var/connection/C = new(A,B) - - //Ensure zones separated by doors do not merge. - if(A.HasDoor(B) || B.HasDoor(A)) C.indirect = 1 + new /connection(A,B) /* proc/ZDisconnect(turf/A,turf/B) diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index 3210d70d6ef..cf5fc859d66 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -2,6 +2,8 @@ var/roundExplosions = 1 proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1) if(!epicenter) return + var/log_file = file("[time2text(world.timeofday, "statistics/DD-MM-YYYY.txt")]") + log_file << "Explosion | \The [get_area(epicenter)] | [devastation_range], [heavy_impact_range], [light_impact_range], [flash_range]" spawn(0) if(defer_powernet_rebuild != 2) defer_powernet_rebuild = 1 diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index 6b714b2dd31..4530b9391ea 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -47,6 +47,8 @@ /mob/proc/death(gibbed) timeofdeath = world.time + var/log_file = file("[time2text(world.timeofday, "statistics/DD-MM-YYYY.txt")]") + log_file << "Death | \The [get_area(src)] | [bruteloss], [oxyloss], [toxloss], [fireloss][attack_log && attack_log.len? " | attack_log[attack_log.len]" : ""]" if(client) client.onDeath()