local Public = {} local math_random = math.random local Table = require 'modules.scrap_towny_ffa.table' local Scrap = require 'modules.scrap_towny_ffa.scrap' local pollution_index = { ['small-biter'] = {min = 0.1, max = 0.1}, ['medium-biter'] = {min = 0.1, max = 0.2}, ['big-biter'] = {min = 0.1, max = 0.3}, ['behemoth-biter'] = {min = 0.1, max = 0.4}, ['small-spitter'] = {min = 0.1, max = 0.1}, ['medium-spitter'] = {min = 0.1, max = 0.2}, ['big-spitter'] = {min = 0.1, max = 0.3}, ['behemoth-spitter'] = {min = 0.2, max = 0.4}, ['small-worm-turret'] = {min = 0.1, max = 0.1}, ['medium-worm-turret'] = {min = 0.1, max = 0.2}, ['big-worm-turret'] = {min = 0.1, max = 0.3}, ['behemoth-worm-turret'] = {min = 0.2, max = 0.4}, ['biter-spawner'] = {min = 0.5, max = 2.5}, ['spitter-spawner'] = {min = 0.5, max = 2.5}, ['mineable-wreckage'] = {min = 0.1, max = 0.1}, ['small-ship-wreck'] = {min = 0.1, max = 0.1}, ['medium-ship-wreck'] = {min = 0.1, max = 0.1}, ['crash-site-spaceship-wreck-small-1'] = {min = 0.1, max = 0.1}, ['crash-site-spaceship-wreck-small-2'] = {min = 0.1, max = 0.1}, ['crash-site-spaceship-wreck-small-3'] = {min = 0.1, max = 0.1}, ['crash-site-spaceship-wreck-small-4'] = {min = 0.1, max = 0.1}, ['crash-site-spaceship-wreck-small-5'] = {min = 0.1, max = 0.1}, ['crash-site-spaceship-wreck-small-6'] = {min = 0.1, max = 0.1}, ['big-ship-wreck-1'] = {min = 0.2, max = 0.4}, ['big-ship-wreck-2'] = {min = 0.2, max = 0.4}, ['big-ship-wreck-3'] = {min = 0.2, max = 0.4}, ['crash-site-chest-1'] = {min = 0.1, max = 0.2}, ['crash-site-chest-2'] = {min = 0.1, max = 0.2}, ['crash-site-spaceship-wreck-medium-1'] = {min = 0.1, max = 0.2}, ['crash-site-spaceship-wreck-medium-2'] = {min = 0.1, max = 0.2}, ['crash-site-spaceship-wreck-medium-3'] = {min = 0.1, max = 0.2}, ['crash-site-spaceship-wreck-big-1'] = {min = 0.2, max = 0.4}, ['crash-site-spaceship-wreck-big-2'] = {min = 0.2, max = 0.4}, ['crash-site-spaceship'] = {min = 0.5, max = 2.5}, ['explosion'] = {min = 0.1, max = 0.1}, ['big-explosion'] = {min = 0.2, max = 0.2}, ['big-artillery-explosion'] = {min = 0.5, max = 0.5}, ['market'] = {min = 10, max = 50} } function Public.market_scent() local ffatable = Table.get_table() local town_centers = ffatable.town_centers if town_centers == nil then return end for _, town_center in pairs(town_centers) do local market = town_center.market local pollution = pollution_index['market'] local amount = math_random(pollution.min, pollution.max) market.surface.pollute(market.position, amount) end end function Public.explosion(position, surface, animation) local pollution = pollution_index[animation] if pollution == nil then return end local amount = math_random(pollution.min, pollution.max) surface.pollute(position, amount) end local function on_player_mined_entity(event) local entity = event.entity if Scrap.is_scrap(entity) == true then local pollution = pollution_index[entity.name] local amount = math_random(pollution.min, pollution.max) entity.surface.pollute(entity.position, amount) end end local function on_entity_damaged(event) local entity = event.entity if not entity.valid then return end local pollution = pollution_index[entity.name] if pollution == nil then return end local amount = math_random(pollution.min, pollution.max) entity.surface.pollute(entity.position, amount) end local function on_entity_died(event) local entity = event.entity if not entity.valid then return end local pollution = pollution_index[entity.name] if pollution == nil then return end local amount = math_random(pollution.min, pollution.max) * 10 entity.surface.pollute(entity.position, amount) end local Event = require 'utils.event' Event.add(defines.events.on_player_mined_entity, on_player_mined_entity) Event.add(defines.events.on_entity_damaged, on_entity_damaged) Event.add(defines.events.on_entity_died, on_entity_died) return Public