Add support for insta-win levels

This is just for stability so the game doensn't break for poorly-designed levels
master
Wuzzy 2022-01-11 18:22:42 +01:00
parent a6d49a3cb4
commit 8d2ac359d4
1 changed files with 6 additions and 1 deletions

View File

@ -92,7 +92,12 @@ end
function lzr_levels.build_level(level)
local schem = minetest.place_schematic(lzr_globals.LEVEL_POS, minetest.get_modpath("lzr_levels").."/schematics/lzr_levels_level_"..level..".mts", "0", {}, true, "")
if schem then
-- Propagate lasers and check for insta-win
lzr_laser.full_laser_update(lzr_globals.PLAYFIELD_START, lzr_globals.PLAYFIELD_END)
local done = lzr_laser.check_level_won()
if done then
lzr_levels.level_complete()
end
else
minetest.log("error", "[lzr_levels] lzr_levels.build_level failed to build level")
end
@ -150,7 +155,7 @@ end
function lzr_levels.next_level()
local player = get_singleplayer()
current_level = current_level + 1
if current_level > 10 then
if current_level > LAST_LEVEL then
lzr_messages.show_message(player, S("Final level completed!"), 5)
else
lzr_levels.start_level(current_level)