//TODO: Flash range does nothing currently //NOTE: This has not yet been updated with the lighting deferal stuff. ~Carn //Needs some work anyway. proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1) spawn(0) var/start = world.timeofday epicenter = get_turf(epicenter) if(!epicenter) return if(adminlog) message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z] - JMP)") log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ") playsound(epicenter, 'sound/effects/explosionfar.ogg', 100, 1, round(devastation_range*2,1) ) playsound(epicenter, "explosion", 100, 1, round(devastation_range,1) ) tension_master.explosion() if(defer_powernet_rebuild != 2) defer_powernet_rebuild = 1 if(heavy_impact_range > 1) var/datum/effect/system/explosion/E = new/datum/effect/system/explosion() E.set_up(epicenter) E.start() var/x = epicenter.x var/y = epicenter.y var/z = epicenter.z var/counter = 0 if(devastation_range > 0) counter += explosion_turf(x,y,z,1) else devastation_range = 0 if(heavy_impact_range > 0) counter += explosion_turf(x,y,z,2) else heavy_impact_range = 0 if(light_impact_range > 0) counter += explosion_turf(x,y,z,3) else return //Diamond 'splosions (looks more round than square version) for(var/i=0, i