1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2024-12-28 23:06:38 +02:00
ComfyFactorio/maps/nightfall_map_intro.lua
2021-03-24 20:14:55 +01:00

78 lines
2.4 KiB
Lua

--luacheck: ignore
local event = require 'utils.event'
local main_caption = ' --Nightfall-- '
local sub_caption = '*can you make it through*'
local info =
[[
They come out at night, trying to nom your rocket silo.
Fend them off as long as possible!
There seem to be shipwrecks of unfortunate explorers all over this place.
It might be worth scavenging a few.
Wreck loot quality increases with distance.
]]
local function create_map_intro(player)
if player.gui.left['map_intro_frame'] then
player.gui.left['map_intro_frame'].destroy()
end
local frame = player.gui.left.add {type = 'frame', name = 'map_intro_frame', direction = 'vertical'}
local t = frame.add {type = 'table', column_count = 1}
local tt = t.add {type = 'table', column_count = 3}
local l = tt.add {type = 'label', caption = main_caption}
l.style.font = 'default-listbox'
l.style.font_color = {r = 0.85, g = 0.0, b = 0.25}
l.style.top_padding = 6
l.style.bottom_padding = 6
local l = tt.add {type = 'label', caption = sub_caption}
l.style.font = 'default'
l.style.font_color = {r = 0.1, g = 0.65, b = 0.1}
l.style.minimal_width = 280
local b = tt.add {type = 'button', caption = 'X', name = 'close_map_intro_frame', align = 'right'}
b.style.font = 'default'
b.style.minimal_height = 30
b.style.minimal_width = 30
b.style.top_padding = 2
b.style.left_padding = 4
b.style.right_padding = 4
b.style.bottom_padding = 2
local tt = t.add {type = 'table', column_count = 1}
local frame = t.add {type = 'frame'}
local l = frame.add {type = 'label', caption = info}
l.style.single_line = false
l.style.font_color = {r = 0.95, g = 0.95, b = 0.95}
end
local function on_player_joined_game(event)
local player = game.players[event.player_index]
if player.online_time < 36000 then
create_map_intro(player)
end
end
local function on_gui_click(event)
if not event then
return
end
if not event.element then
return
end
if not event.element.valid then
return
end
local player = game.players[event.element.player_index]
if event.element.name == 'close_map_intro_frame' then
player.gui.left['map_intro_frame'].destroy()
end
end
event.add(defines.events.on_player_joined_game, on_player_joined_game)
event.add(defines.events.on_gui_click, on_gui_click)