diff --git a/mods/CORE/mcl_enchanting/enchantments.lua b/mods/CORE/mcl_enchanting/enchantments.lua index dd505e960..2ceaf3b45 100644 --- a/mods/CORE/mcl_enchanting/enchantments.lua +++ b/mods/CORE/mcl_enchanting/enchantments.lua @@ -69,7 +69,7 @@ mcl_enchanting.enchantments.curse_of_vanishing = { disallow = {clock = true}, incompatible = {}, weight = 1, - description = "Except when in creative mode, items cannot be removed from armor slots except due to death or breaking.", + description = "Item destroyed on death.", curse = true, on_enchant = function() end, requires_tool = false, @@ -101,7 +101,7 @@ mcl_enchanting.enchantments.efficiency = { weight = 10, description = "Increases mining speed.", curse = false, - on_enchant = function(itemstack, level, itemdef) + on_enchant = function(itemstack, level) local tool_capabilities = itemstack:get_tool_capabilities() local groupcaps = {} for group, capability in pairs(tool_capabilities.groupcaps) do @@ -129,8 +129,8 @@ mcl_enchanting.enchantments.feather_falling = { requires_tool = false, } --- unimplemented -mcl_enchanting.enchantments.fire_aspect = { +-- requires missing MineClone2 feature +--[[mcl_enchanting.enchantments.fire_aspect = { name = "Fire Aspect", max_level = 2, primary = {sword = true}, @@ -142,7 +142,7 @@ mcl_enchanting.enchantments.fire_aspect = { curse = false, on_enchant = function() end, requires_tool = false, -} +}]]-- -- unimplemented mcl_enchanting.enchantments.fire_protection = { @@ -159,8 +159,8 @@ mcl_enchanting.enchantments.fire_protection = { requires_tool = false, } --- unimplemented -mcl_enchanting.enchantments.flame = { +-- requires missing MineClone2 feature +--[[mcl_enchanting.enchantments.flame = { name = "Flame", max_level = 1, primary = {bow = true}, @@ -172,7 +172,7 @@ mcl_enchanting.enchantments.flame = { curse = false, on_enchant = function() end, requires_tool = false, -} +}]]-- -- unimplemented mcl_enchanting.enchantments.fortune = { @@ -369,7 +369,7 @@ mcl_enchanting.enchantments.respiration = { requires_tool = false, } --- unimplemented +-- implemented via on_enchant mcl_enchanting.enchantments.sharpness = { name = "Sharpness", max_level = 5, @@ -378,9 +378,17 @@ mcl_enchanting.enchantments.sharpness = { disallow = {}, incompatible = {bane_of_anthropods = true, smite = true}, weight = 5, - description = "Increases damage and applies Slowness IV to arthropod mobs (spiders, cave spiders, silverfish and endermites).", + description = "Increases damage.", curse = false, - on_enchant = function() end, + on_enchant = function(itemstack, level) + local tool_capabilities = itemstack:get_tool_capabilities() + local damage_groups = {} + for group, damage in pairs(tool_capabilities.damage_groups) do + damage_groups[group] = damage + level * 0.5 + end + tool_capabilities.damage_groups = damage_groups + itemstack:get_meta():set_tool_capabilities(tool_capabilities) + end, requires_tool = false, } @@ -430,8 +438,8 @@ mcl_enchanting.enchantments.soul_speed = { requires_tool = false, } --- unimplemented -mcl_enchanting.enchantments.sweeping_edge = { +-- requires missing MineClone2 feature +--[[mcl_enchanting.enchantments.sweeping_edge = { name = "Sweeping Edge", max_level = 3, primary = {sword = true}, @@ -443,7 +451,7 @@ mcl_enchanting.enchantments.sweeping_edge = { curse = false, on_enchant = function() end, requires_tool = false, -} +}]]-- -- unimplemented mcl_enchanting.enchantments.thorns = { @@ -471,13 +479,13 @@ mcl_enchanting.enchantments.unbreaking = { weight = 5, description = "Increases item durability.", curse = false, - on_enchant = function(itemstack, level, itemdef) - local new_capabilities = itemstack:get_tool_capabilities() - for group, capability in pairs(new_capabilities.groupcaps) do + on_enchant = function(itemstack, level) + local tool_capabilities = itemstack:get_tool_capabilities() + for group, capability in pairs(tool_capabilities.groupcaps) do capability.uses = capability.uses * (1 + level) end - new_capabilities.punch_attack_uses = new_capabilities.punch_attack_uses * (1 + level) - itemstack:get_meta():set_tool_capabilities(new_capabilities) + tool_capabilities.punch_attack_uses = tool_capabilities.punch_attack_uses * (1 + level) + itemstack:get_meta():set_tool_capabilities(tool_capabilities) end, requires_tool = true, } diff --git a/mods/CORE/mcl_enchanting/engine.lua b/mods/CORE/mcl_enchanting/engine.lua index ae04e3ed6..f77e3dff9 100644 --- a/mods/CORE/mcl_enchanting/engine.lua +++ b/mods/CORE/mcl_enchanting/engine.lua @@ -12,7 +12,7 @@ function mcl_enchanting.set_enchantments(itemstack, enchantments) for enchantment, level in pairs(enchantments) do local enchantment_def = mcl_enchanting.enchantments[enchantment] if enchantment_def.on_enchant then - enchantment_def.on_enchant(itemstack, level, itemdef) + enchantment_def.on_enchant(itemstack, level) end end end