64 lines
2.2 KiB
Lua
64 lines
2.2 KiB
Lua
--
|
|
-- ATTENZIONE: questa classe funziona da magazzino per gli achievement. Se
|
|
-- invece si vuole vederne la parte grafica (come quando appaiono a schermo),
|
|
-- vedere /_HUD/hud_achievements.lua
|
|
|
|
local S = minetest.get_translator("quake")
|
|
|
|
quake.achievements = {
|
|
[1] = { name = S("killing spree"), img = "quake_achievement_killstreak.png" },
|
|
[2] = { name = S("unstoppable"), img = "quake_achievement_killstreak2.png" },
|
|
[3] = { name = S("bloodbath"), img = "quake_achievement_killstreak3.png" },
|
|
[4] = { name = S("shutdown!"), img = "quake_achievement_shutdown.png" },
|
|
[5] = { name = S("first blood"), img = "quake_achievement_firstblood.png" },
|
|
[6] = { name = S("two in one"), img = "quake_achievement_doublekill.png" },
|
|
[7] = { name = S("three in one"), img = "quake_achievement_triplekill.png" },
|
|
}
|
|
|
|
|
|
|
|
function quake.add_achievement(p_name, achvmt_ID)
|
|
|
|
--TODO|DOUBT gestione in hub_manager se c'è?
|
|
|
|
local achievement = quake.achievements[achvmt_ID]
|
|
|
|
if achievement == nil then return end
|
|
if quake.players[p_name].ACHVMTS[achvmt_ID] ~= nil then return end
|
|
|
|
quake.players[p_name].ACHVMTS[achvmt_ID] = true
|
|
quake.update_storage(p_name)
|
|
|
|
end
|
|
|
|
|
|
|
|
function quake.list_achievements(sender, t_name)
|
|
|
|
local p_name = t_name or sender
|
|
|
|
-- se il giocatore non esiste, annullo
|
|
if quake.players[p_name] == nil then
|
|
minetest.chat_send_player(sender, minetest.colorize("#e6482e", S("[!] This player doesn't exist!")))
|
|
return end
|
|
|
|
local p_achievements = quake.players[p_name].ACHVMTS
|
|
local current_achievements = 0
|
|
local achievements_to_text = "\n"
|
|
|
|
for i = 1, #quake.achievements do
|
|
if p_achievements[i] then
|
|
achievements_to_text = achievements_to_text .. minetest.colorize("#b6d53c", "[X] " .. quake.achievements[i].name) .. "\n"
|
|
current_achievements = current_achievements +1
|
|
else
|
|
achievements_to_text = achievements_to_text .. minetest.colorize("#cfc6b8", "[ ] " ..quake.achievements[i].name) .. "\n"
|
|
end
|
|
end
|
|
|
|
minetest.chat_send_player(sender,
|
|
minetest.colorize("#cfc6b8", "====================================") .. "\n" ..
|
|
minetest.colorize("#eea160", S("@1 ACHIEVEMENTS", p_name) .. ": " .. current_achievements .. "/" .. #quake.achievements) .. achievements_to_text
|
|
)
|
|
|
|
end
|