fun_caves/elixir.lua
2016-06-22 08:24:30 -05:00

71 lines
1.9 KiB
Lua

fun_caves.armor_expire = {}
if fun_caves.expire_elixir_on_death then
minetest.register_on_dieplayer(function(player)
local name = player:get_player_name()
if fun_caves.armor_expire[name] then
player:set_armor_groups({fleshy = 100})
fun_caves.armor_expire[name] = nil
end
end)
end
local function armor(user, factor)
local player_name = user:get_player_name()
local armor = user:get_armor_groups()
if fun_caves.armor_expire[player_name] then
armor.fleshy = 100
end
armor.fleshy = armor.fleshy * factor
user:set_armor_groups(armor)
minetest.chat_send_player(player_name, 'Your skin feels harder...')
fun_caves.armor_expire[player_name] = minetest.get_gametime() + 3600
end
local descs = {
{'wood', 0.95, 'group:wood'},
{'stone', 0.9, 'group:stone'},
{'steel', 0.8, 'default:steel_ingot'},
{'copper', 0.85, 'default:copper_ingot'},
{'bronze', 0.7, 'default:bronze_ingot'},
{'gold', 0.6, 'default:gold_ingot'},
{'diamond', 0.5, 'default:diamond'},
{'silver', 0.4, 'fun_caves:silver_ingot'},
{'mese', 0.3, 'default:mese_crystal'},
--{'', 0.2, ''},
--{'adamant', 0.1, 'fun_caves:adamant'},
}
if fun_caves.elixir_armor then
for _, desc in pairs(descs) do
local name = desc[1]
local value = desc[2]
local cap = name:gsub('^%l', string.upper)
minetest.register_craftitem("fun_caves:liquid_"..name, {
description = 'Dr Robertson\'s Patented Liquid '..cap..' Elixir',
drawtype = "plantlike",
paramtype = "light",
tiles = {'fun_caves_liquid_'..name..'.png'},
inventory_image = 'fun_caves_liquid_'..name..'.png',
groups = {dig_immediate = 3, vessel = 1},
sounds = default.node_sound_glass_defaults(),
on_use = function(itemstack, user, pointed_thing)
armor(user, value)
itemstack:take_item()
return itemstack
end,
})
minetest.register_craft({
type = "shapeless",
output = 'fun_caves:liquid_'..name,
recipe = {
"mobs_slimes:green_slimeball",
desc[3],
"vessels:glass_bottle",
},
})
end
end