local r = 1.5 local acid_puddles = { 'acid-splash-fire-spitter-behemoth', 'acid-splash-fire-spitter-big', 'acid-splash-fire-spitter-medium', 'acid-splash-fire-spitter-small', 'acid-splash-fire-worm-behemoth', 'acid-splash-fire-worm-big', 'acid-splash-fire-worm-medium', 'acid-splash-fire-worm-small' } local valid_enemies = { ['small-spitter'] = true, ['medium-spitter'] = true, ['big-spitter'] = true, ['behemoth-spitter'] = true, ['small-worm-turret'] = true, ['medium-worm-turret'] = true, ['big-worm-turret'] = true, ['behemoth-worm-turret'] = true } local function remove_puddles(event) local cause = event.cause if not cause then return true end if not cause.valid then return true end if valid_enemies[cause.name] then return true end end local function on_entity_damaged(event) if not remove_puddles(event) then return end local entity = event.entity if not entity or not entity.valid then return end local position = entity.position for _, puddle in pairs(entity.surface.find_entities_filtered({name = acid_puddles, area = {{position.x - r, position.y - r}, {position.x + r, position.y + r}}})) do puddle.destroy() end end local Event = require 'utils.event' Event.add(defines.events.on_entity_damaged, on_entity_damaged)