45 lines
1.4 KiB
Lua
45 lines
1.4 KiB
Lua
PyuTest.make_upgrade_rune = function(name, desc, stat, increase, max, color, craftitem)
|
|
PyuTest.make_item(name, desc, {
|
|
upgrade_rune = 1,
|
|
}, "pyutest-rune.png", {
|
|
color = color,
|
|
on_use = function(itemstack, user, pointed_thing)
|
|
if not user then return end
|
|
if not user:is_player() then return end
|
|
|
|
local value = PyuTest.get_player_stat(user, stat)
|
|
|
|
if value == max then
|
|
return
|
|
end
|
|
|
|
-- Stat value below 1 causes problems
|
|
if (value + increase) < 1 then
|
|
return
|
|
end
|
|
|
|
PyuTest.set_player_stat(user, stat, value + increase)
|
|
|
|
core.sound_play({ name = "spellbook_action", gain = 0.75 }, { pos = user:get_pos() })
|
|
itemstack:take_item()
|
|
return itemstack
|
|
end
|
|
})
|
|
|
|
if craftitem ~= nil then
|
|
core.register_craft({
|
|
output = name,
|
|
recipe = {
|
|
{ "", "pyutest_ores:emerald_shard", "" },
|
|
{ "pyutest_ores:emerald_shard", craftitem, "pyutest_ores:emerald_shard" },
|
|
{ "", "pyutest_ores:emerald_shard", "" },
|
|
}
|
|
})
|
|
end
|
|
end
|
|
|
|
PyuTest.make_upgrade_rune("pyutest_upgrades:defense", "Defense Upgrade Rune", "defense", 0.5, 5, "green",
|
|
"pyutest_ores:diamond_shard")
|
|
PyuTest.make_upgrade_rune("pyutest_upgrades:attack", "Attack Upgrade Rune", "attack", 0.5, 3, "red",
|
|
"pyutest_ores:gold_ingot")
|