Points and TDs instead of kills and deaths in TD mode

master
Zughy 2021-02-18 18:57:31 +01:00
parent ebfa75799a
commit 9af8b84ea0
6 changed files with 65 additions and 25 deletions

View File

@ -6,7 +6,6 @@ function block_league.info_panel_create(arena, p_name)
bg_scale = { x = 45, y = 28 },
position = { x = 0.5, y = 0.5 },
alignment = { x = 0, y = 0 },
title = "PLAYERS\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\tKILLS\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t\t\tDEATHS",
title_offset = { x = 0, y = -150},
title_color = 0xdff6f5,
@ -39,7 +38,7 @@ function block_league.info_panel_create(arena, p_name)
offset = {x = -250, y = -130},
text = ""
},
kls_clmn = {
pts_clmn = {
alignment = { x = 0, y = 1 },
offset = {x = 0, y = -130},
text = ""
@ -58,8 +57,8 @@ end
function block_league.info_panel_update(arena)
local plyrs_clmn = ""
local kills_clmn = ""
local deaths_clmn = ""
local pts_clmn = ""
local third_clmn = ""
-- creo una tabella per avere i giocatori ordinati con nome come KEY
local players_idx = {}
@ -74,14 +73,25 @@ function block_league.info_panel_update(arena)
-- ordino i team
for id, team in pairs(arena.teams) do
--salvo anche l'id del team così da non dover iterare di nuovo
table.insert(sorted_teams, {name = team.name, kills = team.kills, deaths = team.deaths, id = id})
table.insert(sorted_teams, {name = team.name, id = id})
end
local third_clmn_title
local third_clmn_value
if arena.mode == 1 then
third_clmn_title = S("TDs")
third_clmn_value = "TDs"
else
third_clmn_title = S("Deaths")
third_clmn_value = "deaths"
end
-- determino come stampare i team seguiti dai giocatori
for _, team in pairs(sorted_teams) do
plyrs_clmn = plyrs_clmn .. S("Team") .. " " .. team.name .. "\n\n"
kills_clmn = kills_clmn .. team.kills .. "\n\n"
deaths_clmn = deaths_clmn .. team.deaths .. "\n\n"
pts_clmn = pts_clmn .. S("Points") .. "\n\n"
third_clmn = third_clmn .. third_clmn_title .. "\n\n"
if team.name == S("orange") then
bar_orange = bar_pos
@ -93,7 +103,7 @@ function block_league.info_panel_update(arena)
local sorted_players = {}
for _, pl_name in pairs(arena_lib.get_players_in_team(arena, team.id)) do
table.insert(sorted_players, {pl_name, arena.players[pl_name].kills, arena.players[pl_name].deaths})
table.insert(sorted_players, {pl_name, arena.players[pl_name].points, arena.players[pl_name][third_clmn_value]})
end
table.sort(sorted_players, function (a,b) return a[2] > b[2] end)
@ -102,8 +112,8 @@ function block_league.info_panel_update(arena)
for _, stats in pairs(sorted_players) do
plyrs_clmn = plyrs_clmn .. stats[1] .. "\n\n"
kills_clmn = kills_clmn .. stats[2] .. "\n\n"
deaths_clmn = deaths_clmn .. stats[3] .. "\n\n"
pts_clmn = pts_clmn .. stats[2] .. "\n\n"
third_clmn = third_clmn .. stats[3] .. "\n\n"
players_idx[stats[1]] = bar_pos
bar_pos = bar_pos + dist_between_bars
@ -111,8 +121,8 @@ function block_league.info_panel_update(arena)
end
plyrs_clmn = plyrs_clmn .. "\n\n"
kills_clmn = kills_clmn .. "\n\n"
deaths_clmn = deaths_clmn .. "\n\n"
pts_clmn = pts_clmn .. "\n\n"
third_clmn = third_clmn .. "\n\n"
bar_pos = bar_pos + dist_between_bars
end
@ -127,11 +137,11 @@ function block_league.info_panel_update(arena)
{players_clmn = {
text = plyrs_clmn
},
kls_clmn = {
text = kills_clmn
pts_clmn = {
text = pts_clmn
},
dts_clmn = {
text = deaths_clmn
text = third_clmn
}},
{player_indicator = {

View File

@ -175,6 +175,9 @@ function ball:attach(player)
player:get_meta():set_int("bl_has_ball", 1)
block_league.energy_drain(arena, p_name)
arena.players[p_name].points = arena.players[p_name].points + 2
block_league.info_panel_update(arena)
self.object:set_attach(player, "Body", {x=0, y=18, z=0}, {x=0, y=0, z=0})
self.wielder = player
@ -288,7 +291,7 @@ function check_for_touchdown(id, arena, ball, wielder, w_pos, goal)
block_league.hud_log_update(arena, "bl_log_TD.png", w_name, "")
add_point(teamID, arena)
add_point(w_name, teamID, arena)
after_point(w_name, teamID, arena)
ball:_destroy()
@ -298,7 +301,7 @@ end
function add_point(teamID, arena)
function add_point(w_name, teamID, arena)
local enemy_teamID = teamID == 1 and 2 or 1
local team = arena_lib.get_players_in_team(arena, teamID)
@ -322,7 +325,10 @@ function add_point(teamID, arena)
end
arena.teams[teamID].TDs = arena.teams[teamID].TDs + 1
arena.players[w_name].TDs = arena.players[w_name].TDs + 1
arena.players[w_name].points = arena.players[w_name].points + 10
block_league.scoreboard_update_score(arena)
block_league.info_panel_update(arena)
end

View File

@ -291,7 +291,7 @@ function block_league.apply_damage(user, targets, weapon, decrease_damage_with_d
})
-- sennò kaputt
else
kill(arena, weapon, p_name, target)
kill(arena, weapon, user, target)
if t_name ~= p_name then
killed_players = killed_players +1
end
@ -608,18 +608,18 @@ function after_damage(arena, p_name, killed_players)
arena_lib.send_message_in_arena(arena, minetest.colorize("#eea160", p_name .. " ") .. minetest.colorize("#d7ded7", S("has killed @1 players in a row!", killed_players)))
end
end
function kill(arena, weapon, p_name, target)
function kill(arena, weapon, player, target)
local p_name = player:get_player_name()
local t_name = target:get_player_name()
-- riproduco suono morte
block_league.sound_play("bl_kill", p_name)
local t_name = target:get_player_name()
if t_name ~= p_name then
-- informo dell'uccisione
@ -641,9 +641,20 @@ function kill(arena, weapon, p_name, target)
local p_stats = arena.players[p_name]
local team = arena.teams[arena.players[p_name].teamID]
-- aggiungo la kill
team.kills = team.kills +1
p_stats.kills = p_stats.kills +1
-- aggiungo l'uccisione
team.kills = team.kills + 1
p_stats.kills = p_stats.kills + 1
-- calcolo i punti
if arena.mode == 1 then
if player:get_meta():get_int("bl_has_ball") == 1 or target:get_meta():get_int("bl_has_ball") == 1 then
p_stats.points = p_stats.points + 4
else
p_stats.points = p_stats.points + 2
end
else
p_stats.points = p_stats.points + 2
end
-- aggiorno HUD
block_league.info_panel_update(arena)

View File

@ -56,11 +56,14 @@ arena_lib.register_minigame("block_league", {
},
team_properties = {
TDs = 0,
points = 0,
kills = 0,
deaths = 0
},
player_properties = {
energy = 100,
TDs = 0,
points = 0,
weapons_magazine = {}
}
})

View File

@ -37,6 +37,11 @@ You already are in test mode!=Sei già in modalità test!
You've entered test mode=Sei entrato in modalità test
You've left test mode=Sei uscito dalla modalità test
# bl_HUD/hud_info_panel.lua
TDs=TD
Deaths=Morti
Points=Punti
# bl_modes/TD/ball.lua
Ball reset=Palla resettata
NICE POINT!=BEL PUNTO!

View File

@ -37,6 +37,11 @@ You already are in test mode!=
You've entered test mode=
You've left test mode=
# bl_HUD/hud_info_panel.lua
TDs=
Deaths=
Points=
# bl_modes/TD/ball.lua
Ball reset=
NICE POINT!=