diff --git a/mods/ITEMS/mcl_enchanting/enchantments.lua b/mods/ITEMS/mcl_enchanting/enchantments.lua index f792014d7..3c03cc846 100644 --- a/mods/ITEMS/mcl_enchanting/enchantments.lua +++ b/mods/ITEMS/mcl_enchanting/enchantments.lua @@ -286,13 +286,16 @@ function minetest.calculate_knockback(player, hitter, time_from_last_punch, tool -- add vertical lift to knockback local v = player:get_velocity() local invul = player:get_meta():get_int("mcl_damage:invulnerable") + local enchant = mcl_enchanting.get_enchantment(wielditem, "knockback") if v and v.y <= 0.01 and v.y >= -0.01 and invul == 0 then - if dir.y <= 0.44 and distance <= 3 then - if mcl_enchanting.get_enchantment(wielditem, "knockback") == 0 then + if dir.y <= 0.3 then + if enchant == 0 then player:add_velocity({x = 0, y = 6.4, z = 0}) else player:add_velocity({x = 0, y = 7, z = 0}) end + elseif dir.y <= 0.44 and dir.y > 0.3 and enchant > 0 then + knockback = knockback + 3 end -- add minimum knockback if knockback <= 1.5 then @@ -311,10 +314,8 @@ function minetest.calculate_knockback(player, hitter, time_from_last_punch, tool if knockback > 12.875 then knockback = 12.875 end - if knockback > 6.4375 and dir.y >= 0.3 then - knockback = 6.4375 - elseif knockback <= 6.4375 and dir.y >= 0.3 then - knockback = 1 + if knockback > 6.275 and dir.y >= 0.3 and v.y == 0 and enchant == 0 then + knockback = 6.275 end -- remove knockback if invulnerable if invul > 0 then