1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-10 00:43:27 +02:00
ComfyFactorio/modules/scrap_towny_ffa/pollution.lua
2021-02-06 12:42:10 -08:00

99 lines
3.9 KiB
Lua

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