magical_potion/functions.lua

59 lines
1.6 KiB
Lua

playereffects.register_effect_type("fly_bottle", "Fly", "wings.png", {"fly"},
function(player)
local playername = player:get_player_name()
local privs = minetest.get_player_privs(playername)
privs.fly = true
privs.fast = true
minetest.set_player_privs(playername, privs)
end,
function(effect, player)
local privs = minetest.get_player_privs(effect.playername)
privs.fly = nil
privs.fast = nil
minetest.set_player_privs(effect.playername, privs)
end,
false,
false)
playereffects.register_effect_type("speed_bottle", "High speed", "speed.png", {"speed"},
function(player)
player:set_physics_override({speed=2})
end,
function(effect, player)
player:set_physics_override({speed=1})
end
)
playereffects.register_effect_type("immortal_bottle", "Immortal", "immortal.png", {"immortal"},
function(user)
if user and user:is_player() then
local groups = user:get_armor_groups()
playereffects.preset = groups
user:set_armor_groups({immortal=1})
end
end,
function(effect, user)
if user and user:is_player() then
local groups = user:get_armor_groups()
if groups.immortal then
user:set_armor_groups(playereffects.preset)
end
end
end
)
-- TODO: integrate into different mod
minetest.register_on_joinplayer(function(name, param)
minetest.after(1, function()
playereffects.apply_effect_type("immortal_bottle", 20, name)
end)
end)
minetest.register_on_newplayer(function(name, param)
minetest.after(1, function()
playereffects.apply_effect_type("immortal_bottle", 1800, name)
end)
end)