161 lines
4.6 KiB
Lua
161 lines
4.6 KiB
Lua
|
local S = minetest.get_translator("mcl_armor")
|
||
|
|
||
|
mcl_enchanting.enchantments.protection = {
|
||
|
name = S("Protection"),
|
||
|
max_level = 4,
|
||
|
primary = {armor_points = true},
|
||
|
secondary = {},
|
||
|
disallow = {non_combat_armor = true},
|
||
|
incompatible = {blast_protection = true, fire_protection = true, projectile_protection = true},
|
||
|
weight = 10,
|
||
|
description = S("Reduces most types of damage by 4% for each level."),
|
||
|
curse = false,
|
||
|
on_enchant = function() end,
|
||
|
requires_tool = false,
|
||
|
treasure = false,
|
||
|
power_range_table = {{1, 12}, {12, 23}, {23, 34}, {34, 45}},
|
||
|
inv_combat_tab = true,
|
||
|
inv_tool_tab = false,
|
||
|
}
|
||
|
|
||
|
mcl_enchanting.enchantments.blast_protection = {
|
||
|
name = S("Blast Protection"),
|
||
|
max_level = 4,
|
||
|
primary = {armor_points = true},
|
||
|
secondary = {},
|
||
|
disallow = {},
|
||
|
incompatible = {fire_protection = true, protection = true, projectile_protection = true},
|
||
|
weight = 2,
|
||
|
description = S("Reduces explosion damage and knockback."),
|
||
|
curse = false,
|
||
|
on_enchant = function() end,
|
||
|
requires_tool = false,
|
||
|
treasure = false,
|
||
|
power_range_table = {{5, 13}, {13, 21}, {21, 29}, {29, 37}},
|
||
|
inv_combat_tab = true,
|
||
|
inv_tool_tab = false,
|
||
|
}
|
||
|
|
||
|
mcl_enchanting.enchantments.fire_protection = {
|
||
|
name = S("Fire Protection"),
|
||
|
max_level = 4,
|
||
|
primary = {armor_points = true},
|
||
|
secondary = {},
|
||
|
disallow = {},
|
||
|
incompatible = {blast_protection = true, protection = true, projectile_protection = true},
|
||
|
weight = 5,
|
||
|
description = S("Reduces fire damage."),
|
||
|
curse = false,
|
||
|
on_enchant = function() end,
|
||
|
requires_tool = false,
|
||
|
treasure = false,
|
||
|
power_range_table = {{10, 18}, {18, 26}, {26, 34}, {34, 42}},
|
||
|
inv_combat_tab = true,
|
||
|
inv_tool_tab = false,
|
||
|
}
|
||
|
|
||
|
mcl_enchanting.enchantments.projectile_protection = {
|
||
|
name = S("Projectile Protection"),
|
||
|
max_level = 4,
|
||
|
primary = {armor_points = true},
|
||
|
secondary = {},
|
||
|
disallow = {},
|
||
|
incompatible = {blast_protection = true, fire_protection = true, protection = true},
|
||
|
weight = 5,
|
||
|
description = S("Reduces projectile damage."),
|
||
|
curse = false,
|
||
|
on_enchant = function() end,
|
||
|
requires_tool = false,
|
||
|
treasure = false,
|
||
|
power_range_table = {{1, 16}, {11, 26}, {21, 36}, {31, 46}, {41, 56}},
|
||
|
inv_combat_tab = true,
|
||
|
inv_tool_tab = false,
|
||
|
}
|
||
|
|
||
|
mcl_enchanting.enchantments.feather_falling = {
|
||
|
name = S("Feather Falling"),
|
||
|
max_level = 4,
|
||
|
primary = {armor_feet = true},
|
||
|
secondary = {},
|
||
|
disallow = {non_combat_armor = true},
|
||
|
incompatible = {},
|
||
|
weight = 5,
|
||
|
description = S("Reduces fall damage."),curse = false,
|
||
|
on_enchant = function() end,
|
||
|
requires_tool = false,
|
||
|
treasure = false,
|
||
|
power_range_table = {{5, 11}, {11, 17}, {17, 23}, {23, 29}},
|
||
|
inv_combat_tab = true,
|
||
|
inv_tool_tab = false,
|
||
|
}
|
||
|
|
||
|
mcl_enchanting.enchantments.thorns = {
|
||
|
name = S("Thorns"),
|
||
|
max_level = 3,
|
||
|
primary = {armor_points = true},
|
||
|
secondary = {},
|
||
|
disallow = {},
|
||
|
incompatible = {},
|
||
|
weight = 1,
|
||
|
description = S("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,
|
||
|
treasure = false,
|
||
|
power_range_table = {{10, 61}, {30, 71}, {50, 81}},
|
||
|
inv_combat_tab = true,
|
||
|
inv_tool_tab = false,
|
||
|
}
|
||
|
|
||
|
mcl_enchanting.enchantments.curse_of_binding = {
|
||
|
name = S("Curse of Binding"),
|
||
|
max_level = 1,
|
||
|
primary = {},
|
||
|
secondary = {armor = true},
|
||
|
disallow = {},
|
||
|
incompatible = {},
|
||
|
weight = 1,
|
||
|
description = S("Item cannot be removed from armor slots except due to death, breaking or in Creative Mode."),
|
||
|
curse = true,
|
||
|
on_enchant = function() end,
|
||
|
requires_tool = false,
|
||
|
treasure = true,
|
||
|
power_range_table = {{25, 50}},
|
||
|
inv_combat_tab = true,
|
||
|
inv_tool_tab = false,
|
||
|
}
|
||
|
|
||
|
mcl_enchanting.enchantments.frost_walker = {
|
||
|
name = S("Frost Walker"),
|
||
|
max_level = 2,
|
||
|
primary = {},
|
||
|
secondary = {boots = true},
|
||
|
disallow = {non_combat_armor = true},
|
||
|
incompatible = {depth_strider = true},
|
||
|
weight = 2,
|
||
|
description = S("Turns water beneath the player into frosted ice and prevents the damage from magma blocks."),
|
||
|
curse = false,
|
||
|
on_enchant = function() end,
|
||
|
requires_tool = false,
|
||
|
treasure = true,
|
||
|
power_range_table = {{10, 25}, {20, 35}},
|
||
|
inv_combat_tab = true,
|
||
|
inv_tool_tab = false,
|
||
|
}
|
||
|
|
||
|
walkover.register_global(function(pos, _, player)
|
||
|
local boots = MCLItemStack(mcl_object_mgr.get(player):equipment():boots())
|
||
|
if not boots:has_enchantment("frost_walker") then
|
||
|
return
|
||
|
end
|
||
|
local radius = boots:get_enchantment("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)
|