1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-02-01 13:08:05 +02:00
This commit is contained in:
MewMew 2019-11-03 17:46:18 +01:00
parent 98c166ed82
commit aa5f310174
2 changed files with 136 additions and 0 deletions

View File

@ -0,0 +1,85 @@
local unit_raffle = require "maps.biter_hatchery.raffle_tables"
local math_random = math.random
local function spawn_units(belt, food_item, removed_item_count)
local count = unit_raffle[food_item][2]
local raffle = unit_raffle[food_item][1]
for _ = 1, count, 1 do
belt.surface.create_entity({name = raffle[math_random(1, #raffle)], position = belt.position, force = belt.force})
end
end
local function get_belts(spawner)
local belts = spawner.surface.find_entities_filtered({
type = "transport-belt",
area = {{spawner.position.x - 5, spawner.position.y - 3},{spawner.position.x + 4, spawner.position.y + 3}},
force = spawner.force,
})
return belts
end
local function eat_food_from_belt(belt)
for i = 1, 2, 1 do
local line = belt.get_transport_line(i)
for food_item, raffle in pairs(unit_raffle) do
local removed_item_count = line.remove_item({name = food_item, count = 8})
if removed_item_count > 0 then
spawn_units(belt, food_item, removed_item_count)
end
end
end
end
local function nom()
local surface = game.surfaces[1]
for key, force in pairs(global.map_forces) do
local belts = get_belts(force.hatchery)
for _, belt in pairs(belts) do
eat_food_from_belt(belt)
end
end
end
local function on_player_joined_game(event)
local player = game.players[event.player_index]
player.force = game.forces.east
end
local tick_tasks = {
[0] = nom,
}
local function tick()
local t = game.tick % 60
if tick_tasks[t] then tick_tasks[t]() end
end
local function on_init()
global.map_forces = {
["west"] = {},
["east"] = {},
}
for key, _ in pairs(global.map_forces) do game.create_force(key) end
local surface = game.surfaces[1]
game.forces.west.set_spawn_position({-64, 0}, game.surfaces[1])
game.forces.east.set_spawn_position({64, 0}, game.surfaces[1])
unit_spawners = {}
local e = game.surfaces[1].create_entity({name = "biter-spawner", position = {-64, 0}, force = "west"})
e.active = false
global.map_forces.west.hatchery = e
global.map_forces.east.target = e
local e = game.surfaces[1].create_entity({name = "biter-spawner", position = {64, 0}, force = "east"})
e.active = false
global.map_forces.east.hatchery = e
global.map_forces.west.target = e
end
local event = require 'utils.event'
event.on_init(on_init)
event.on_nth_tick(60, tick)
event.add(defines.events.on_player_joined_game, on_player_joined_game)

View File

@ -0,0 +1,51 @@
local raffle = {
["automation-science-pack"] = {{}, 1},
["logistic-science-pack"] = {{}, 2},
["military-science-pack"] = {{}, 3},
["chemical-science-pack"] = {{}, 4},
["production-science-pack"] = {{}, 5},
["utility-science-pack"] = {{}, 6},
["space-science-pack"] = {{}, 7},
}
local t = raffle["automation-science-pack"][1]
for _ = 1, 4, 1 do table.insert(t, "small-biter") end
for _ = 1, 1, 1 do table.insert(t, "small-spitter") end
local t = raffle["logistic-science-pack"][1]
for _ = 1, 32, 1 do table.insert(t, "small-biter") end
for _ = 1, 8, 1 do table.insert(t, "small-spitter") end
for _ = 1, 4, 1 do table.insert(t, "medium-biter") end
for _ = 1, 1, 1 do table.insert(t, "medium-spitter") end
local t = raffle["military-science-pack"][1]
for _ = 1, 8, 1 do table.insert(t, "small-biter") end
for _ = 1, 2, 1 do table.insert(t, "small-spitter") end
for _ = 1, 16, 1 do table.insert(t, "medium-biter") end
for _ = 1, 4, 1 do table.insert(t, "medium-spitter") end
for _ = 1, 4, 1 do table.insert(t, "big-biter") end
for _ = 1, 1, 1 do table.insert(t, "big-spitter") end
local t = raffle["chemical-science-pack"][1]
for _ = 1, 12, 1 do table.insert(t, "medium-biter") end
for _ = 1, 3, 1 do table.insert(t, "medium-spitter") end
for _ = 1, 4, 1 do table.insert(t, "big-biter") end
for _ = 1, 1, 1 do table.insert(t, "big-spitter") end
local t = raffle["production-science-pack"][1]
for _ = 1, 4, 1 do table.insert(t, "medium-biter") end
for _ = 1, 1, 1 do table.insert(t, "medium-spitter") end
for _ = 1, 12, 1 do table.insert(t, "big-biter") end
for _ = 1, 3, 1 do table.insert(t, "big-spitter") end
local t = raffle["utility-science-pack"][1]
for _ = 1, 32, 1 do table.insert(t, "big-biter") end
for _ = 1, 8, 1 do table.insert(t, "big-spitter") end
for _ = 1, 4, 1 do table.insert(t, "behemoth-biter") end
for _ = 1, 1, 1 do table.insert(t, "behemoth-spitter") end
local t = raffle["space-science-pack"][1]
for _ = 1, 4, 1 do table.insert(t, "behemoth-biter") end
for _ = 1, 1, 1 do table.insert(t, "behemoth-spitter") end
return raffle