2017-10-06 02:14:38 +02:00
|
|
|
local worms_per_chunk = 50
|
|
|
|
local small_worm_spawn_distance = 100
|
|
|
|
local medium_worm_spawn_distance = 150
|
|
|
|
local big_worm_spawn_distance = 200
|
|
|
|
|
2018-05-10 01:21:12 +02:00
|
|
|
local worm_names = {"small-worm-turret", "medium-worm-turret", "big-worm-turret"}
|
2017-10-06 02:14:38 +02:00
|
|
|
|
2018-05-10 01:21:12 +02:00
|
|
|
local chance = worms_per_chunk / (32 * 32)
|
2017-10-06 02:14:38 +02:00
|
|
|
|
2018-05-10 01:21:12 +02:00
|
|
|
return function(x, y, world)
|
2018-05-10 21:42:24 +02:00
|
|
|
local distance = math.sqrt(world.x * world.x + world.y * world.y)
|
2017-10-06 02:14:38 +02:00
|
|
|
|
|
|
|
if distance > small_worm_spawn_distance - 32 then
|
|
|
|
local lvl = 1
|
2018-05-10 01:21:12 +02:00
|
|
|
if distance > medium_worm_spawn_distance then
|
|
|
|
lvl = 2
|
|
|
|
end
|
|
|
|
if distance > big_worm_spawn_distance then
|
|
|
|
lvl = 3
|
|
|
|
end
|
|
|
|
if math.random() < chance then
|
|
|
|
local worm_id = math.random(1, lvl)
|
2018-05-10 21:42:24 +02:00
|
|
|
return {name = worm_names[worm_id]}
|
2017-10-06 02:14:38 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|