2020-11-01 13:44:05 +01:00
-- Taken from https://minecraft.gamepedia.com/Enchanting
2020-11-13 12:21:36 +01:00
local function increase_damage ( damage_group , factor )
return function ( itemstack , level )
local tool_capabilities = itemstack : get_tool_capabilities ( )
tool_capabilities.damage_groups [ damage_group ] = ( tool_capabilities.damage_groups [ damage_group ] or 0 ) + level * factor
itemstack : get_meta ( ) : set_tool_capabilities ( tool_capabilities )
end
end
2020-11-01 17:24:57 +01:00
-- requires engine change
--[[mcl_enchanting.enchantments.aqua_affinity = {
2020-11-01 13:44:05 +01:00
name = " Aqua Affinity " ,
max_level = 1 ,
primary = { armor_head = true } ,
secondary = { } ,
disallow = { non_combat_armor = true } ,
incompatible = { } ,
weight = 2 ,
description = " Increases underwater mining speed. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 1 , 41 } } ,
2020-11-01 17:24:57 +01:00
} ] ] --
2020-11-01 13:44:05 +01:00
2020-11-09 18:59:08 +01:00
-- implemented via on_enchant and additions in mobs_mc; Slowness IV part unimplemented
mcl_enchanting.enchantments . bane_of_arthropods = {
name = " Bane of Arthropods " ,
2020-11-01 13:44:05 +01:00
max_level = 5 ,
primary = { sword = true } ,
secondary = { axe = true } ,
disallow = { } ,
incompatible = { smite = true , shaprness = true } ,
weight = 5 ,
description = " Increases damage and applies Slowness IV to arthropod mobs (spiders, cave spiders, silverfish and endermites). " ,
curse = false ,
2020-11-09 18:59:08 +01:00
on_enchant = increase_damage ( " anthropod " , 2.5 ) ,
2020-11-01 13:44:05 +01:00
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 5 , 25 } , { 13 , 33 } , { 21 , 41 } , { 29 , 49 } , { 37 , 57 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-13 12:21:36 +01:00
-- implemented in mcl_armor
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . blast_protection = {
name = " Blast Protection " ,
max_level = 4 ,
primary = { armor_head = true , armor_torso = true , armor_legs = true , armor_feet = true } ,
secondary = { } ,
disallow = { non_combat_armor = true } ,
incompatible = { fire_protection = true , protection = true , projectile_protection = true } ,
weight = 2 ,
description = " Reduces explosion damage and knockback. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 5 , 13 } , { 13 , 21 } , { 21 , 29 } , { 29 , 37 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-25 12:47:27 +01:00
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.channeling = {
name = " Channeling " ,
max_level = 1 ,
primary = { trident = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { riptide = true } ,
weight = 1 ,
description = " Trident \" channels \" a bolt of lightning toward a hit entity. Functions only during thunderstorms and if target is unobstructed with opaque blocks. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
treasure = false ,
power_range_table = { { 25 , 50 } } ,
} ] ] --
2020-11-01 17:24:57 +01:00
-- implemented in mcl_armor
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . curse_of_binding = {
name = " Curse of Binding " ,
max_level = 1 ,
primary = { } ,
secondary = { armor_head = true , armor_torso = true , armor_legs = true , armor_feet = true } ,
disallow = { } ,
incompatible = { } ,
weight = 1 ,
description = " Except when in creative mode, items cannot be removed from armor slots except due to death or breaking. " ,
curse = true ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = true ,
power_range_table = { { 25 , 50 } } ,
2020-11-01 13:44:05 +01:00
}
-- implemented in mcl_death_drop
mcl_enchanting.enchantments . curse_of_vanishing = {
name = " Curse of Vanishing " ,
max_level = 1 ,
primary = { } ,
secondary = { armor_head = true , armor_torso = true , armor_legs = true , armor_feet = true , tool = true , weapon = true } ,
2020-11-25 12:47:27 +01:00
disallow = { } ,
2020-11-01 13:44:05 +01:00
incompatible = { } ,
weight = 1 ,
2020-11-02 17:58:13 +01:00
description = " Item destroyed on death. " ,
2020-11-01 13:44:05 +01:00
curse = true ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = true ,
power_range_table = { { 25 , 50 } } ,
2020-11-01 13:44:05 +01:00
}
-- unimplemented
2020-11-25 12:47:27 +01:00
--[[mcl_enchanting.enchantments.depth_strider = {
2020-11-01 13:44:05 +01:00
name = " Depth Strider " ,
max_level = 3 ,
primary = { } ,
secondary = { armor_feet = true } ,
disallow = { non_combat_armor = true } ,
incompatible = { frost_walker = true } ,
weight = 2 ,
description = " Increases underwater movement speed. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 10 , 25 } , { 20 , 35 } , { 30 , 45 } } ,
} ] ] --
2020-11-01 13:44:05 +01:00
2020-11-02 13:38:17 +01:00
-- implemented via on_enchant
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . efficiency = {
name = " Efficiency " ,
max_level = 5 ,
primary = { pickaxe = true , shovel = true , axe = true , hoe = true } ,
secondary = { shears = true } ,
disallow = { } ,
incompatible = { } ,
weight = 10 ,
description = " Increases mining speed. " ,
curse = false ,
2020-11-02 17:58:13 +01:00
on_enchant = function ( itemstack , level )
2020-11-02 13:38:17 +01:00
local tool_capabilities = itemstack : get_tool_capabilities ( )
local groupcaps = { }
for group , capability in pairs ( tool_capabilities.groupcaps ) do
local groupname = group .. " _efficiency_ " .. level
capability.times = mcl_autogroup.digtimes [ groupname ]
groupcaps [ groupname ] = capability
end
tool_capabilities.groupcaps = groupcaps
itemstack : get_meta ( ) : set_tool_capabilities ( tool_capabilities )
end ,
2020-11-01 13:44:05 +01:00
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 1 , 61 } , { 11 , 71 } , { 21 , 81 } , { 31 , 91 } , { 41 , 101 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-13 12:21:36 +01:00
-- implemented in mcl_armor
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . feather_falling = {
name = " Feather Falling " ,
max_level = 4 ,
primary = { armor_feet = true } ,
secondary = { } ,
disallow = { non_combat_armor = true } ,
incompatible = { } ,
weight = 5 ,
description = " Reduces fall damage. " , curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 5 , 11 } , { 11 , 17 } , { 17 , 23 } , { 23 , 29 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-02 17:58:13 +01:00
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.fire_aspect = {
2020-11-01 13:44:05 +01:00
name = " Fire Aspect " ,
max_level = 2 ,
primary = { sword = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { } ,
weight = 2 ,
description = " Sets target on fire. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 10 , 61 } , { 30 , 71 } } ,
2020-11-02 17:58:13 +01:00
} ] ] --
2020-11-01 13:44:05 +01:00
2020-11-13 12:21:36 +01:00
-- implemented in mcl_armor
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . fire_protection = {
name = " Fire Protection " ,
max_level = 4 ,
primary = { armor_head = true , armor_torso = true , armor_legs = true , armor_feet = true } ,
secondary = { } ,
disallow = { non_combat_armor = true } ,
incompatible = { blast_protection = true , protection = true , projectile_protection = true } ,
weight = 5 ,
description = " Reduces fire damage. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 10 , 18 } , { 18 , 26 } , { 26 , 34 } , { 34 , 42 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-02 17:58:13 +01:00
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.flame = {
2020-11-01 13:44:05 +01:00
name = " Flame " ,
max_level = 1 ,
primary = { bow = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { } ,
weight = 2 ,
description = " Arrows set target on fire. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 20 , 50 } } ,
2020-11-02 17:58:13 +01:00
} ] ] --
2020-11-01 13:44:05 +01:00
2020-11-06 15:05:31 +01:00
-- implemented in mcl_item_entity
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . fortune = {
name = " Fortune " ,
2020-11-25 12:47:27 +01:00
max_level = 3 ,
2020-11-01 13:44:05 +01:00
primary = { pickaxe = true , shovel = true , axe = true , hoe = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { silk_touch = true } ,
weight = 2 ,
description = " Increases certain block drops. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 15 , 61 } , { 24 , 71 } , { 33 , 81 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-06 13:46:52 +01:00
-- implemented via walkover.register_global
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . frost_walker = {
name = " Frost Walker " ,
max_level = 2 ,
primary = { } ,
secondary = { armor_feet = true } ,
disallow = { non_combat_armor = true } ,
incompatible = { depth_strider = true } ,
weight = 2 ,
description = " Turns water beneath the player into frosted ice and prevents the damage the player would take from standing on magma blocks. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = true ,
power_range_table = { { 10 , 25 } , { 20 , 35 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-05 16:05:42 +01:00
walkover.register_global ( function ( pos , _ , player )
local boots = player : get_inventory ( ) : get_stack ( " armor " , 5 )
local frost_walker = mcl_enchanting.get_enchantment ( boots , " frost_walker " )
if frost_walker <= 0 then
return
end
local radius = frost_walker + 2
local minp = { x = pos.x - radius , y = pos.y , z = pos.z - radius }
local maxp = { x = pos.x + radius , y = pos.y , z = pos.z + radius }
local positions = minetest.find_nodes_in_area_under_air ( minp , maxp , " mcl_core:water_source " )
for _ , p in ipairs ( positions ) do
if vector.distance ( pos , p ) <= radius then
minetest.set_node ( p , { name = " mcl_core:frosted_ice_0 " } )
end
end
end )
2020-11-25 12:47:27 +01:00
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.impaling = {
name = " Impaling " ,
max_level = 5 ,
primary = { trident = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { } ,
weight = 2 ,
description = " Trident deals additional damage to mobs that spawn naturally in the ocean. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
treasure = false ,
power_range_table = { { 1 , 21 } , { 9 , 29 } , { 17 , 37 } , { 25 , 45 } , { 33 , 53 } } ,
} ] ] --
2020-11-01 13:44:05 +01:00
-- implemented in mcl_bows
mcl_enchanting.enchantments . infinity = {
name = " Infinity " ,
max_level = 1 ,
primary = { bow = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { mending = true } ,
weight = 1 ,
description = " Shooting consumes no regular arrows. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 20 , 50 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-04 12:00:42 +01:00
-- implemented via minetest.calculate_knockback
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . knockback = {
name = " Knockback " ,
max_level = 2 ,
primary = { sword = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { } ,
weight = 5 ,
description = " Increases knockback. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 5 , 61 } , { 25 , 71 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-04 12:00:42 +01:00
local old_calculate_knockback = minetest.calculate_knockback
function minetest . calculate_knockback ( player , hitter , time_from_last_punch , tool_capabilities , dir , distance , damage )
local knockback = old_calculate_knockback ( player , hitter , time_from_last_punch , tool_capabilities , dir , distance , damage )
2020-11-06 15:05:31 +01:00
local luaentity
if hitter then
luaentity = hitter : get_luaentity ( )
end
2020-11-04 12:00:42 +01:00
if hitter and hitter : is_player ( ) then
local wielditem = hitter : get_wielded_item ( )
knockback = knockback + 3 * mcl_enchanting.get_enchantment ( wielditem , " knockback " )
2020-11-06 15:05:31 +01:00
elseif luaentity and luaentity._knockback then
knockback = knockback + luaentity._knockback
2020-11-04 12:00:42 +01:00
end
return knockback
end
2020-11-01 13:44:05 +01:00
-- unimplemented
2020-11-25 12:47:27 +01:00
--[[mcl_enchanting.enchantments.looting = {
2020-11-01 13:44:05 +01:00
name = " Looting " ,
max_level = 3 ,
primary = { sword = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { } ,
weight = 2 ,
description = " Increases mob loot. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 15 , 61 } , { 24 , 71 } , { 33 , 81 } } ,
} ] ] --
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.loyalty = {
name = " Loyalty " ,
max_level = 3 ,
primary = { trident = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { riptide = true } ,
weight = 5 ,
description = " Trident returns after being thrown. Higher levels reduce return time. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
treasure = false ,
power_range_table = { { 12 , 50 } , { 19 , 50 } , { 26 , 50 } } ,
} ] ] --
2020-11-01 13:44:05 +01:00
-- unimplemented
2020-11-25 12:47:27 +01:00
--[[mcl_enchanting.enchantments.luck_of_the_sea = {
2020-11-01 13:44:05 +01:00
name = " Luck of the Sea " ,
max_level = 3 ,
primary = { fishing_rod = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { } ,
weight = 2 ,
description = " Increases rate of good loot (enchanting books, etc.) " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 15 , 61 } , { 24 , 71 } , { 33 , 81 } } ,
} ] ] --
2020-11-01 13:44:05 +01:00
2020-11-09 18:59:08 +01:00
-- implemented in mcl_fishing
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . lure = {
name = " Lure " ,
max_level = 3 ,
primary = { fishing_rod = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { } ,
weight = 2 ,
description = " Decreases wait time until fish/junk/loot \" bites \" . " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 15 , 61 } , { 24 , 71 } , { 33 , 81 } } ,
2020-11-01 13:44:05 +01:00
}
-- unimplemented
2020-11-25 12:47:27 +01:00
--[[mcl_enchanting.enchantments.mending = {
2020-11-01 13:44:05 +01:00
name = " Mending " ,
max_level = 1 ,
primary = { } ,
secondary = { armor_head = true , armor_torso = true , armor_legs = true , armor_feet = true , tool = true , weapon = true } ,
2020-11-01 14:23:43 +01:00
disallow = { } ,
2020-11-01 13:44:05 +01:00
incompatible = { infinity = true } ,
weight = 2 ,
description = " Repair the item while gaining XP orbs. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = true ,
2020-11-25 12:47:27 +01:00
treasure = true ,
power_range_table = { { 25 , 75 } } ,
} ] ] --
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.multishot = {
name = " Multishot " ,
max_level = 1 ,
primary = { crossbow = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { piercing = true } ,
weight = 2 ,
description = " Shoot 3 arrows at the cost of one. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
treasure = false ,
power_range_table = { { 20 , 50 } } ,
} ] ] --
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.piercing = {
name = " Piercing " ,
max_level = 4 ,
primary = { crossbow = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { multishot = true } ,
weight = 10 ,
description = " Arrows pass through multiple entities. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
treasure = false ,
power_range_table = { { 1 , 50 } , { 11 , 50 } , { 21 , 50 } , { 31 , 50 } } ,
} ] ] --
2020-11-01 13:44:05 +01:00
2020-11-05 15:25:44 +01:00
-- implemented in mcl_bows
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . power = {
name = " Power " ,
max_level = 5 ,
2020-11-25 12:47:27 +01:00
primary = { bow = true } ,
secondary = { } ,
2020-11-01 13:44:05 +01:00
disallow = { } ,
incompatible = { } ,
weight = 10 ,
description = " Increases arrow damage. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 1 , 16 } , { 11 , 26 } , { 21 , 36 } , { 31 , 46 } , { 41 , 56 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-13 12:21:36 +01:00
-- implemented in mcl_armor
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . projectile_protection = {
name = " Projectile Protection " ,
max_level = 4 ,
primary = { armor_head = true , armor_torso = true , armor_legs = true , armor_feet = true } ,
secondary = { } ,
disallow = { non_combat_armor = true } ,
incompatible = { blast_protection = true , fire_protection = true , protection = true } ,
weight = 5 ,
description = " Reduces projectile damage. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 1 , 16 } , { 11 , 26 } , { 21 , 36 } , { 31 , 46 } , { 41 , 56 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-10 13:58:39 +01:00
-- implemented in mcl_armor
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . protection = {
name = " Protection " ,
max_level = 4 ,
primary = { armor_head = true , armor_torso = true , armor_legs = true , armor_feet = true } ,
secondary = { } ,
disallow = { non_combat_armor = true } ,
incompatible = { blast_protection = true , fire_protection = true , projectile_protection = true } ,
weight = 10 ,
description = " Reduces most types of damage by 4% for each level. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 1 , 12 } , { 12 , 23 } , { 23 , 34 } , { 34 , 45 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-06 15:05:31 +01:00
-- implemented via minetest.calculate_knockback (together with the Knockback enchantment) and mcl_bows
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . punch = {
name = " Punch " ,
max_level = 2 ,
primary = { } ,
secondary = { bow = true } ,
disallow = { } ,
incompatible = { } ,
weight = 2 ,
description = " Increases arrow knockback. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 12 , 37 } , { 32 , 57 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-25 12:47:27 +01:00
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.quick_charge = {
name = " Quick Charge " ,
max_level = 3 ,
primary = { crossbow = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { } ,
weight = 5 ,
description = " Decreases crossbow charging time. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
treasure = false ,
power_range_table = { { 12 , 50 } , { 32 , 50 } , { 52 , 50 } } ,
} ] ] --
2020-11-01 13:44:05 +01:00
-- unimplemented
2020-11-25 12:47:27 +01:00
--[[mcl_enchanting.enchantments.respiration = {
2020-11-01 13:44:05 +01:00
name = " Respiration " ,
max_level = 3 ,
primary = { armor_head = true } ,
secondary = { } ,
disallow = { non_combat_armor = true } ,
incompatible = { } ,
weight = 2 ,
description = " Extends underwater breathing time. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 10 , 40 } , { 20 , 50 } , { 30 , 60 } } ,
} ] ] --
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.riptide = {
name = " Riptide " ,
max_level = 3 ,
primary = { trident = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { channeling = true , loyalty = true } ,
weight = 2 ,
description = " Trident launches player with itself when thrown. Functions only in water or rain. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
treasure = false ,
power_range_table = { { 17 , 50 } , { 24 , 50 } , { 31 , 50 } } ,
} ] ] --
2020-11-01 13:44:05 +01:00
2020-11-02 17:58:13 +01:00
-- implemented via on_enchant
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . sharpness = {
name = " Sharpness " ,
max_level = 5 ,
primary = { sword = true } ,
secondary = { axe = true } ,
disallow = { } ,
2020-11-09 18:59:08 +01:00
incompatible = { bane_of_arthropods = true , smite = true } ,
2020-11-01 13:44:05 +01:00
weight = 5 ,
2020-11-02 17:58:13 +01:00
description = " Increases damage. " ,
2020-11-01 13:44:05 +01:00
curse = false ,
2020-11-09 18:59:08 +01:00
on_enchant = increase_damage ( " fleshy " , 0.5 ) ,
2020-11-01 13:44:05 +01:00
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 1 , 21 } , { 12 , 32 } , { 23 , 43 } , { 34 , 54 } , { 45 , 65 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-02 19:09:23 +01:00
-- implemented in mcl_item_entity
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . silk_touch = {
name = " Silk Touch " ,
max_level = 1 ,
primary = { pickaxe = true , shovel = true , axe = true , hoe = true } ,
secondary = { shears = true } ,
disallow = { } ,
incompatible = { fortune = true } ,
weight = 1 ,
description = " Mined blocks drop themselves. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 15 , 61 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-09 18:59:08 +01:00
-- implemented via on_enchant and additions in mobs_mc
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . smite = {
name = " Smite " ,
max_level = 5 ,
primary = { sword = true } ,
secondary = { axe = true } ,
disallow = { } ,
2020-11-09 18:59:08 +01:00
incompatible = { bane_of_arthropods = true , sharpness = true } ,
2020-11-01 13:44:05 +01:00
weight = 5 ,
description = " Increases damage to undead mobs. " ,
curse = false ,
2020-11-09 18:59:08 +01:00
on_enchant = increase_damage ( " undead " , 2.5 ) ,
2020-11-01 13:44:05 +01:00
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 5 , 25 } , { 13 , 33 } , { 21 , 41 } , { 29 , 49 } , { 37 , 57 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-09 10:50:27 +01:00
-- implemented in mcl_playerplus
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . soul_speed = {
name = " Soul Speed " ,
max_level = 3 ,
primary = { } ,
secondary = { armor_feet = true } ,
disallow = { non_combat_armor = true } ,
incompatible = { frost_walker = true } ,
weight = 2 ,
2020-11-04 11:29:44 +01:00
description = " Increases walking speed on soul sand. " ,
2020-11-01 13:44:05 +01:00
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = true ,
power_range_table = { { 10 , 25 } , { 20 , 35 } , { 30 , 45 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-02 17:58:13 +01:00
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.sweeping_edge = {
2020-11-01 13:44:05 +01:00
name = " Sweeping Edge " ,
max_level = 3 ,
primary = { sword = true } ,
secondary = { } ,
disallow = { } ,
incompatible = { } ,
weight = 2 ,
description = " Increases sweeping attack damage. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 5 , 20 } , { 14 , 29 } , { 23 , 38 } } ,
2020-11-02 17:58:13 +01:00
} ] ] --
2020-11-01 13:44:05 +01:00
2020-11-13 12:21:36 +01:00
-- implemented in mcl_armor
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . thorns = {
name = " Thorns " ,
max_level = 3 ,
primary = { armor_head = true } ,
secondary = { armor_torso = true , armor_legs = true , armor_feet = true } ,
disallow = { non_combat_armor = true } ,
incompatible = { blast_protection = true , fire_protection = true , projectile_protection = true } ,
weight = 1 ,
description = " Reflects some of the damage taken when hit, at the cost of reducing durability with each proc. " ,
curse = false ,
on_enchant = function ( ) end ,
requires_tool = false ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 10 , 61 } , { 30 , 71 } , { 50 , 81 } } ,
2020-11-01 13:44:05 +01:00
}
2020-11-02 17:38:51 +01:00
-- for tools & weapons implemented via on_enchant; for bows implemented in mcl_bows; for armor implemented in mcl_armor and mcl_tt; for fishing rods implemented in mcl_fishing
2020-11-01 13:44:05 +01:00
mcl_enchanting.enchantments . unbreaking = {
name = " Unbreaking " ,
max_level = 3 ,
primary = { armor_head = true , armor_torso = true , armor_legs = true , armor_feet = true , pickaxe = true , shovel = true , axe = true , hoe = true , sword = true , fishing_rod = true , bow = true } ,
secondary = { tool = true } ,
disallow = { non_combat_armor = true } ,
incompatible = { } ,
weight = 5 ,
description = " Increases item durability. " ,
curse = false ,
2020-11-02 17:58:13 +01:00
on_enchant = function ( itemstack , level )
local tool_capabilities = itemstack : get_tool_capabilities ( )
for group , capability in pairs ( tool_capabilities.groupcaps ) do
2020-11-02 13:38:17 +01:00
capability.uses = capability.uses * ( 1 + level )
end
2020-11-02 17:58:13 +01:00
tool_capabilities.punch_attack_uses = tool_capabilities.punch_attack_uses * ( 1 + level )
itemstack : get_meta ( ) : set_tool_capabilities ( tool_capabilities )
2020-11-02 13:38:17 +01:00
end ,
2020-11-01 13:44:05 +01:00
requires_tool = true ,
2020-11-25 12:47:27 +01:00
treasure = false ,
power_range_table = { { 5 , 61 } , { 13 , 71 } , { 21 , 81 } } ,
2020-11-01 13:44:05 +01:00
}