1
0
Fork 0

Implement magic damage

This commit is contained in:
Lizzy Fleckenstein 2021-04-18 20:21:11 +02:00
parent d9195cc520
commit 53b0ad7347
2 changed files with 14 additions and 16 deletions

View File

@ -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()

View File

@ -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