From 695dabe36fd43abd97260cfa9c6b530521fc1a1e Mon Sep 17 00:00:00 2001 From: cale Date: Sat, 26 Mar 2016 13:58:54 +0100 Subject: [PATCH] added skills (WIP) --- mods/blueprint/init.lua | 5 +- mods/classes/skills.lua | 65 +++++++++++++++++- mods/classes/textures/classes_skills_grow.png | Bin 0 -> 278 bytes mods/classes/textures/classes_skills_heal.png | Bin 0 -> 292 bytes .../textures/classes_skills_smooth_fall.png | Bin 0 -> 213 bytes .../textures/classes_skills_super_jump.png | Bin 0 -> 287 bytes mods/default/nodes.lua | 7 +- 7 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 mods/classes/textures/classes_skills_grow.png create mode 100644 mods/classes/textures/classes_skills_heal.png create mode 100644 mods/classes/textures/classes_skills_smooth_fall.png create mode 100644 mods/classes/textures/classes_skills_super_jump.png diff --git a/mods/blueprint/init.lua b/mods/blueprint/init.lua index 1b98684..ad29c22 100644 --- a/mods/blueprint/init.lua +++ b/mods/blueprint/init.lua @@ -24,7 +24,10 @@ minetest.register_craftitem("blueprint:empty", { description = "Empty Blueprint", inventory_image = "blueprint_empty.png", on_place = function(itemstack, placer, pointed_thing) - itemstack:set_name(blueprint.all[math.random(#blueprint.all)]) + placer:get_inventory():add_item("main", blueprint.all[math.random(#blueprint.all)]) + itemstack:take_item() return itemstack end }) + +table.insert(default.treasure_chest_items, "blueprint:empty") diff --git a/mods/classes/skills.lua b/mods/classes/skills.lua index a121422..33f9634 100644 --- a/mods/classes/skills.lua +++ b/mods/classes/skills.lua @@ -4,7 +4,7 @@ classes.skills.all = {} function classes.skills.register_skill(name, def) minetest.register_craftitem("classes:skill_" .. name, { description = def.description, - inventory_image = def.inventory_image, + inventory_image = def.img, class = def.class, on_use = function(itemstack, user, pointed_thing) if user == nil then return end @@ -30,6 +30,67 @@ minetest.register_craftitem("classes:skill_book", { inventory_image = "classes_skills_book.png", on_use = function(itemstack, user, pointed_thing) if user == nil then return end - + user:get_inventory():add_item("main", classes.skills.all[math.random(#classes.skills.all)]) + itemstack:take_item() + return itemstack end }) +table.insert(default.treasure_chest_items, "classes:skill_book") + +classes.skills.register_skill("super_jump", { + description = "Super Jump\nLevel: 15\nClass: thief\nTime: 7.0\nEffect: gravity = 0.1", + img = "classes_skills_super_jump.png", + class = "thief", + lvl = 15, + on_use = function(itemstack, user, pointed_thing) + user:set_physics_override({ + gravity = 0.1, + }) + cmsg.push_message_player(user, "[skill] + super jump") + + minetest.after(7.0, function(player) + if not player or not player:is_player() then + return + end + player:set_physics_override({ + gravity = 1, + }) + cmsg.push_message_player(player, "[skill] - super jump") + end, user) + end +}) + +classes.skills.register_skill("lift", { + description = "Lift\nLevel: 25\nClass: thief\nTime: 2.0\nEffect: gravity = -0.5", + img = "classes_skills_smooth_fall.png", + class = "thief", + lvl = 25, + on_use = function(itemstack, user, pointed_thing) + user:set_physics_override({ + gravity = -0.5, + }) + cmsg.push_message_player(user, "[skill] + lift") + + minetest.after(2.0, function(player) + if not player or not player:is_player() then + return + end + player:set_physics_override({ + gravity = 1, + }) + cmsg.push_message_player(player, "[skill] - lift") + end, user) + end +}) + +classes.skills.register_skill("heal", { + description = "Heal\nLevel: 13\nClass: farmer\nEffect: hp + 4", + img = "classes_skills_heal.png", + class = "farmer", + lvl = 13, + on_use = function(itemstack, user, pointed_thing) + user:set_hp(user:get_hp()+4) + cmsg.push_message_player(user, "[skill][hp] + 4") + end +}) + diff --git a/mods/classes/textures/classes_skills_grow.png b/mods/classes/textures/classes_skills_grow.png new file mode 100644 index 0000000000000000000000000000000000000000..d63946f0f30e071f5337e06f05cd45f2b61bdc27 GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNv!s9qXGdGwOrVftiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8afYr;B5V#p&dP1p)?#Bn0=B{r9}MBk8lE+YUw$=luN&uSsXy zq%QGjo5?4oEV{z2^MWa6qfLcrP4pku*8Z!khlCEf>}FWam><7q=^2Kg7?&xGKVn?| zMl>*fz5GYx&+KLLl2`mc8_!Aq(R81oq_^dWA&-Kos}XNS+9II4Z}2IV+~3As3v>yC Mr>mdKI;Vst08hDH>;M1& literal 0 HcmV?d00001 diff --git a/mods/classes/textures/classes_skills_heal.png b/mods/classes/textures/classes_skills_heal.png new file mode 100644 index 0000000000000000000000000000000000000000..5c688b506a1d9b6468455d89444b101538534ea7 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNvlO?4^s@bjVu3=EC9V-A&iT2ysd*&~&PAz-C8;S2 z<(VZJ3hti10pX2&;y^_`o-U3d7N?UF76=#|k`UZi_TTg3j-=0uZaWx3ob&f9ye6G( zle)yCZ6=?Ta&T$F@&yKSYM*>gZ+m9Hf5WQegXyO)&$s8?)zW#%A?4uHoSL|z`u}3v z#Wz?+PweH@tNVXlU#jZiiRb4f%#t^YE@wOuxHULH;;8kGMH6?$Ik5kj<9C7K$%;jp cX^ViqaGh*^XAL!gjkiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8c$Tr;B5V#p&dP1p)?#Bn0=B{r9}MBk8lE+YUw$=luN&uSsXy xq%QGjo5?4oEV{zIn5{?3z=CIig>fJcLv1?0l;YiQNaiF4hPZ!4!i_^&o3j_=fNeJ#M`|o*iN783Sw;hZi&iVTlUX#wY zNnPU6Hj__EIkY@u`2vH(evXNI*bEi#T-Mqn*=qO%L|6lB|==cAB5;OjN?%racAjZSY9Pz>P-v7_-HOvVc9Y3FOF=Svk YaaQ-F)M^%UppzIpUHx3vIVCg!0Fv-$ga7~l literal 0 HcmV?d00001 diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 4dfe077..c404a4b 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -168,6 +168,7 @@ minetest.register_node("default:box", { }) +default.treasure_chest_items = {"default:dirt", "default:sand", "default:stone_item", "default:coin", "default:coal_lump", "default:wood"} minetest.register_node("default:treasure_chest", { description = "Treasure Chest", tiles = {"default_treasure_chest.png"}, @@ -177,10 +178,10 @@ minetest.register_node("default:treasure_chest", { local meta = minetest.get_meta(pos) local inv = meta:get_inventory() inv:set_size("main", 8*4) - local items = {"default:dirt", "default:sand", "default:iron_lump", "default:stone_item", "default:coin", "default:gold_lump", "default:coal_lump"} - local item = items[math.random(5)] + local items = default.treasure_chest_items + local item = items[math.random(#items)] inv:add_item("main", {name = item, count = math.random(2,10)}) - local item = items[math.random(5)] + local item = items[math.random(#items)] inv:add_item("main", {name = item, count = math.random(2,10)}) end, after_dig_node = function(pos, oldnode, oldmetadata, digger)