mirror of
https://github.com/sys4-fr/server-nalc.git
synced 2024-11-14 14:30:34 +01:00
1191a57374
- Runes : Fix a bug that made the amulets' bonuses in maximum mana never disappear even after the amulet(s) had been removed
88 lines
2.5 KiB
Lua
Executable File
88 lines
2.5 KiB
Lua
Executable File
-- Amulets
|
|
runes.functions.register_amulet("silver_cross", "Silver Cross", 1, 25 )
|
|
runes.functions.register_amulet("minotaur_eye", "Minotaur Eye", 1, 50 )
|
|
runes.functions.register_amulet("hellfire", "Hellfire Amulet", 1, 75 )
|
|
runes.functions.register_amulet("grim_reaper", "Grim Reaper's Amulet", 1, 100)
|
|
|
|
-- Recipes
|
|
minetest.register_craft({
|
|
output = "runes:silver_cross_amulet",
|
|
recipe = {
|
|
{"", "farming:cotton", ""},
|
|
{"default:silver_ingot", "default:silver_ingot", "default:silver_ingot"},
|
|
{"", "default:silver_ingot", ""},
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "runes:minotaur_eye_amulet",
|
|
recipe = {
|
|
{"", "darkage:chain", ""},
|
|
{"technic:brass_ingot", "mobs:minotaur_eye", "technic:brass_ingot"},
|
|
{"", "mesecons_materials:glue", ""},
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "runes:hellfire_amulet",
|
|
recipe = {
|
|
{"", "darkage:chain", ""},
|
|
{"mobs:lava_orb", "default:diamondblock", "mobs:lava_orb"},
|
|
{"default:obsidian", "bucket:bucket_lava", "default:obsidian"},
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "runes:grim_reaper_amulet",
|
|
recipe = {
|
|
{"", "runes:hellfire_amulet", ""},
|
|
{"nether:white", "runes:black_magic_block", "nether:white"},
|
|
{"", "default:mithrilblock", ""},
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "runes:black_magic_block",
|
|
recipe = {
|
|
{"nether:white", "runes:hellfire_amulet", "default:obsidian"},
|
|
{"default:nyancat", "nether:tree", "default:mese"},
|
|
{"default:obsidian", "default:mithrilblock", "nether:white"},
|
|
}
|
|
})
|
|
|
|
-- Nodes
|
|
minetest.register_node("runes:black_magic_block", {
|
|
description = "Black Magic Block",
|
|
tiles = {"runes_black_magic_block.png"},
|
|
is_ground_content = true,
|
|
paramtype2 = "facedir",
|
|
groups = {crumbly=3},
|
|
sounds = default.node_sound_sand_defaults(),
|
|
})
|
|
|
|
-- Globalstep checking for the amulets
|
|
tmpdata = {}
|
|
loop = function()
|
|
for _, player in pairs(minetest.get_connected_players()) do
|
|
local inv = player:get_inventory()
|
|
local pname = player:get_player_name()
|
|
local basemana = mana.getmax(pname) - (tmpdata[pname] or 0) -- Baseline mana, without any amulets
|
|
local addons = 0
|
|
for index, item in pairs(inv:get_list("main")) do
|
|
local itemname = item:get_name()
|
|
local itemcount = item:get_count()
|
|
for name, manadiff in pairs(runes.datas.amulets) do
|
|
if itemname == "runes:" .. name .. "_amulet" then
|
|
addons = addons + (manadiff * itemcount)
|
|
print("Detected " .. name)
|
|
end
|
|
end
|
|
end
|
|
mana.setmax(pname, basemana + addons)
|
|
tmpdata[pname] = addons
|
|
end
|
|
minetest.after(1, loop)
|
|
end
|
|
|
|
minetest.after(0, loop)
|