local ____lualib = require("lualib_bundle")
local __TS__New = ____lualib.__TS__New
local ____exports = {}
local ____storyteller = require("code.engine.storyteller")
local ST = ____storyteller.ST
local STContainer = ____storyteller.STContainer
local STHitbox = ____storyteller.STHitbox
local STRectangle = ____storyteller.STRectangle
local STText = ____storyteller.STText
local ____global = require("code.global")
local sourceClear = ____global.sourceClear
local sourceReset = ____global.sourceReset
local world = ____global.world
local ____launcher = require("code.screens.launcher")
local mouseButtonMenu = ____launcher.mouseButtonMenu
local function textGen()
    return { header = "(确定要退出吗?)\n{color=0xff3f3f}(本世界未保存的数据\n将会丢失。)", button1 = "继续游玩", button2 =
    "退出游戏" }
end
local function acquit(assets, atlas, batch, ____debug, ____bindingPattern0)
    local screen
    screen = ____bindingPattern0.screen
    local text = textGen()
    local state = { acquitted = false, debug = false }
    return {
        text = text,
        state = state,
        handler = function(self, result)
            if result == "restart" or not love.window.hasFocus() or world:check() == 0 or state.acquitted then
                return false
            end
            local ____opt_0 = atlas.keybinds.cancel
            if ____opt_0 ~= nil then
                ____opt_0()
            end
            state.acquitted = true
            sourceClear()
            if ____debug.canActivate then
                state.debug = true
                ____debug.canActivate = false
            end
            local wrapper = __TS__New(
                STContainer,
                {
                    alpha = 0.92,
                    priority = 2000000,
                    children = {
                        __TS__New(STRectangle, {
                            alpha = 0.5,
                            anchor = 0.5,
                            size = { x = 240, y = 180 },
                            color = 0,
                            priority = -3
                        }),
                        __TS__New(STRectangle, { anchor = 0.5, size = { x = 180, y = 90 }, color = 0, priority = -2 }),
                        __TS__New(STContainer, { priority = -1 }):addDrawer(function(self)
                            love.graphics.setLineWidth(1 / 3)
                            love.graphics.rectangle(
                                "line",
                                180 / -2 + 1,
                                90 / -2 + 1,
                                180 - 2,
                                90 - 2
                            )
                        end)
                    }
                }
            ):addDrawer(batch.drawer)
            screen:attach(wrapper)
            local ____self_2 = mouseButtonMenu(
                wrapper,
                {
                    main = ST:populate(
                        3,
                        function(i)
                            local content = ({ text.header, text.button1, text.button2 })[i + 1]
                            local metadata
                            metadata = {
                                disabled = i == 0,
                                action = function(____, controller)
                                    repeat
                                        local ____switch12 = i
                                        local ____cond12 = ____switch12 == 1
                                        if ____cond12 then
                                            controller["goto"](controller, nil)
                                            metadata.disabled = true
                                            state.acquitted = false
                                            break
                                        end
                                        ____cond12 = ____cond12 or ____switch12 == 2
                                        if ____cond12 then
                                            love.event.quit()
                                            break
                                        end
                                    until true
                                end
                            }
                            local position = 0.5
                            return __TS__New(
                                STHitbox,
                                {
                                    anchor = 0.5,
                                    metadata = metadata,
                                    position = {
                                        x = (i == 0 and 0 or ST:spread(45, i - 1, 2)) - position,
                                        y = (i == 0 and -8 or 24) - position
                                    },
                                    size = i == 0 and 0 or assets["f$fives"]:compute(content),
                                    children = { __TS__New(STText, {
                                        anchor = 0.5,
                                        justify = i == 0 and 0.5 or nil,
                                        font = i == 0 and assets["f$helloplayer"] or assets["f$fives"],
                                        position = position,
                                        content = content
                                    }) }
                                }
                            )
                        end
                    )
                },
                "main"
            )
            ____self_2["then"](
                ____self_2,
                function()
                    screen:detach(wrapper)
                    if state.debug then
                        ____debug.canActivate = true
                    end
                    sourceReset()
                end
            )
            return true
        end
    }
end
____exports.default = acquit
return ____exports