Fixes Boogaloo (#1345)

Re-adds IPC APC feeding
Removes more of the horror that is type paths in text strings when they don't have to be there :ree:
Fix a bunch of lore blurbs
SQL saving is fixededed
Mark-up REGEX now requires whitespace or line ending/starts between tokens. It doesn't grab tokens surrounded by non-whitespace characters.
Updated the server greeting to only updated saved hashes if a user actively clicks on a tab.
C4 now forces old system for itself, due to raisins.
Admin verb to toggle between global default explosion type. One round only. Requires R_DEBUG or R_SERVER, is hideable.
This commit is contained in:
skull132
2016-12-31 04:32:33 +02:00
committed by GitHub
parent e4c62c9e1c
commit 14a0c7bf92
17 changed files with 481 additions and 315 deletions
+20 -3
View File
@@ -16,6 +16,9 @@ var/datum/controller/process/explosives/bomb_processor
work_queue = list()
bomb_processor = src
// Kill it until we have an explosion to run.
disable()
/datum/controller/process/explosives/doWork()
if (!work_queue)
setup() // fix for process failing to re-init after termination
@@ -25,6 +28,10 @@ var/datum/controller/process/explosives/bomb_processor
if (powernet_update_pending && ticks_without_work > 5)
makepowernets()
powernet_update_pending = 0
// All explosions handled, powernet rebuilt.
// We can sleep now.
disable()
return
ticks_without_work = 0
@@ -44,6 +51,7 @@ var/datum/controller/process/explosives/bomb_processor
work_queue -= data
lighting_process.enable()
// Handle a non-recusrive explosion.
/datum/controller/process/explosives/proc/explosion(var/datum/explosiondata/data)
var/turf/epicenter = data.epicenter
var/devastation_range = data.devastation_range
@@ -185,6 +193,7 @@ var/datum/controller/process/explosives/bomb_processor
if(Array)
Array.sense_explosion(x0,y0,z0,devastation_range,heavy_impact_range,light_impact_range,took)
// Handle a recursive explosion.
/datum/controller/process/explosives/proc/explosion_rec(turf/epicenter, power)
if(power <= 0) return
epicenter = get_turf(epicenter)
@@ -228,6 +237,7 @@ var/datum/controller/process/explosives/bomb_processor
explosion_in_progress = 0
// A proc used by recursive explosions. (The actually recursive bit.)
/datum/controller/process/explosives/proc/explosion_spread(turf/s, power, direction)
SCHECK
if (istype(s, /turf/unsimulated))
@@ -251,15 +261,22 @@ var/datum/controller/process/explosives/bomb_processor
T = get_step(s, turn(direction,-90))
explosion_spread(T, spread_power, turn(direction,90))
// Add an explosion to the queue for processing.
/datum/controller/process/explosives/proc/queue(var/datum/explosiondata/data)
if (!data) return
if (!data || !istype(data))
return
work_queue += data
// Wake it up from sleeping if necessary.
if (disabled)
enable()
/datum/controller/process/explosives/statProcess()
..()
stat(null, "[work_queue.len] items in explosion queue")
// The data datum for explosions.
/datum/explosiondata
var/turf/epicenter
var/devastation_range
@@ -269,4 +286,4 @@ var/datum/controller/process/explosives/bomb_processor
var/adminlog
var/z_transfer
var/is_rec
var/rec_pow
var/rec_pow