forked from VoxeLibre/VoxeLibre
Update to allow poison damage with armor.
This commit is contained in:
parent
16d9ee47b6
commit
3be2ff1977
|
@ -192,7 +192,7 @@ end
|
||||||
|
|
||||||
armor.update_armor = function(self, player)
|
armor.update_armor = function(self, player)
|
||||||
-- Legacy support: Called when armor levels are changed
|
-- Legacy support: Called when armor levels are changed
|
||||||
-- Other mods can hook on to this function, see hud mod for example
|
-- Other mods can hook on to this function, see hud mod for example
|
||||||
end
|
end
|
||||||
|
|
||||||
armor.get_armor_points = function(self, player)
|
armor.get_armor_points = function(self, player)
|
||||||
|
@ -429,7 +429,7 @@ minetest.register_on_joinplayer(function(player)
|
||||||
for i=1, 6 do
|
for i=1, 6 do
|
||||||
local stack = player_inv:get_stack("armor", i)
|
local stack = player_inv:get_stack("armor", i)
|
||||||
armor_inv:set_stack("armor", i, stack)
|
armor_inv:set_stack("armor", i, stack)
|
||||||
end
|
end
|
||||||
armor.def[name] = {
|
armor.def[name] = {
|
||||||
count = 0,
|
count = 0,
|
||||||
level = 0,
|
level = 0,
|
||||||
|
@ -499,6 +499,10 @@ minetest.register_on_player_hpchange(function(player, hp_change, reason)
|
||||||
return hp_change
|
return hp_change
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if reason.type == "poison" and reason.from == "potion" then
|
||||||
|
return hp_change
|
||||||
|
end
|
||||||
|
|
||||||
local heal_max = 0
|
local heal_max = 0
|
||||||
local items = 0
|
local items = 0
|
||||||
local armor_damage = math.max(1, math.floor(math.abs(hp_change)/4))
|
local armor_damage = math.max(1, math.floor(math.abs(hp_change)/4))
|
||||||
|
|
|
@ -51,7 +51,7 @@ minetest.register_globalstep(function(dtime)
|
||||||
if player._cmi_is_mob then
|
if player._cmi_is_mob then
|
||||||
player.health = math.max(player.health - 1, 1)
|
player.health = math.max(player.health - 1, 1)
|
||||||
else
|
else
|
||||||
player:set_hp( math.max(player:get_hp() - 1, 1), { type = "punch", from = "potion" })
|
player:set_hp( math.max(player:get_hp() - 1, 1), { type = "poison", from = "potion" })
|
||||||
end
|
end
|
||||||
|
|
||||||
is_poisoned[player].hit_timer = 0
|
is_poisoned[player].hit_timer = 0
|
||||||
|
@ -81,7 +81,7 @@ minetest.register_globalstep(function(dtime)
|
||||||
if player:get_pos() then mcl_potions._add_spawner(player, "#A52BB2") end
|
if player:get_pos() then mcl_potions._add_spawner(player, "#A52BB2") end
|
||||||
|
|
||||||
if is_regenerating[player].heal_timer >= is_regenerating[player].step then
|
if is_regenerating[player].heal_timer >= is_regenerating[player].step then
|
||||||
player:set_hp(math.min(player:get_properties().hp_max or 20, player:get_hp() + 1))
|
player:set_hp(math.min(player:get_properties().hp_max or 20, player:get_hp() + 1), { type = "regeneration", from = "potion" })
|
||||||
is_regenerating[player].heal_timer = 0
|
is_regenerating[player].heal_timer = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -467,7 +467,7 @@ function mcl_potions.healing_func(player, hp)
|
||||||
if obj and obj._cmi_is_mob then
|
if obj and obj._cmi_is_mob then
|
||||||
obj.health = math.max(obj.health + hp, obj.hp_max)
|
obj.health = math.max(obj.health + hp, obj.hp_max)
|
||||||
else
|
else
|
||||||
player:set_hp(math.min(player:get_hp() + hp, player:get_properties().hp_max))
|
player:set_hp(math.min(player:get_hp() + hp, player:get_properties().hp_max), { type = "healing", from = "potion" })
|
||||||
end
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -475,7 +475,7 @@ function mcl_potions.healing_func(player, hp)
|
||||||
if obj and obj._cmi_is_mob then
|
if obj and obj._cmi_is_mob then
|
||||||
obj.health = obj.health + hp
|
obj.health = obj.health + hp
|
||||||
else
|
else
|
||||||
player:set_hp(player:get_hp() + hp, { type = "punch", from = "potion" })
|
player:set_hp(player:get_hp() + hp, { type = "harming", from = "potion" })
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue