mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2024-12-28 23:06:38 +02:00
56 lines
1.6 KiB
Lua
56 lines
1.6 KiB
Lua
--vanilla with wave_defense
|
|
|
|
local WD = require 'modules.wave_defense.main'
|
|
local Map = require 'modules.map_info'
|
|
|
|
local starting_items = {['pistol'] = 1, ['firearm-magazine'] = 16, ['iron-plate'] = 16, ['iron-gear-wheel'] = 8, ['raw-fish'] = 3}
|
|
|
|
local function set_difficulty()
|
|
local wave_defense_table = WD.get_table()
|
|
--20 Players for maximum difficulty
|
|
wave_defense_table.wave_interval = 7200 - #game.connected_players * 270
|
|
if wave_defense_table.wave_interval < 1800 then
|
|
wave_defense_table.wave_interval = 1800
|
|
end
|
|
end
|
|
|
|
local function on_player_joined_game(event)
|
|
set_difficulty()
|
|
|
|
local player = game.players[event.player_index]
|
|
if player.online_time == 0 then
|
|
for item, amount in pairs(starting_items) do
|
|
player.insert({name = item, count = amount})
|
|
end
|
|
end
|
|
end
|
|
|
|
local function on_player_left_game()
|
|
set_difficulty()
|
|
end
|
|
|
|
local function on_init()
|
|
local T = Map.Pop_info()
|
|
T.main_caption = 'Wave Defense'
|
|
T.sub_caption = '~~~~~~'
|
|
T.text =
|
|
table.concat(
|
|
{
|
|
'Survive\n',
|
|
'as\n',
|
|
'long\n',
|
|
'as\n',
|
|
'possible.\n'
|
|
}
|
|
)
|
|
T.main_caption_color = {r = 150, g = 0, b = 150}
|
|
T.sub_caption_color = {r = 100, g = 150, b = 0}
|
|
game.surfaces[1].request_to_generate_chunks({0, 0}, 16)
|
|
game.surfaces[1].force_generate_chunk_requests()
|
|
end
|
|
|
|
local event = require 'utils.event'
|
|
event.on_init(on_init)
|
|
event.add(defines.events.on_player_left_game, on_player_left_game)
|
|
event.add(defines.events.on_player_joined_game, on_player_joined_game)
|