From 9b769364489d7e1c8c4476d52b73e42f57c776b5 Mon Sep 17 00:00:00 2001 From: cale Date: Sun, 20 Nov 2016 12:07:07 +0100 Subject: [PATCH] fixed legendary items + added copper sword --- mods/default/nodes.lua | 1 - mods/legendary_items/init.lua | 139 ++++++------------- mods/skills/init.lua | 24 +++- mods/skills/textures/skills_sword_copper.png | Bin 0 -> 282 bytes 4 files changed, 67 insertions(+), 97 deletions(-) create mode 100644 mods/skills/textures/skills_sword_copper.png diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 49b56d8..a7db5a3 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -888,7 +888,6 @@ minetest.register_node("default:quartz", { -- rail - minetest.register_node("default:rail", { description = "Rail", drawtype = "raillike", diff --git a/mods/legendary_items/init.lua b/mods/legendary_items/init.lua index 795b754..c9f33ef 100644 --- a/mods/legendary_items/init.lua +++ b/mods/legendary_items/init.lua @@ -1,32 +1,40 @@ legendary_items = {} legendary_items.rare_weapons = {} -legendary_items.register_rare_weapon = function(name, forlevel, def) +legendary_items.register_rare_weapon = function(name, level, def) + if not def.damage then + if def.damage_m and def.damage_d then + def.damage = math.floor(skills.get_dmg(level)*def.damage_m-def.damage_d) + end + end + table.insert(legendary_items.rare_weapons, name) minetest.register_tool(":legendary_items:"..name, { - description = def.description.."\n For Level: ".. tostring(forlevel).. "\n Damage: " .. tostring(def.damage+skills.get_dmg(forlevel)) .. "\n Rare Item", + description = def.description.."\n Level: ".. tostring(level).. "\n Damage: " .. def.damage .. "\n Skill: " .. tostring(def.skill) .. "\n Rare Item", inventory_image = def.inventory_image, wield_scale = def.wield_scale, tool_capabilities = { max_drop_level=3, - damage_groups = {fleshy=def.damage+skills.get_dmg(forlevel)}, + damage_groups = {fleshy=def.damage+skills.get_dmg(level)}, }, + skill = def.skill, on_use = function(itemstack, user, pointed_thing) if user == nil then return end if pointed_thing.type == "object" then - if xp.player_levels[user:get_player_name()] and xp.player_levels[user:get_player_name()] > forlevel-1 then + if skills.lvls[user:get_player_name()] and skills.lvls[user:get_player_name()][def.skill] > level - 1 then pointed_thing.ref:punch(user, 10,minetest.registered_tools[itemstack:get_name()].tool_capabilities) itemstack:add_wear(300) print("[info]" .. user:get_player_name() .. " is fighting!") else - cmsg.push_message_player(user, "[info] You have to be level "..tostring(forlevel).. " to use this weapon!") - end + cmsg.push_message_player(user, "[info] You have to be " .. def.skill .. " level ".. tostring(level) .. " to use this weapon!") + end return itemstack end end }) + table.insert(def.materials, "default:ruby") blueprint.register_blueprint(name, { - description = def.description .. "\n For Level: ".. tostring(forlevel).. "\n Damage: " .. tostring(def.damage+skills.get_dmg(forlevel)) .. "\n Rare Item", + description = def.description .. "\n Level: ".. tostring(level).. "\n Damage: " .. tostring(def.damage+skills.get_dmg(level)) .. "\n Rare Item", materials = def.materials, out = "legendary_items:"..name, color = "yellow" @@ -39,7 +47,9 @@ legendary_items.register_rare_weapon("old_hammer", 3, { description = "Old Hammer", inventory_image = "legendary_items_old_hammer.png", wield_scale = {x = 2, y = 2, z =1}, - damage = 3, + damage_m = 1.0, + damage_d = -2, + skill = "warrior", materials = {"default:stick", "default:stone"}, }) @@ -47,7 +57,9 @@ legendary_items.register_rare_weapon("old_hammer_lvl_5", 5, { description = "Old Hammer", inventory_image = "legendary_items_old_hammer.png", wield_scale = {x = 2, y = 2, z =1}, - damage = 5, + damage_m = 1.0, + damage_d = -3, + skill = "warrior", materials = {"default:stick", "default:stone", "default:stone"}, }) @@ -55,7 +67,9 @@ legendary_items.register_rare_weapon("old_hammer_lvl_30", 30, { description = "Old Hammer", inventory_image = "legendary_items_old_hammer.png", wield_scale = {x = 2, y = 2, z =1}, - damage = 7, + damage_m = 1.0, + damage_d = -7, + skill = "warrior", materials = {"default:stick", "default:stone", "default:stone"}, }) @@ -63,7 +77,9 @@ legendary_items.register_rare_weapon("old_hammer_lvl_60", 60, { description = "Old Hammer", inventory_image = "legendary_items_old_hammer.png", wield_scale = {x = 2, y = 2, z =1}, - damage = 11, + damage_m = 1.0, + damage_d = -15, + skill = "warrior", materials = {"default:stick", "default:stone", "default:stone"}, }) @@ -71,7 +87,9 @@ legendary_items.register_rare_weapon("old_hammer_lvl_100", 100, { description = "Old Hammer", inventory_image = "legendary_items_old_hammer.png", wield_scale = {x = 2, y = 2, z =1}, - damage = 17, + damage_m = 1.0, + damage_d = -20, + skill = "warrior", materials = {"default:stick", "default:stone", "default:stone"}, }) @@ -80,7 +98,9 @@ legendary_items.register_rare_weapon("old_battle_axe", 3, { description = "Old Battle Axe", inventory_image = "legendary_items_old_battle_axe.png", wield_scale = {x = 1.2, y = 1.2, z =1}, - damage = 3, + damage_m = 1.0, + damage_d = -2, + skill = "warrior", materials = {"default:stick", "default:stone", "default:stone"}, }) @@ -88,7 +108,9 @@ legendary_items.register_rare_weapon("old_battle_axe_lvl_10", 10, { description = "Old Battle Axe", inventory_image = "legendary_items_old_battle_axe.png", wield_scale = {x = 1.2, y = 1.2, z =1}, - damage = 7, + damage_m = 1.0, + damage_d = -4, + skill = "warrior", materials = {"default:stick", "default:stone", "default:stone"}, }) @@ -96,7 +118,9 @@ legendary_items.register_rare_weapon("old_battle_axe_lvl_14", 14, { description = "Old Battle Axe", inventory_image = "legendary_items_old_battle_axe.png", wield_scale = {x = 1.2, y = 1.2, z =1}, - damage = 7, + damage_m = 1.0, + damage_d = -6, + skill = "warrior", materials = {"default:stick", "default:stone", "default:stone"}, }) @@ -104,89 +128,18 @@ legendary_items.register_rare_weapon("sugar_sword_lvl_2", 2, { description = "Sugar Sword", inventory_image = "legendary_items_sugar_sword.png", wield_scale = {x = 1.2, y = 1.2, z =1}, - damage = 2, + damage_m = 1.0, + damage_d = -3, + skill = "warrior", materials = {"default:stick", "farming:sugar"}, }) -legendary_items.register_rare_weapon("sugar_sword_lvl_50", 50, { +legendary_items.register_rare_weapon("sugar_sword_lvl_17", 17, { description = "Sugar Sword", inventory_image = "legendary_items_sugar_sword.png", wield_scale = {x = 1.2, y = 1.2, z =1}, - damage = 7, + damage_m = 1.0, + damage_d = -5, + skill = "warrior", materials = {"default:stick", "farming:sugar"}, }) - --- super rare - -minetest.register_craftitem("legendary_items:paper", { - description = "The Legendary Paper", - inventory_image = "legendary_items_paper.png", -}) - -minetest.register_craftitem("legendary_items:paper_green", { - description = "Green Paper (rare)", - inventory_image = "legendary_items_paper_green.png", -}) - -minetest.register_craftitem("legendary_items:teleporting", { - description = "Stick of Teleporting", - inventory_image = "legendary_items_tp.png", - on_place = function(itemstack, placer, pointed_thing) - if not placer or not placer:is_player() then - return - end - placer:setpos(pointed_thing.above) - minetest.add_particlespawner({ - amount = 50, - time = 1, - minpos = {x=pointed_thing.above.x, y=pointed_thing.above.y, z=pointed_thing.above.z}, - maxpos = {x=pointed_thing.above.x, y=pointed_thing.above.y, z=pointed_thing.above.z}, - minvel = {x=-2, y=-2, z=-2}, - maxvel = {x=2, y=4, z=2}, - minacc = {x=-2, y=-2, z=-2}, - maxacc = {x=2, y=4, z=2}, - minexptime = 1, - maxexptime = 1, - minsize = 1, - maxsize = 1, - collisiondetection = false, - vertical = false, - texture = "heart.png", - }) - end, -}) - -minetest.register_tool("legendary_items:sword", { - description = "The Legendary Sword", - inventory_image = "legendary_items_sword.png", - wield_scale = {x = 2, y=2, z = 1}, - tool_capabilities = { - max_drop_level=3, - damage_groups = {fleshy=50}, - }, - on_place = function(itemstack, placer, pointed_thing) - if not placer or not placer:is_player() then - return - end - placer:set_hp(placer:get_hp()+8) - minetest.add_particlespawner({ - amount = 50, - time = 1, - minpos = {x=pointed_thing.above.x, y=pointed_thing.above.y, z=pointed_thing.above.z}, - maxpos = {x=pointed_thing.above.x, y=pointed_thing.above.y, z=pointed_thing.above.z}, - minvel = {x=-2, y=-2, z=-2}, - maxvel = {x=2, y=4, z=2}, - minacc = {x=-2, y=-2, z=-2}, - maxacc = {x=2, y=4, z=2}, - minexptime = 1, - maxexptime = 1, - minsize = 1, - maxsize = 1, - collisiondetection = false, - vertical = false, - texture = "heart.png", - }) - end, -}) - - diff --git a/mods/skills/init.lua b/mods/skills/init.lua index e203026..92bf11b 100644 --- a/mods/skills/init.lua +++ b/mods/skills/init.lua @@ -53,6 +53,7 @@ function skills.register_weapon(name, fromLevel, levels, def) def.damage = math.floor(skills.get_dmg(fromLevel)*def.damage_m-def.damage_d) end end + for i = fromLevel, levels, 1 do minetest.register_tool("skills:"..name .. "_lvl_" .. tostring(i), { description = def.description.."\n Level: ".. tostring(i).. "\n Damage: " .. tostring(def.damage+ i-fromLevel) .." \n Skill: " .. def.skill, @@ -77,11 +78,13 @@ function skills.register_weapon(name, fromLevel, levels, def) end end }) + minetest.register_craft({ output = "skills:"..name .. "_lvl_" .. tostring(i), recipe = {"skills:"..name .. "_lvl_" .. tostring(i), "skills:"..name .. "_lvl_" ..tostring(i)}, type = "toolrepair", }) + if i < levels then minetest.register_craft({ output = "skills:"..name .. "_lvl_" .. tostring(i+1), @@ -91,6 +94,7 @@ function skills.register_weapon(name, fromLevel, levels, def) }) end end + if def.recipe then minetest.register_craft({ output = "skills:"..name .. "_lvl_" .. tostring(fromLevel), @@ -289,7 +293,7 @@ skills.register_tool("shield", 5, 5, { wield_scale = {x = 2, y=2, z = 1}, skill = "warrior", on_use = function(itemstack, user, pointed_thing, level) - user:set_armor_groups({friendly = 0}) + user:set_armor_groups({friendly = 30}) user:set_physics_override({ speed = 0.3, }) @@ -308,7 +312,7 @@ skills.register_tool("shield", 5, 5, { end }) -skills.register_weapon("sword",20, 30, { +skills.register_weapon("sword", 10, 20, { description = "Sword", inventory_image = "skills_sword.png", wield_scale = {x = 1.5, y=1.5, z = 1}, @@ -322,8 +326,22 @@ skills.register_weapon("sword",20, 30, { } }) +skills.register_weapon("sword_copper", 17, 30, { + description = "Copper Sword", + inventory_image = "skills_sword_copper.png", + wield_scale = {x = 1.5, y=1.5, z = 1}, + damage_m = 1.0, + damage_d = -1, + skill = "warrior", + recipe = { + {"", "default:blade", ""}, + {"", "default:string_strong", ""}, + {"", "furnace:copper_rod", ""}, + } +}) + skills.register_tool("bow", 1, 30, { - description = "Bow", + description = "Wooden Bow", inventory_image = "skills_bow.png", wield_image = "skills_bow_wield.png", wield_scale = {x = 2.5, y=2.5, z = 1}, diff --git a/mods/skills/textures/skills_sword_copper.png b/mods/skills/textures/skills_sword_copper.png new file mode 100644 index 0000000000000000000000000000000000000000..33c87cddd10c615c2bd73dbdb20e99afd0a90845 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNw+J`0^nEo`Q=pJ!iEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8afOr;B5V#p&b(366sQ*B1U4_t*P<{s0iT^gZ)`Ki{C{-;X(s zATTlJtXbaC9u>(3U*n5x4=(vkVf