76 lines
2.4 KiB
Lua
76 lines
2.4 KiB
Lua
--- Draws the end screen window.
|
|
--- @within EndWindow
|
|
function EndWindow.draw()
|
|
cls(Config.colors.black)
|
|
|
|
if Context._end.state == "choice" then
|
|
local lines = {
|
|
"This is not a workplace.",
|
|
"This is a cycle.",
|
|
"And if it is a cycle...",
|
|
"it can be broken."
|
|
}
|
|
|
|
local y = 40
|
|
for _, line in ipairs(lines) do
|
|
Print.text_center(line, Config.screen.width / 2, y, Config.colors.white)
|
|
y = y + 10
|
|
end
|
|
|
|
y = y + 20
|
|
local yes_color = Context._end.selection == 1 and Config.colors.light_blue or Config.colors.white
|
|
local no_color = Context._end.selection == 2 and Config.colors.light_blue or Config.colors.white
|
|
|
|
local yes_text = (Context._end.selection == 1 and "> YES" or " YES")
|
|
local no_text = (Context._end.selection == 2 and "> NO" or " NO")
|
|
|
|
local centerX = Config.screen.width / 2
|
|
Print.text(yes_text, centerX - 40, y, yes_color)
|
|
Print.text(no_text, centerX + 10, y, no_color)
|
|
elseif Context._end.state == "ending" then
|
|
Print.text_center("Game over -- good ending.", Config.screen.width / 2, 50, Config.colors.light_blue)
|
|
Print.text_center("Congratulations!", Config.screen.width / 2, 70, Config.colors.white)
|
|
Print.text_center("Press Z to return to menu", Config.screen.width / 2, 110, Config.colors.light_grey)
|
|
end
|
|
end
|
|
|
|
--- Updates the end screen logic.
|
|
--- @within EndWindow
|
|
function EndWindow.update()
|
|
if Context._end.state == "choice" then
|
|
if Input.left() or Input.up() then
|
|
if Context._end.selection == 2 then
|
|
Audio.sfx_beep()
|
|
Context._end.selection = 1
|
|
end
|
|
elseif Input.right() or Input.down() then
|
|
if Context._end.selection == 1 then
|
|
Audio.sfx_beep()
|
|
Context._end.selection = 2
|
|
end
|
|
end
|
|
|
|
if Input.menu_confirm() then
|
|
Audio.sfx_select()
|
|
if Context._end.selection == 1 then
|
|
Context._end.state = "ending"
|
|
else
|
|
-- NO: increment day and go home
|
|
Day.increase()
|
|
Context.game.current_screen = "home"
|
|
Window.set_current("game")
|
|
-- Initialize home screen
|
|
local home_screen = Screen.get_by_id("home")
|
|
if home_screen and home_screen.init then
|
|
home_screen.init()
|
|
end
|
|
end
|
|
end
|
|
elseif Context._end.state == "ending" then
|
|
if Input.menu_confirm() then
|
|
Window.set_current("menu")
|
|
MenuWindow.refresh_menu_items()
|
|
end
|
|
end
|
|
end
|