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 0000000..d63946f Binary files /dev/null and b/mods/classes/textures/classes_skills_grow.png differ diff --git a/mods/classes/textures/classes_skills_heal.png b/mods/classes/textures/classes_skills_heal.png new file mode 100644 index 0000000..5c688b5 Binary files /dev/null and b/mods/classes/textures/classes_skills_heal.png differ diff --git a/mods/classes/textures/classes_skills_smooth_fall.png b/mods/classes/textures/classes_skills_smooth_fall.png new file mode 100644 index 0000000..e238429 Binary files /dev/null and b/mods/classes/textures/classes_skills_smooth_fall.png differ diff --git a/mods/classes/textures/classes_skills_super_jump.png b/mods/classes/textures/classes_skills_super_jump.png new file mode 100644 index 0000000..b165277 Binary files /dev/null and b/mods/classes/textures/classes_skills_super_jump.png differ 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)