Camas/mods/jewels/jewels.lua

332 lines
9.8 KiB
Lua

--
-- Jeweled tool defs
--
local S = minetest.get_translator("jewels")
-- Automatic jeweling on specific tools
-- Adjectives:
-- * Swift: lower dig speed
-- * Harming: more damage
-- * Durable: more uses
-- * Ranged: higher range
local tool_types = {
pick = {
steel = {
digspeed = {
description = S("Swift Jewel Steel Pickaxe"),
digspeed = -0.1,
},
damage = {
description = S("Harming Jewel Steel Pickaxe"),
overlay = "jewels_jeweled_pick_damage.png",
fleshy = 1,
},
uses = {
description = S("Durable Jewel Steel Pickaxe"),
uses = 3,
},
},
carbon_steel = {
digspeed = {
description = S("Swift Jewel Carbon Steel Pickaxe"),
digspeed = -0.13,
},
damage = {
description = S("Harming Jewel Carbon Steel Pickaxe"),
overlay = "jewels_jeweled_pick_damage.png",
fleshy = 2,
},
uses = {
description = S("Durable Jewel Carbon Steel Pickaxe"),
uses = 5,
},
},
bronze = {
digspeed = {
description = S("Swift Jewel Bronze Pickaxe"),
digspeed = -0.14,
},
damage = {
description = S("Harming Jewel Bronze Pickaxe"),
overlay = "jewels_jeweled_pick_damage.png",
fleshy = 3,
},
uses = {
description = S("Durable Jewel Bronze Pickaxe"),
uses = 6,
},
},
},
shovel = {
steel = {
digspeed = {
description = S("Swift Jewel Steel Shovel"),
digspeed = -0.1,
},
damage = {
description = S("Harming Jewel Steel Shovel"),
overlay = "jewels_jeweled_shovel_damage.png",
fleshy = 1,
},
uses = {
description = S("Durable Jewel Steel Shovel"),
uses = 3,
},
},
carbon_steel = {
digspeed = {
description = S("Swift Jewel Carbon Steel Shovel"),
digspeed = -0.13,
},
damage = {
description = S("Harming Jewel Carbon Steel Shovel"),
overlay = "jewels_jeweled_shovel_damage.png",
fleshy = 2,
},
uses = {
description = S("Durable Jewel Carbon Steel Shovel"),
uses = 5,
},
},
bronze = {
digspeed = {
description = S("Swift Jewel Bronze Shovel"),
digspeed = -0.14,
},
damage = {
description = S("Harming Jewel Bronze Shovel"),
overlay = "jewels_jeweled_shovel_damage.png",
fleshy = 3,
},
uses = {
description = S("Durable Jewel Bronze Shovel"),
uses = 6,
},
},
},
axe = {
steel = {
digspeed = {
description = S("Swift Jewel Steel Axe"),
digspeed = -0.1,
},
damage = {
description = S("Harming Jewel Steel Axe"),
overlay = "jewels_jeweled_axe_damage.png",
fleshy = 2,
},
uses = {
description = S("Durable Jewel Steel Axe"),
uses = 3,
},
},
carbon_steel = {
digspeed = {
description = S("Swift Jewel Carbon Steel Axe"),
digspeed = -0.13,
},
damage = {
description = S("Harming Jewel Carbon Steel Axe"),
overlay = "jewels_jeweled_axe_damage.png",
fleshy = 3,
},
uses = {
description = S("Durable Jewel Carbon Steel Axe"),
uses = 5,
},
},
bronze = {
digspeed = {
description = S("Swift Jewel Bronze Axe"),
digspeed = -0.14,
},
damage = {
description = S("Harming Jewel Bronze Axe"),
overlay = "jewels_jeweled_axe_damage.png",
fleshy = 4,
},
uses = {
description = S("Durable Jewel Bronze Axe"),
uses = 6,
},
},
},
spear = {
steel = {
reach = {
overlay = "jewels_jeweled_spear_reach.png",
overlay_wield = "jewels_jeweled_spear_reach.png^[transformR90",
description = S("Extended Jewel Steel Spear"),
range = 1,
},
damage = {
overlay = "jewels_jeweled_spear_damage.png",
overlay_wield = "jewels_jeweled_spear_damage.png^[transformR90",
description = S("Harming Jewel Steel Spear"),
fleshy = 3,
},
uses = {
overlay = "jewels_jeweled_handle_uses.png",
overlay_wield = "jewels_jeweled_handle_uses.png^[transformR90",
description = S("Durable Jewel Steel Spear"),
uses = 3,
},
},
carbon_steel = {
reach = {
description = S("Extended Jewel Carbon Steel Spear"),
overlay = "jewels_jeweled_spear_reach.png",
overlay_wield = "jewels_jeweled_spear_reach.png^[transformR90",
range = 2,
},
damage = {
description = S("Harming Jewel Carbon Steel Spear"),
overlay = "jewels_jeweled_spear_damage.png",
overlay_wield = "jewels_jeweled_spear_damage.png^[transformR90",
fleshy = 4,
},
uses = {
description = S("Durable Jewel Carbon Steel Spear"),
overlay = "jewels_jeweled_handle_uses.png",
overlay_wield = "jewels_jeweled_handle_uses.png^[transformR90",
uses = 5,
},
},
bronze = {
reach = {
description = S("Extended Jewel Bronze Spear"),
overlay = "jewels_jeweled_spear_reach.png",
overlay_wield = "jewels_jeweled_spear_reach.png^[transformR90",
range = 2,
},
damage = {
description = S("Harming Jewel Bronze Spear"),
overlay = "jewels_jeweled_spear_damage.png",
overlay_wield = "jewels_jeweled_spear_damage.png^[transformR90",
fleshy = 5,
},
uses = {
description = S("Durable Jewel Bronze Spear"),
overlay = "jewels_jeweled_handle_uses.png",
overlay_wield = "jewels_jeweled_handle_uses.png^[transformR90",
uses = 6,
},
},
},
shears = {
steel = {
digspeed = {
overlay = "jewels_jeweled_shears_digspeed.png",
overlay_wield = "jewels_jeweled_shears_digspeed.png^[transformR90",
description = S("Swift Jewel Steel Shears"),
digspeed = -0.1,
},
uses = {
overlay = "jewels_jeweled_shears_uses.png",
overlay_wield = "jewels_jeweled_shears_uses.png^[transformR90",
description = S("Durable Jewel Steel Shears"),
uses = 3,
},
},
carbon_steel = {
digspeed = {
overlay = "jewels_jeweled_shears_digspeed.png",
overlay_wield = "jewels_jeweled_shears_digspeed.png^[transformR90",
description = S("Swift Jewel Carbon Steel Shears"),
digspeed = -0.13,
},
uses = {
overlay = "jewels_jeweled_shears_uses.png",
overlay_wield = "jewels_jeweled_shears_uses.png^[transformR90",
description = S("Durable Jewel Carbon Steel Shears"),
uses = 5,
},
},
bronze = {
digspeed = {
overlay = "jewels_jeweled_shears_digspeed.png",
overlay_wield = "jewels_jeweled_shears_digspeed.png^[transformR90",
description = S("Swift Jewel Bronze Shears"),
digspeed = -0.14,
},
uses = {
overlay = "jewels_jeweled_shears_uses.png",
overlay_wield = "jewels_jeweled_shears_uses.png^[transformR90",
description = S("Durable Jewel Bronze Shears"),
uses = 6,
},
},
}
}
for tool_name, tool_def in pairs(tool_types) do
for material_name, material_def in pairs(tool_def) do
for jewel_name, jewel_def in pairs(material_def) do
local description = jewel_def.description
local overlay = jewel_def.overlay
local overlay_wield = jewel_def.overlay_wield
jewel_def.description = nil
jewel_def.overlay = nil
jewel_def.overlay_wield = nil
if not overlay then
if jewel_name == "damage" then
overlay = "jewels_jeweled_handle_damage.png"
elseif jewel_name == "uses" then
overlay = "jewels_jeweled_handle_uses.png"
end
end
jewels.register_jewel(
"default:" .. tool_name .. "_" .. material_name,
"jewels:" .. tool_name .. "_" .. material_name .. "_" .. jewel_name,
{
stats = jewel_def,
description = description,
overlay = overlay,
overlay_wield = overlay_wield,
}
)
end
end
end
-- Broadswords
jewels.register_jewel(
"default:broadsword",
"jewels:broadsword_jeweled_pommel",
{
description = S("Pommel Jewel Broadsword"),
overlay = "jewels_jeweled_pommel.png",
stats = {
fleshy = 2,
}
})
jewels.register_jewel(
"jewels:broadsword_jeweled_pommel",
"jewels:broadsword_jeweled_pommel_and_guard",
{
description = S("Pommel&Guard Jewel Broadsword"),
overlay = "jewels_jeweled_guard.png",
stats = {
range = 1,
}
})
jewels.register_jewel(
"jewels:broadsword_jeweled_pommel_and_guard",
"jewels:serrated_broadsword",
{
description = S("Serrated Jewel Broadsword"),
overlay = "jewels_jeweled_blade.png",
stats = {
fleshy = 2,
range = 1,
}
})
default.log("jewels", "loaded")