Allow levels to not require player seen
This commit is contained in:
parent
05fc564d17
commit
a87ad4eb24
@ -81,6 +81,18 @@ eb_levels.register_level = function(level_def)
|
||||
table.insert(levels, def)
|
||||
end
|
||||
|
||||
eb_levels.player_must_be_seen = function()
|
||||
if not current_level then
|
||||
return false
|
||||
end
|
||||
local level = levels[current_level]
|
||||
if level.player_must_be_seen == false then
|
||||
return false
|
||||
else
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
eb_levels.get_eyeballs_in_current_level = function()
|
||||
if not current_level then
|
||||
return nil
|
||||
@ -277,7 +289,11 @@ eb_levels.start_level = function(level_num, player)
|
||||
end
|
||||
end
|
||||
core.set_timeofday(param.timeofday)
|
||||
eb_eyeballs.activate_eyeball_fail()
|
||||
if param.player_must_be_seen == false then
|
||||
eb_eyeballs.deactivate_eyeball_fail()
|
||||
else
|
||||
eb_eyeballs.activate_eyeball_fail()
|
||||
end
|
||||
local pmeta = param.player:get_meta()
|
||||
pmeta:set_int("eb_levels:current_level", level_num)
|
||||
|
||||
@ -307,6 +323,7 @@ eb_levels.start_level = function(level_num, player)
|
||||
sky=level.sky,
|
||||
cloud_height=level.cloud_height,
|
||||
timeofday=level.timeofday,
|
||||
player_must_be_seen=level.player_must_be_seen,
|
||||
})
|
||||
end
|
||||
|
||||
@ -354,7 +371,7 @@ core.register_globalstep(function(dtime)
|
||||
local footnode = core.get_node(ppos)
|
||||
if core.get_item_group(footnode.name, "exit") == 1 and not eb_teleport.is_teleporting() and eb_teleport.can_teleport(player) then
|
||||
local seen_good, seen_evil = eb_eyeballs.get_seen_counters()
|
||||
if seen_good and seen_good >= 1 and seen_evil == 0 then
|
||||
if (not eb_levels.player_must_be_seen()) or (seen_good and seen_good >= 1 and seen_evil == 0) then
|
||||
exit_timer = exit_timer + EXIT_CHECK_TIME + dtime
|
||||
if exit_timer >= EXIT_TIME then
|
||||
local next_level = current_level + 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user