mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-16 16:11:06 +01:00
Implement magic damage
This commit is contained in:
parent
d9195cc520
commit
53b0ad7347
2 changed files with 14 additions and 16 deletions
|
@ -503,6 +503,16 @@ function mcl_util.deal_damage(target, damage, mcl_reason)
|
||||||
target:set_hp(target:get_hp() - damage, mt_reason)
|
target:set_hp(target:get_hp() - damage, mt_reason)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function mcl_util.get_hp(obj)
|
||||||
|
local luaentity = obj:get_luaentity()
|
||||||
|
|
||||||
|
if luaentity and luaentity._cmi_is_mob then
|
||||||
|
return luaentity.health
|
||||||
|
else
|
||||||
|
return obj:get_hp()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function mcl_util.get_inventory(object, create)
|
function mcl_util.get_inventory(object, create)
|
||||||
if object:is_player() then
|
if object:is_player() then
|
||||||
return object:get_inventory()
|
return object:get_inventory()
|
||||||
|
|
|
@ -132,17 +132,10 @@ minetest.register_globalstep(function(dtime)
|
||||||
if player:get_pos() then mcl_potions._add_spawner(player, "#225533") end
|
if player:get_pos() then mcl_potions._add_spawner(player, "#225533") end
|
||||||
|
|
||||||
if EF.poisoned[player].hit_timer >= EF.poisoned[player].step then
|
if EF.poisoned[player].hit_timer >= EF.poisoned[player].step then
|
||||||
|
if mcl_util.get_hp(player) - 1 > 0 then
|
||||||
if entity and entity._cmi_is_mob then
|
mcl_util.deal_damage(player, 1, {type = "magic"})
|
||||||
entity.health = math.max(entity.health - 1, 1)
|
|
||||||
EF.poisoned[player].hit_timer = 0
|
|
||||||
elseif is_player then
|
|
||||||
player:set_hp( math.max(player:get_hp() - 1, 1), { type = "punch", other = "poison"})
|
|
||||||
EF.poisoned[player].hit_timer = 0
|
|
||||||
else -- if not player or mob then remove
|
|
||||||
EF.poisoned[player] = nil
|
|
||||||
end
|
end
|
||||||
|
EF.poisoned[player].hit_timer = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
if EF.poisoned[player] and EF.poisoned[player].timer >= EF.poisoned[player].dur then
|
if EF.poisoned[player] and EF.poisoned[player].timer >= EF.poisoned[player].dur then
|
||||||
|
@ -721,12 +714,7 @@ function mcl_potions.healing_func(player, hp)
|
||||||
hp = -1
|
hp = -1
|
||||||
end
|
end
|
||||||
|
|
||||||
if obj and obj._cmi_is_mob then
|
mcl_util.deal_damage(obj, -hp, {type = "magic"})
|
||||||
obj.health = obj.health + hp
|
|
||||||
elseif player:is_player() then
|
|
||||||
player:set_hp(player:get_hp() + hp, { type = "punch", other = "harming" })
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue