From 3d94a866438ee932fbc78bab82c7d5f726a24b2c Mon Sep 17 00:00:00 2001 From: npx Date: Tue, 10 May 2016 23:23:41 +0200 Subject: [PATCH] Modified the respawn function and added the do_custom for the "hydra procedure" --- masticone.lua | 83 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 25 deletions(-) diff --git a/masticone.lua b/masticone.lua index 9caadc3..b6810bd 100644 --- a/masticone.lua +++ b/masticone.lua @@ -14,7 +14,7 @@ nssm:register_mob("nssm:masticone", { rotate = 270, walk_velocity = 1.5, run_velocity = 2.5, - sounds = { + sounds = { random = "masticone", }, damage = 5, @@ -36,9 +36,9 @@ nssm:register_mob("nssm:masticone", { armor = 60, drawtype = "front", water_damage = 0, - lava_damage = 5, + lava_damage = 0, floats=0, - hydra = true, + --hydra = true, light_damage = 0, on_rightclick = nil, attack_type = "dogfight", @@ -56,27 +56,60 @@ nssm:register_mob("nssm:masticone", { punch_end = 180, }, on_die = function(self, pos) - core.after(2, function() - minetest.add_particlespawner( - 200, --amount - 0.1, --time - {x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos - {x=pos.x+1, y=pos.y+1, z=pos.z+1}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=1, y=1, z=1}, --maxvel - {x=-0.5,y=5,z=-0.5}, --minacc - {x=0.5,y=5,z=0.5}, --maxacc - 0.1, --minexptime - 1, --maxexptime - 3, --minsize - 4, --maxsize - false, --collisiondetection - "tnt_smoke.png" --texture - ) - local pos1 = {x=pos.x+math.random(-1,1), y=pos.y+0.5, z=pos.z+math.random(-1,1)} - local pos2 = {x=pos.x+math.random(-1,1), y=pos.y+0.5, z=pos.z+math.random(-1,1)} - minetest.add_entity(pos1, "nssm:masticone") - minetest.add_entity(pos2, "nssm:masticone") - end) + core.after(2, function() + minetest.add_particlespawner( + 200, --amount + 0.1, --time + {x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos + {x=pos.x+1, y=pos.y+1, z=pos.z+1}, --maxpos + {x=-0, y=-0, z=-0}, --minvel + {x=1, y=1, z=1}, --maxvel + {x=-0.5,y=5,z=-0.5}, --minacc + {x=0.5,y=5,z=0.5}, --maxacc + 0.1, --minexptime + 1, --maxexptime + 3, --minsize + 4, --maxsize + false, --collisiondetection + "tnt_smoke.png" --texture + ) + for i = 1,2 do + local pos = {x=pos.x+math.random(-1,1), y=pos.y+0.5, z=pos.z+math.random(-1,1)} + local n = minetest.env:get_node(pos).name + if n == "air" then + minetest.add_entity(pos, "nssm:masticone") + end + end) + end, + + do_custom = function (self) + local pos = self.object:getpos() + local n = minetest.env:get_node(pos).name + + if n == "default:lava_source" or n == "default:lava_flowing" then + self.object:set_hp(self.object:get_hp()-5) + if self.object:get_hp() <=0 then + + for _,drop in pairs(self.drops) do + + if math.random(1, drop.chance) == 1 then + + obj = minetest.add_item(pos, + ItemStack(drop.name .. " " + .. math.random(drop.min, drop.max))) + + if obj then + + obj:setvelocity({ + x = math.random(-1, 1), + y = 6, + z = math.random(-1, 1) + }) + end + end + end + self.object:remove() + end + end end, })