Added mcl_luck API
Luck and Bad Luck effects use the mcl_luck API now The API is unused for nowpotions_api_redo
parent
476022b205
commit
ad03d535d6
|
@ -610,10 +610,13 @@ mcl_potions.register_effect({
|
|||
return (not object:is_player())
|
||||
end,
|
||||
on_start = function(object, factor)
|
||||
-- mcl_luck.add_luck_modifier(object, "mcl_potions:luck", factor)
|
||||
mcl_luck.apply_luck_modifier(object:get_player_name(), "mcl_potions:luck", factor)
|
||||
end,
|
||||
on_load = function(object, factor)
|
||||
mcl_luck.apply_luck_modifier(object:get_player_name(), "mcl_potions:luck", factor)
|
||||
end,
|
||||
on_end = function(object)
|
||||
-- mcl_luck.remove_luck_modifier(object, "mcl_potions:luck")
|
||||
mcl_luck.remove_luck_modifier(object:get_player_name(), "mcl_potions:luck")
|
||||
end,
|
||||
uses_factor = true,
|
||||
})
|
||||
|
@ -626,10 +629,13 @@ mcl_potions.register_effect({
|
|||
return (not object:is_player())
|
||||
end,
|
||||
on_start = function(object, factor)
|
||||
-- mcl_luck.add_luck_modifier(object, "mcl_potions:bad_luck", -factor)
|
||||
mcl_luck.apply_luck_modifier(object:get_player_name(), "mcl_potions:bad_luck", -factor)
|
||||
end,
|
||||
on_load = function(object, factor)
|
||||
mcl_luck.apply_luck_modifier(object:get_player_name(), "mcl_potions:bad_luck", -factor)
|
||||
end,
|
||||
on_end = function(object)
|
||||
-- mcl_luck.remove_luck_modifier(object, "mcl_potions:bad_luck")
|
||||
mcl_luck.remove_luck_modifier(object:get_player_name(), "mcl_potions:bad_luck")
|
||||
end,
|
||||
uses_factor = true,
|
||||
})
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
mcl_luck = {}
|
||||
|
||||
-- table indexed by player name
|
||||
-- each entry for each player contains list of modifiers applied to the player
|
||||
-- modifiers are listed by their name (defined when applying them)
|
||||
-- all modifiers are dynamic (they are removed when the player leaves game and on server shutdown)
|
||||
local applied_luck = {}
|
||||
|
||||
function mcl_luck.apply_luck_modifier(player_name, modifier_name, amount)
|
||||
applied_luck[player_name][modifier_name] = amount
|
||||
end
|
||||
|
||||
function mcl_luck.remove_luck_modifier(player_name, modifier_name)
|
||||
applied_luck[player_name][modifier_name] = nil
|
||||
end
|
||||
|
||||
function mcl_luck.get_luck(player_name)
|
||||
local luck = 0
|
||||
for _, amount in pairs(applied_luck[player_name]) do
|
||||
luck = luck + amount
|
||||
end
|
||||
return luck
|
||||
end
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
local player_name = player:get_player_name()
|
||||
applied_luck[player_name] = {}
|
||||
end)
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
local player_name = player:get_player_name()
|
||||
applied_luck[player_name] = nil
|
||||
end)
|
|
@ -0,0 +1,3 @@
|
|||
name = mcl_luck
|
||||
author = Herowl
|
||||
description = An API for handling luck, it can be polled by random events.
|
Loading…
Reference in New Issue