From 1191a5737417f687ef295a92a9b9f43a80882e56 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Wed, 19 Apr 2017 23:58:33 +0200 Subject: [PATCH] [runes] Fix amulets' bonuses not being removed - Runes : Fix a bug that made the amulets' bonuses in maximum mana never disappear even after the amulet(s) had been removed --- mods/runes/amulets.lua | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/mods/runes/amulets.lua b/mods/runes/amulets.lua index 07370d63..cf3791b2 100755 --- a/mods/runes/amulets.lua +++ b/mods/runes/amulets.lua @@ -61,21 +61,27 @@ minetest.register_node("runes:black_magic_block", { }) -- Globalstep checking for the amulets -minetest.register_globalstep(function(dtime) +tmpdata = {} +loop = function() for _, player in pairs(minetest.get_connected_players()) do local inv = player:get_inventory() - local basemana = mana.settings.default_max + 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 - basemana = basemana + (manadiff * itemcount) + addons = addons + (manadiff * itemcount) + print("Detected " .. name) end end end - if basemana ~= mana.settings.default_max then - mana.setmax(player:get_player_name(), basemana) - end + mana.setmax(pname, basemana + addons) + tmpdata[pname] = addons end -end) + minetest.after(1, loop) +end + +minetest.after(0, loop)