This commit is contained in:
philipmi 2021-03-29 15:04:23 +02:00
commit 16c31aa273
6 changed files with 119 additions and 37 deletions

View file

@ -6,6 +6,16 @@ function ctf_match.register_on_skip_map(func)
table.insert(ctf_match.registered_on_skip_map, func)
end
function skip()
for i = 1, #ctf_match.registered_on_skip_map do
ctf_match.registered_on_skip_map[i]()
end
ctf_match.next()
end
local can_vote_skip = false
local voted_skip = false
local flags_hold = 0
function ctf_match.vote_next(name)
local tcolor = ctf_colors.get_color(ctf.player(name)).css or "#FFFFFFFF"
minetest.chat_send_all(minetest.colorize("#FFAA11", "Vote started by ") ..
@ -22,10 +32,12 @@ function ctf_match.vote_next(name)
if result == "yes" then
minetest.chat_send_all("Vote to skip match passed, " ..
#results.yes .. " to " .. #results.no)
for i = 1, #ctf_match.registered_on_skip_map do
ctf_match.registered_on_skip_map[i]()
can_vote_skip = false
voted_skip = true
if flags_hold <= 0 then
skip()
end
ctf_match.next()
else
minetest.chat_send_all("Vote to skip match failed, " ..
#results.no .. " to " .. #results.yes)
@ -53,9 +65,8 @@ minetest.register_chatcommand("vote", {
local matchskip_time
local matchskip_timer = 0
local can_skip = false
minetest.register_globalstep(function(dtime)
if not can_skip then return end
if not can_vote_skip then return end
matchskip_timer = matchskip_timer + dtime
@ -68,18 +79,25 @@ minetest.register_globalstep(function(dtime)
end
end)
local function prevent_autoskip()
can_skip = false
end
ctf.register_on_new_game(prevent_autoskip)
ctf_flag.register_on_pick_up(prevent_autoskip)
ctf.register_on_new_game(function()
can_vote_skip = false
voted_skip = false
flags_hold = 0
end)
ctf_flag.register_on_pick_up(function()
flags_hold = flags_hold + 1
end)
ctf_flag.register_on_drop(function()
can_skip = true
flags_hold = flags_hold - 1
if voted_skip and flags_hold <= 0 then
minetest.after(5, function()
skip()
end)
end
end)
ctf_match.register_on_build_time_end(function()
can_skip = true
can_vote_skip = true
matchskip_timer = 0
-- Set to initial vote time
matchskip_time = tonumber(minetest.settings:get("ctf_match.auto_skip_delay")) or 50 * 60