diff --git a/depends.txt b/depends.txt index 7e7f0bb..412c068 100644 --- a/depends.txt +++ b/depends.txt @@ -6,4 +6,5 @@ farming? lightning? pmobs? hud_hunger? -moreplants? \ No newline at end of file +moreplants? +playereffects? \ No newline at end of file diff --git a/init.lua b/init.lua index 4110cc7..65f073b 100644 --- a/init.lua +++ b/init.lua @@ -1125,6 +1125,97 @@ minetest.register_entity("witchcraft:smoke_splash", { end, }) +--player effects + +playereffects.register_effect_type("potion_speed_lv1", "High speed", nil, {"speed"}, + function(player) + player:set_physics_override(2,nil,nil) + end, + + function(effect, player) + player:set_physics_override(1,nil,nil) + end, + true +) + +playereffects.register_effect_type("potion_speed_lv2", "High speed", nil, {"speed"}, + function(player) + player:set_physics_override(2.5,nil,nil) + end, + + function(effect, player) + player:set_physics_override(1,nil,nil) + end, + true +) + +playereffects.register_effect_type("potion_jump_lvx", "High Jump", nil, {"jump"}, + function(player) + player:set_physics_override(nil,1.5,0.8) + end, + + function(effect, player) + player:set_physics_override(nil,1,1) + end, + true +) + +playereffects.register_effect_type("potion_antigrav_lvx", "Light weight", nil, {"gravity"}, + function(player) + player:set_physics_override(nil,nil,0.1) + end, + + function(effect, player) + player:set_physics_override(nil,nil,1) + end, + true +) + +playereffects.register_effect_type("potion_slow_lv1", "Low speed", nil, {"speed"}, + function(player) + player:set_physics_override(0.5,nil,nil) + end, + + function(effect, player) + player:set_physics_override(1,nil,nil) + end, + true +) + +playereffects.register_effect_type("potion_slow_lv2", "Low speed", nil, {"speed"}, + function(player) + player:set_physics_override(0.4,nil,nil) + end, + + function(effect, player) + player:set_physics_override(1,nil,nil) + end, + true +) + +playereffects.register_effect_type("potion_swim_lv1", "Fast Swim", nil, {"swim"}, + function(player) + player:set_physics_override(3,nil,nil) + end, + + function(effect, player) + player:set_physics_override(1,nil,nil) + end, + true +) + +playereffects.register_effect_type("potion_swim_lv2", "Dive", nil, {"swim"}, + function(player) + player:set_physics_override(3,nil,4) + end, + + function(effect, player) + player:set_physics_override(1,nil,1) + end, + true +) + + --splash potions minetest.register_node("witchcraft:splash_orange", { @@ -2542,29 +2633,7 @@ minetest.register_node("witchcraft:potion_magenta", { on_use = function(item, user, pointed_thing) local player = user:get_player_name() local breath_change = user:set_breath(5) - local effect = user:set_physics_override({ - - speed = 2.0, -- multiplier to default value - jump = 1, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - local reset = minetest.after(10, function() - if not user == nil then - user:set_breath(11) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - end) + playereffects.apply_effect_type("potion_speed_lv1", 10, user) local playerpos = user:getpos(); minetest.add_particlespawner( @@ -2607,29 +2676,7 @@ minetest.register_node("witchcraft:potion_magenta_2", { on_use = function(item, user, pointed_thing) local player = user:get_player_name() local breath_change = user:set_breath(5) - local effect = user:set_physics_override({ - - speed = 2.5, -- multiplier to default value - jump = 1, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - local reset = minetest.after(10, function() - if not user == nil then - user:set_breath(11) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - end) + playereffects.apply_effect_type("potion_speed_lv2", 10, user) local playerpos = user:getpos(); minetest.add_particlespawner( @@ -2672,29 +2719,7 @@ minetest.register_node("witchcraft:potion_cyan", { on_use = function(item, user, pointed_thing) local player = user:get_player_name() local breath_change = user:set_breath(5) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1, -- multiplier to default value - gravity = 0.1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - local reset = minetest.after(10, function() - if not user == nil then - user:set_breath(11) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - end) + playereffects.apply_effect_type("potion_antigrav_lvx", 10, user) local playerpos = user:getpos(); minetest.add_particlespawner( 5, --amount @@ -2777,29 +2802,7 @@ minetest.register_node("witchcraft:potion_cyan_2", { on_use = function(item, user, pointed_thing) local player = user:get_player_name() local breath_change = user:set_breath(5) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1, -- multiplier to default value - gravity = 0.1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - local reset = minetest.after(20, function() - if not user == nil then - user:set_breath(11) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - end) + playereffects.apply_effect_type("potion_antigrav_lvx", 20, user) local playerpos = user:getpos(); minetest.add_particlespawner( 5, --amount @@ -2841,29 +2844,7 @@ minetest.register_node("witchcraft:potion_green2", { on_use = function(item, user, pointed_thing) local player = user:get_player_name() local breath_change = user:set_breath(5) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.5, -- multiplier to default value - gravity = 0.8, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - local reset = minetest.after(6, function() - if not user == nil then - user:set_breath(11) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - end) + playereffects.apply_effect_type("potion_jump_lvx", 6, user) local playerpos = user:getpos(); minetest.add_particlespawner( 5, --amount @@ -2945,29 +2926,7 @@ minetest.register_node("witchcraft:potion_green2_2", { on_use = function(item, user, pointed_thing) local player = user:get_player_name() local breath_change = user:set_breath(5) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.5, -- multiplier to default value - gravity = 0.8, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - local reset = minetest.after(10, function() - if not user == nil then - user:set_breath(11) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - end) + playereffects.apply_effect_type("potion_jump_lvx", 10, user) local playerpos = user:getpos(); minetest.add_particlespawner( 5, --amount @@ -3009,29 +2968,7 @@ minetest.register_node("witchcraft:potion_redbrown", { on_use = function(item, user, pointed_thing) local player = user:get_player_name() local breath_change = user:set_breath(5) - local effect = user:set_physics_override({ - - speed = 0.5, -- multiplier to default value - jump = 1, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - local reset = minetest.after(10, function() - if not user == nil then - user:set_breath(11) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - end) + playereffects.apply_effect_type("potion_slow_lv1", 11, user) local playerpos = user:getpos(); minetest.add_particlespawner( 5, --amount @@ -3073,29 +3010,7 @@ minetest.register_node("witchcraft:potion_redbrown_2", { on_use = function(item, user, pointed_thing) local player = user:get_player_name() local breath_change = user:set_breath(5) - local effect = user:set_physics_override({ - - speed = 0.4, -- multiplier to default value - jump = 1, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - local reset = minetest.after(15, function() - if not user == nil then - user:set_breath(11) - local effect = user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - end) + playereffects.apply_effect_type("potion_slow_lv2", 15, user) local playerpos = user:getpos(); minetest.add_particlespawner( 5, --amount @@ -3138,29 +3053,7 @@ minetest.register_node("witchcraft:potion_blue2", { local player = user:get_player_name() local breath = user:get_breath() if breath <= 10 then - local spd = user:set_physics_override({ - - speed = 3, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1.0, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - local reset = minetest.after(20, function() - if not user == nil then - user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1.0, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - end) + playereffects.apply_effect_type("potion_swim_lv1", 15, user) local playerpos = user:getpos(); minetest.add_particlespawner( 5, --amount @@ -3181,6 +3074,7 @@ minetest.register_node("witchcraft:potion_blue2", { item:replace("vessels:glass_bottle") return item end + end }) minetest.register_node("witchcraft:potion_blue2_2", { @@ -3203,29 +3097,7 @@ minetest.register_node("witchcraft:potion_blue2_2", { local player = user:get_player_name() local breath = user:get_breath() if breath <= 10 then - local spd = user:set_physics_override({ - - speed = 3, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 4.0, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - local reset = minetest.after(15, function() - if not user == nil then - user:set_physics_override({ - - speed = 1.0, -- multiplier to default value - jump = 1.0, -- multiplier to default value - gravity = 1.0, -- multiplier to default value - sneak = true, -- whether player can sneak - sneak_glitch = false, -- whether player can use the sneak glitch - - }) - end - end) + playereffects.apply_effect_type("potion_swim_lv2", 15, user) local playerpos = user:getpos(); minetest.add_particlespawner( 5, --amount @@ -3246,6 +3118,7 @@ minetest.register_node("witchcraft:potion_blue2_2", { item:replace("vessels:glass_bottle") return item end + end }) --invisibility potion by Tenplus1(DWTFYWT V2), see darkpurple potion for on_use effect @@ -3301,6 +3174,62 @@ invisible = function(player, toggle) end +--decorative nodes + +minetest.register_node("witchcraft:mortar", { + description = "mortar and pestle", + tiles = { + "default_stone.png", + "default_stone.png", + "default_stone.png", + "default_stone.png", + "default_stone.png", + "default_stone.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.1875, -0.4375, -0.1875, 0.1875, -0.375, 0.1875}, -- NodeBox2 + {-0.3125, -0.375, -0.3125, -0.1875, 0.125, 0.3125}, -- NodeBox3 + {0.1875, -0.375, -0.3125, 0.3125, 0.125, 0.3125}, -- NodeBox4 + {-0.3125, -0.375, -0.3125, 0.3125, 0.125, -0.1875}, -- NodeBox5 + {-0.3125, -0.375, 0.1875, 0.3125, 0.125, 0.3125}, -- NodeBox6 + {-0.1875, -0.375, -0.1875, 0.25, -0.0625, 0.1875}, -- NodeBox7 + {-0.3125, -0.5, -0.5, 0.3125, -0.375, -0.375}, -- NodeBox8 + } + }, + groups = {cracky=1, oddly_breakable_by_hand=1} +}) + +minetest.register_node("witchcraft:pentagram", { + description = "pentagram", + drawtype = "signlike", + visual_scale = 3.0, + tiles = {"witchcraft_pentagram.png"}, + inventory_image = "witchcraft_pentagram.png", + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + light_source = 50, + walkable = false, + is_ground_content = true, + selection_box = { + type = "wallmounted", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + on_rightclick = function(pos, node, _) + if minetest.get_modpath("horror") and minetest.get_modpath("mobs") then + minetest.env:add_entity(pos, "horror:werewolf") + end + end, + groups = {cracky=3,dig_immediate=3}, +}) + --other stuff dofile(minetest.get_modpath("witchcraft").."/scrolls.lua") diff --git a/textures/witchcraft_bone.png b/textures/witchcraft_bone.png new file mode 100644 index 0000000..c7b9eef Binary files /dev/null and b/textures/witchcraft_bone.png differ diff --git a/textures/witchcraft_bone_bottle.png b/textures/witchcraft_bone_bottle.png new file mode 100644 index 0000000..d02e6cd Binary files /dev/null and b/textures/witchcraft_bone_bottle.png differ diff --git a/textures/witchcraft_dagger.png b/textures/witchcraft_dagger.png new file mode 100644 index 0000000..efd1b60 Binary files /dev/null and b/textures/witchcraft_dagger.png differ diff --git a/textures/witchcraft_herb_bottle.png b/textures/witchcraft_herb_bottle.png new file mode 100644 index 0000000..fd7e287 Binary files /dev/null and b/textures/witchcraft_herb_bottle.png differ diff --git a/textures/witchcraft_horn.png b/textures/witchcraft_horn.png new file mode 100644 index 0000000..8bfb9d3 Binary files /dev/null and b/textures/witchcraft_horn.png differ diff --git a/textures/witchcraft_medicine_bottle.png b/textures/witchcraft_medicine_bottle.png new file mode 100644 index 0000000..5c3b7bd Binary files /dev/null and b/textures/witchcraft_medicine_bottle.png differ diff --git a/textures/witchcraft_mud_bottle.png b/textures/witchcraft_mud_bottle.png new file mode 100644 index 0000000..3ebaae5 Binary files /dev/null and b/textures/witchcraft_mud_bottle.png differ diff --git a/textures/witchcraft_pentagram.png b/textures/witchcraft_pentagram.png new file mode 100644 index 0000000..761e0b0 Binary files /dev/null and b/textures/witchcraft_pentagram.png differ diff --git a/textures/witchcraft_pot_ui.png b/textures/witchcraft_pot_inv.png similarity index 100% rename from textures/witchcraft_pot_ui.png rename to textures/witchcraft_pot_inv.png diff --git a/textures/witchcraft_slime_bottle.png b/textures/witchcraft_slime_bottle.png new file mode 100644 index 0000000..b0ee24e Binary files /dev/null and b/textures/witchcraft_slime_bottle.png differ diff --git a/textures/witchcraft_small_bottle.png b/textures/witchcraft_small_bottle.png new file mode 100644 index 0000000..d0eb0c8 Binary files /dev/null and b/textures/witchcraft_small_bottle.png differ diff --git a/textures/witchcraft_tooth.png b/textures/witchcraft_tooth.png new file mode 100644 index 0000000..50ac6b2 Binary files /dev/null and b/textures/witchcraft_tooth.png differ diff --git a/textures/witchcraft_water_bottle.png b/textures/witchcraft_water_bottle.png new file mode 100644 index 0000000..785ad7d Binary files /dev/null and b/textures/witchcraft_water_bottle.png differ