mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-06 00:23:49 +02:00
33 lines
1.2 KiB
Lua
33 lines
1.2 KiB
Lua
-- spawners release biters on death -- by mewmew
|
|
|
|
local event = require 'utils.event'
|
|
local math_random = math.random
|
|
|
|
local biter_building_inhabitants = {
|
|
[1] = {{"small-biter",8,16}},
|
|
[2] = {{"small-biter",12,24}},
|
|
[3] = {{"small-biter",8,16},{"medium-biter",1,2}},
|
|
[4] = {{"small-biter",4,8},{"medium-biter",4,8}},
|
|
[5] = {{"small-biter",3,5},{"medium-biter",8,12}},
|
|
[6] = {{"small-biter",3,5},{"medium-biter",5,7},{"big-biter",1,2}},
|
|
[7] = {{"medium-biter",6,8},{"big-biter",3,5}},
|
|
[8] = {{"medium-biter",2,4},{"big-biter",6,8}},
|
|
[9] = {{"medium-biter",2,3},{"big-biter",7,9}},
|
|
[10] = {{"big-biter",4,8},{"behemoth-biter",3,4}}
|
|
}
|
|
|
|
local function on_entity_died(event)
|
|
if not event.entity.valid then return end
|
|
if event.entity.type ~= "unit-spawner" then return end
|
|
local e = math.ceil(event.entity.force.evolution_factor * 10)
|
|
if e < 1 then e = 1 end
|
|
for _, t in pairs(biter_building_inhabitants[e]) do
|
|
for x = 1, math_random(t[2],t[3]), 1 do
|
|
local p = event.entity.surface.find_non_colliding_position(t[1] , event.entity.position, 6, 1)
|
|
if p then event.entity.surface.create_entity {name=t[1], position=p, force = event.entity.force.name} end
|
|
end
|
|
end
|
|
end
|
|
|
|
event.add(defines.events.on_entity_died, on_entity_died)
|