fix huds not being removed when game does not finish
parent
b9c79ce7e7
commit
02db47ffa6
2
init.lua
2
init.lua
|
@ -94,7 +94,7 @@ dofile(path .. "/blocks.lua")
|
||||||
dofile(manager_path .. "on_load.lua")
|
dofile(manager_path .. "on_load.lua")
|
||||||
dofile(manager_path .. "on_start.lua")
|
dofile(manager_path .. "on_start.lua")
|
||||||
dofile(manager_path .. "on_time_tick.lua")
|
dofile(manager_path .. "on_time_tick.lua")
|
||||||
|
dofile(manager_path .. "on_celebrate.lua")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
arena_lib.register_on_celebration(function(mod_ref, arena, winners)
|
||||||
|
for pl_name,stats in pairs(arena.players) do -- it is a good convention to use "pl_name" in for loops and "p_name" elsewhere
|
||||||
|
if balloon_bop.infohuds[pl_name] then
|
||||||
|
local player = minetest.get_player_by_name(pl_name)
|
||||||
|
if player then
|
||||||
|
-- clear HUDs
|
||||||
|
player:hud_remove(balloon_bop.infohuds[pl_name])
|
||||||
|
for idx,hud_id in ipairs(balloon_bop.numhuds[pl_name]) do
|
||||||
|
player:hud_remove(hud_id)
|
||||||
|
end
|
||||||
|
balloon_bop.infohuds[pl_name] = nil
|
||||||
|
balloon_bop.numhuds[pl_name] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
minetest.chat_send_player(pl_name,"Game Over! Your score is ".. arena.players[pl_name].score .."!")
|
||||||
|
end
|
||||||
|
for _,obj in pairs(minetest.get_objects_inside_radius(arena.balloon_spawner, arena.arena_radius)) do
|
||||||
|
if not( obj:is_player()) and obj:get_luaentity().name == "balloon_bop:balloon" then
|
||||||
|
obj:remove()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
|
@ -69,26 +69,7 @@ arena_lib.on_time_tick("balloon_bop", function(arena)
|
||||||
end
|
end
|
||||||
--handle end of game
|
--handle end of game
|
||||||
if arena.arena_lives == 0 then
|
if arena.arena_lives == 0 then
|
||||||
for pl_name,stats in pairs(arena.players) do -- it is a good convention to use "pl_name" in for loops and "p_name" elsewhere
|
|
||||||
if balloon_bop.infohuds[pl_name] then
|
|
||||||
local player = minetest.get_player_by_name(pl_name)
|
|
||||||
if player then
|
|
||||||
-- clear HUDs
|
|
||||||
player:hud_remove(balloon_bop.infohuds[pl_name])
|
|
||||||
for idx,hud_id in ipairs(balloon_bop.numhuds[pl_name]) do
|
|
||||||
player:hud_remove(hud_id)
|
|
||||||
end
|
|
||||||
balloon_bop.infohuds[pl_name] = nil
|
|
||||||
balloon_bop.numhuds[pl_name] = nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
minetest.chat_send_player(pl_name,"Game Over! Your score is ".. arena.players[pl_name].score .."!")
|
|
||||||
end
|
|
||||||
for _,obj in pairs(minetest.get_objects_inside_radius(arena.balloon_spawner, arena.arena_radius)) do
|
|
||||||
if not( obj:is_player()) and obj:get_luaentity().name == "balloon_bop:balloon" then
|
|
||||||
obj:remove()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- determine if there is a clear winner
|
-- determine if there is a clear winner
|
||||||
local highscore = {[1]="",[2]=0}
|
local highscore = {[1]="",[2]=0}
|
||||||
for pl_name,stats in pairs(arena.players) do
|
for pl_name,stats in pairs(arena.players) do
|
||||||
|
|
Loading…
Reference in New Issue