add and finalize singleplayer leaderboards and multiplayer scoreboards
parent
8e507f453a
commit
c8c67658dc
|
@ -1,9 +1,11 @@
|
|||
wormball.version = "02.17.2021.1"
|
||||
wormball.version = "03.11.2021.1"
|
||||
|
||||
|
||||
wormball.player_texture_save = {}
|
||||
|
||||
|
||||
|
||||
wormball.storage = minetest.get_mod_storage()
|
||||
--lookup tables
|
||||
|
||||
|
||||
|
|
17
init.lua
17
init.lua
|
@ -1,8 +1,8 @@
|
|||
wormball = {}
|
||||
wormball.HUD = {}
|
||||
dofile(minetest.get_modpath("wormball") .. "/globals.lua")
|
||||
wormball.storage = minetest.get_mod_storage()
|
||||
wormball.arenas = {}
|
||||
|
||||
|
||||
|
||||
|
||||
arena_lib.register_minigame("wormball", {
|
||||
|
@ -58,6 +58,7 @@ wormball.arenas = {}
|
|||
dots = {},
|
||||
num_players = 0,
|
||||
time_to_next_elim = 60,
|
||||
elims = 0,
|
||||
|
||||
},
|
||||
initial_time = 300,
|
||||
|
@ -90,3 +91,15 @@ dofile(minetest.get_modpath("wormball") .. "/privs.lua")
|
|||
dofile(minetest.get_modpath("wormball") .. "/minigame_manager.lua")
|
||||
|
||||
|
||||
if arena_lib.mods and arena_lib.mods["wormball"] and arena_lib.mods["wormball"].arenas and # arena_lib.mods["wormball"].arenas > 0 then
|
||||
for arena_name, arena_stats in pairs(arena_lib.mods["wormball"].arenas) do
|
||||
if wormball.storage:get_string(arena_name .. "_highscores") then
|
||||
local wormball_highscores = wormball.storage:get_string(arena_name .. "_highscores")
|
||||
local leaderboard = {}
|
||||
if wormball_highscores then leaderboard = minetest.deserialize( wormball_highscores ) end
|
||||
arena_lib.mods["wormball"].arenas.singleplayer_leaderboard = leaderboard
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -240,8 +240,12 @@ arena_lib.on_celebration('wormball', function(arena, winner_name)
|
|||
|
||||
arena_lib.HUD_send_msg_all("title", arena, 'New High Score!', 2 ,'sumo_win',0xAEAE00)
|
||||
|
||||
table.insert( arena.multi_scores , 1 , { arena.players[ winner_name ] .score , winner_name } )
|
||||
|
||||
local scores = arena.multi_scores
|
||||
|
||||
|
||||
|
||||
if minetest.get_modpath( 'panel_lib' ) then
|
||||
|
||||
minetest.after( 2 , function( arena , scores )
|
||||
|
|
|
@ -10,8 +10,13 @@ arena_lib.on_load("wormball", function(arena)
|
|||
-- load the saved highscore data from disk
|
||||
|
||||
local wormball_highscores = storage:get_string(arena.name .. "_highscores")
|
||||
|
||||
|
||||
local leaderboard = {}
|
||||
|
||||
|
||||
if wormball_highscores then leaderboard = minetest.deserialize( wormball_highscores ) end
|
||||
|
||||
|
||||
arena.singleplayer_leaderboard = leaderboard
|
||||
|
||||
|
|
|
@ -66,6 +66,9 @@ arena_lib.on_time_tick('wormball', function(arena)
|
|||
end
|
||||
|
||||
|
||||
--minetest.chat_send_all( dump(arena.multi_scores))
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------
|
||||
|
@ -81,7 +84,32 @@ arena_lib.on_time_tick('wormball', function(arena)
|
|||
--eliminate a player
|
||||
if arena.time_to_next_elim == 0 then
|
||||
|
||||
arena.time_to_next_elim = 60
|
||||
arena.elims = arena.elims + 1
|
||||
|
||||
arena.time_to_next_elim = 90
|
||||
|
||||
if arena.elims > 1 then
|
||||
arena.time_to_next_elim = 60
|
||||
end
|
||||
|
||||
if arena.elims > 2 then
|
||||
arena.time_to_next_elim = 55
|
||||
end
|
||||
|
||||
if arena.elims > 3 then
|
||||
arena.time_to_next_elim = 50
|
||||
end
|
||||
|
||||
if arena.elims > 4 then
|
||||
arena.time_to_next_elim = 45
|
||||
end
|
||||
|
||||
if arena.elims > 5 then
|
||||
arena.time_to_next_elim = 30
|
||||
end
|
||||
|
||||
|
||||
|
||||
local pl_name = scores[#scores][1]
|
||||
local pl_score = scores[#scores][2]
|
||||
local color = arena.players[ pl_name ].color
|
||||
|
|
Loading…
Reference in New Issue