diff --git a/mods/runes/amulets.lua b/mods/runes/amulets.lua new file mode 100644 index 00000000..191f8e7a --- /dev/null +++ b/mods/runes/amulets.lua @@ -0,0 +1,31 @@ +-- Amulets + +runes.functions.register_amulet("snake", "Snake Amulet", 10, 5 ) +runes.functions.register_amulet("scorpion", "Scorpion Amulet", 5, 7 ) +runes.functions.register_amulet("cactus", "Cactus Amulet", 5, 10 ) +runes.functions.register_amulet("eye", "Eye Amulet", 3, 20 ) +runes.functions.register_amulet("anubis", "Anubis' Amulet", 3, 25 ) +runes.functions.register_amulet("horus", "Horus' Amulet", 2, 40 ) +runes.functions.register_amulet("thot", "Thot's Amulet", 2, 45 ) +runes.functions.register_amulet("osiris", "Osiris' Amulet", 2, 50 ) +runes.functions.register_amulet("ra", "Ra's Amulet", 1, 100) + +-- Globalstep checking for the amulets +minetest.register_globalstep(function(dtime) + for _, player in pairs(minetest.get_connected_players()) do + local inv = player:get_inventory() + local basemana = mana.settings.default_max + 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) + end + end + end + if basemana ~= mana.settings.default_max then + mana.setmax(player:get_player_name(), basemana) + end + end +end) diff --git a/mods/runes/api.lua b/mods/runes/api.lua index 21b4e018..6ef36bdf 100644 --- a/mods/runes/api.lua +++ b/mods/runes/api.lua @@ -5,6 +5,7 @@ runes = {} runes.datas = {} runes.datas.handlers = {} runes.datas.items = {} +runes.datas.amulets = {} runes.functions = {} -- Simple rune register function @@ -197,3 +198,15 @@ runes.functions.connect = function(itemname, callback, handler) return end end + +-- Amulets + +runes.functions.register_amulet = function(name, desc, maxcount, manadiff) + minetest.register_craftitem("runes:" .. name .. "_amulet", { + description = desc, + inventory_image = "runes_" .. name .. "_amulet.png", + groups = {amulet = 1}, + stack_max = maxcount, + }) + runes.datas.amulets[name] = manadiff +end diff --git a/mods/runes/init.lua b/mods/runes/init.lua index 9ab1219c..087fe911 100644 --- a/mods/runes/init.lua +++ b/mods/runes/init.lua @@ -9,7 +9,10 @@ dofile(modpath.."/api.lua") -- Then the rune themselves dofile(modpath.."/registration.lua") --- And the handlers +-- The handlers dofile(modpath.."/handlers.lua") +-- The amulets +dofile(modpath.."/amulets.lua") + minetest.log("action","[runes] Mod loaded")