Added new menu to start at ASCENSION N when in test_mode.
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
This commit is contained in:
65
inc/init/init.context_debug.lua
Normal file
65
inc/init/init.context_debug.lua
Normal file
@@ -0,0 +1,65 @@
|
||||
-- Debug helper: start the game at a specific ascension level.
|
||||
-- Set enabled = true and asc_level = 0..Ascension.get_max_level() before launching.
|
||||
ContextDebug = {
|
||||
enabled = false,
|
||||
asc_level = 0,
|
||||
}
|
||||
|
||||
local _level_overrides = {
|
||||
[0] = {
|
||||
day_count = 1,
|
||||
home_norman_visible = true,
|
||||
have_been_to_office = false,
|
||||
have_done_work_today = false,
|
||||
have_met_sumphore = false,
|
||||
},
|
||||
}
|
||||
for i = 1, Ascension.get_max_level() do
|
||||
_level_overrides[i] = {
|
||||
day_count = i + 3,
|
||||
home_norman_visible = true,
|
||||
have_been_to_office = false,
|
||||
have_done_work_today = false,
|
||||
have_met_sumphore = true,
|
||||
}
|
||||
end
|
||||
|
||||
--- Returns Context.initial_data() overridden for the given ascension level.
|
||||
--- @within Context
|
||||
--- @param level number Target ascension level (0..Ascension.get_max_level()).
|
||||
--- @return table Debug-patched initial context data.
|
||||
function Context.initial_data_debug_asc(level)
|
||||
local data = Context.initial_data()
|
||||
data.test_mode = true
|
||||
data.game_in_progress = true
|
||||
data.ascension = { level = level }
|
||||
local overrides = _level_overrides[level] or _level_overrides[0]
|
||||
for k, v in pairs(overrides) do
|
||||
data[k] = v
|
||||
end
|
||||
return data
|
||||
end
|
||||
|
||||
for i = 0, Ascension.get_max_level() do
|
||||
Context["initial_data_debug_asc_" .. i] = function()
|
||||
return Context.initial_data_debug_asc(i)
|
||||
end
|
||||
end
|
||||
|
||||
--- Starts the game at the given ascension level (defaults to ContextDebug.asc_level).
|
||||
--- Wire this to a key or call it directly; do not use Context.new_game() when debugging.
|
||||
--- @within Context
|
||||
--- @param level number|nil Target ascension level.
|
||||
function Context.new_game_debug(level)
|
||||
ContextDebug.enabled = true
|
||||
ContextDebug.asc_level = level or ContextDebug.asc_level
|
||||
|
||||
local data = Context["initial_data_debug_asc_" .. ContextDebug.asc_level]()
|
||||
for k in pairs(Context) do
|
||||
if type(Context[k]) ~= "function" then Context[k] = nil end
|
||||
end
|
||||
for k, v in pairs(data) do Context[k] = v end
|
||||
|
||||
MenuWindow.refresh_menu_items()
|
||||
Screen.get_by_id(Context.game.current_screen).init()
|
||||
end
|
||||
Reference in New Issue
Block a user