Accomodate armor mods.
This commit is contained in:
parent
dffcc72cbd
commit
02337a1187
5 changed files with 51 additions and 26 deletions
39
elixir.lua
39
elixir.lua
|
@ -1,27 +1,48 @@
|
|||
fun_caves.armor_expire = {}
|
||||
local elixir_duration = 3600
|
||||
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
local player_name = player:get_player_name()
|
||||
|
||||
if fun_caves.db.armor_expire[player_name] then
|
||||
local factor = fun_caves.db.armor_expire[player_name].factor
|
||||
local armor = player:get_armor_groups()
|
||||
armor.fleshy = math.min(100, math.max(1, math.ceil(armor.fleshy * factor)))
|
||||
player:set_armor_groups(armor)
|
||||
end
|
||||
end)
|
||||
|
||||
|
||||
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
|
||||
local player_name = player:get_player_name()
|
||||
if fun_caves.db.armor_expire[player_name] then
|
||||
local factor = fun_caves.db.armor_expire[player_name].factor
|
||||
local armor = player:get_armor_groups()
|
||||
armor.fleshy = math.min(100, math.max(1, math.ceil(armor.fleshy / factor)))
|
||||
player:set_armor_groups(armor)
|
||||
fun_caves.db.armor_expire[player_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
|
||||
if fun_caves.db.armor_expire[player_name] then
|
||||
local old_factor = fun_caves.db.armor_expire[player_name].factor
|
||||
armor.fleshy = math.min(100, math.max(1, math.ceil(armor.fleshy / factor)))
|
||||
end
|
||||
|
||||
armor.fleshy = armor.fleshy * factor
|
||||
armor.fleshy = math.min(100, math.max(1, math.ceil(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
|
||||
fun_caves.db.armor_expire[player_name] = {
|
||||
time = minetest.get_gametime() + elixir_duration,
|
||||
factor = factor,
|
||||
}
|
||||
end
|
||||
|
||||
local descs = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue