heart entity, xp drops from mobs, midna changes

master
D00Med 2016-12-04 18:01:28 +10:00
parent b9e492a2a9
commit 688405276f
19 changed files with 167 additions and 17 deletions

View File

@ -209,6 +209,30 @@ minetest.register_entity("hyruletools:block_dummy", {
physical = true
})
minetest.register_entity("hyruletools:heart_entity", {
visual = "mesh",
mesh = "heart.b3d",
textures = {"hyruletools_heart.png"},
collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
physical = true,
visual_size = {x=1.5, y=1.5},
on_activate = function(self)
self.object:set_animation({x=2, y=18}, 5, 0)
self.object:setacceleration({x=0, y=-4, z=0})
end,
on_step = function(self)
local pos = self.object:getpos()
local objs = minetest.get_objects_inside_radius(pos, 1)
for _, obj in pairs(objs) do
if obj:is_player() then
local hp = obj:get_hp()
obj:set_hp(hp+5)
self.object:remove()
end
end
end,
})
minetest.register_tool("hyruletools:magglv_n", {
description = "Magnetic Glove (N)",
inventory_image = "hyruletools_magglv_n.png",

Binary file not shown.

View File

@ -66,6 +66,15 @@ mobs:register_mob("mobs_loz:bongobongo", {
{name = "hyruletools:waterstone",
chance = 1, min = 1, max = 1},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(2,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
minetest.env:add_entity(pos, "experience:orb")
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = 5,
lava_damage = 0,
light_damage = 0,

View File

@ -23,11 +23,16 @@ mobs:register_mob("mobs_loz:chuchu", {
run_velocity = 1,
jump = false,
drops = {
{name = "hyruletools:heart",
chance = 1, min = 3, max = 5},
{name = "hyruletools:blue_rupee",
chance = 1, min = 1, max = 3},
chance = 2, min = 1, max = 3},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = -1,
lava_damage = 5,
light_damage = 0,

View File

@ -39,6 +39,13 @@ mobs:register_mob("mobs_loz:deku", {
{name = "hyruletools:green_rupee",
chance = 1, min = 1, max = 9},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = 1,
lava_damage = 1,
light_damage = 0,

View File

@ -26,11 +26,16 @@ mobs:register_mob("mobs_loz:deku_baba", {
run_velocity = 0.05,
jump = false,
drops = {
{name = "hyruletools:heart",
chance = 1, min = 3, max = 5},
{name = "hyruletools:red_rupee",
chance = 1, min = 1, max = 3},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = -1,
lava_damage = 5,
light_damage = 0,

View File

@ -35,6 +35,13 @@ mobs:register_mob("mobs_loz:bdodongo", {
{name = "default:coal_lump",
chance=3, min=1, max=3},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = 5,
lava_damage = 0,
light_damage = 0,
@ -95,6 +102,13 @@ mobs:register_mob("mobs_loz:dodongo", {
{name = "default:coal_lump",
chance=3, min=1, max=3},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = 5,
lava_damage = 0,
light_damage = 0,
@ -176,6 +190,15 @@ mobs:register_mob("mobs_loz:dodongo_boss", {
{name = "hyruletools:foreststone",
chance = 1, min = 1, max = 1},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
minetest.env:add_entity(pos, "experience:orb")
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = 5,
lava_damage = 0,
light_damage = 0,

View File

@ -65,6 +65,13 @@ mobs:register_mob("mobs_loz:ganon", {
{name = "hyruletools:triforce",
chance = 1, min = 1, max = 1},
},
on_die = function(self)
local pos = self.object:getpos()
minetest.env:add_entity(pos, "hyruletools:heart_entity")
minetest.env:add_entity(pos, "hyruletools:heart_entity")
minetest.env:add_entity(pos, "hyruletools:heart_entity")
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = 0,
lava_damage = 0,
light_damage = 0,

View File

@ -32,6 +32,12 @@ mobs:register_mob("mobs_loz:goron", {
{name = "hyruletools:green_rupee",
chance = 1, min = 1, max = 2},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,5) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
end,
water_damage = 1,
lava_damage = 0,
light_damage = 0,

View File

@ -1,6 +1,6 @@
mobs:register_mob("mobs_loz:midna", {
type = "animal",
type = "npc",
passive = false,
attacks_monsters = true,
damage = 4,
@ -9,6 +9,8 @@ mobs:register_mob("mobs_loz:midna", {
hp_min = 50,
hp_max = 85,
armor = 80,
owner = "",
order = "follow",
collisionbox = {-0.3, 0, -0.3, 0.3, 1.5, 0.3},
visual = "mesh",
mesh = "midna.b3d",
@ -58,8 +60,18 @@ mobs:register_mob("mobs_loz:midna", {
"mobs_particle.png" --texture
)
end,
on_rightclick = function(self, clicker)
local player = clicker:get_player_name()
if self.order == "follow" then
self.order = "stand"
minetest.chat_send_player(player, "I will stay here")
else
self.order = "follow"
minetest.chat_send_player(player, "Midna is wandering")
end
end,
})
mobs:register_spawn("mobs_loz:midna", {"default:dirt_with_grass", "default:dirt_with_grass2"}, 20, 10, 15000, 2, 31000)
--mobs:register_spawn("mobs_loz:midna", {"default:dirt_with_grass", "default:dirt_with_grass2"}, 20, 10, 15000, 2, 31000)
mobs:register_egg("mobs_loz:midna", "Midna", "hyrulemapgen_glowstone.png", 1)

View File

@ -28,9 +28,14 @@ mobs:register_mob("mobs_loz:octorock", {
drops = {
{name = "hyruletools:blue_rupee",
chance = 5, min = 5, max = 5},
{name = "hyruletools:heart",
chance = 1, min = 1, max = 2},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = 1,
lava_damage = 1,
light_damage = 0,

View File

@ -28,6 +28,13 @@ mobs:register_mob("mobs_loz:peahat", {
{name = "hyruletools:blue_rupee",
chance = 5, min = 1, max = 3},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,3) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
end,
animation = {
speed_normal = 7,
speed_run = 12,

View File

@ -8,7 +8,7 @@ mobs:register_mob("mobs_loz:poe", {
hp_min = 12,
hp_max = 22,
armor = 110,
collisionbox = {-0.3, 0, -0.3, 0.3, 1, 0.3},
collisionbox = {-0.3, 0, -0.3, 0.3, 0.8, 0.3},
visual = "mesh",
mesh = "poe.b3d",
textures = {
@ -29,6 +29,10 @@ mobs:register_mob("mobs_loz:poe", {
{name = "mobs_loz:soul",
chance = 5, min = 1, max = 1},
},
on_die = function(self)
local pos = self.object:getpos()
minetest.env:add_entity(pos, "experience:orb")
end,
animation = {
speed_normal = 12,
speed_run = 12,

View File

@ -30,6 +30,13 @@ mobs:register_mob("mobs_loz:redead", {
textures = {
{"redead.png"},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,3) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
end,
makes_footstep_sound = true,
walk_velocity = 0.2,
run_velocity = 0.3,

View File

@ -37,9 +37,14 @@ mobs:register_mob("mobs_loz:deku_scrub", {
drops = {
{name = "hyruletools:blue_rupee",
chance = 5, min = 5, max = 3},
{name = "hyruletools:heart",
chance = 1, min = 1, max = 2},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = 1,
lava_damage = 1,
light_damage = 0,

View File

@ -25,10 +25,11 @@ mobs:register_mob("mobs_loz:stalchid", {
walk_velocity = 0.8,
run_velocity = 1.4,
jump = true,
drops = {
{name = "hyruletools:heart",
chance = 1, min = 1, max = 1},
},
on_die = function(self)
local pos = self.object:getpos()
minetest.env:add_entity(pos, "hyruletools:heart_entity")
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = 1,
lava_damage = 5,
light_damage = 0,

View File

@ -30,6 +30,12 @@ mobs:register_mob("mobs_loz:subrosian", {
{name = "hyruletools:red_ore",
chance = 1, min = 1, max = 2},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
end,
water_damage = 1,
lava_damage = 0,
light_damage = 0,

View File

@ -37,6 +37,16 @@ mobs:register_mob("mobs_loz:volvagia", {
drops = {
{name = "hyruletools:firestone", chance = 1, min = 3, max = 5},
},
on_die = function(self)
local pos = self.object:getpos()
if math.random(1,2) == 2 then
minetest.env:add_entity(pos, "hyruletools:heart_entity")
end
minetest.env:add_entity(pos, "experience:orb")
minetest.env:add_entity(pos, "experience:orb")
minetest.env:add_entity(pos, "experience:orb")
minetest.env:add_entity(pos, "experience:orb")
end,
water_damage = 0,
lava_damage = 5,
light_damage = 0,

View File

@ -220,11 +220,18 @@ end)
minetest.register_craftitem("twilight:crystal", {
description = "Shadow crystal",
inventory_image = "twilight_crystal.png",
on_use = function(itemstack)
on_use = function(itemstack, placer)
if twilight_mode == true then
twilight_mode = false
elseif twilight_mode == false then
twilight_mode = true
if not midna_spawned then
local pos = placer:getpos()
local obj = minetest.env:add_entity({x=pos.x, y=pos.y+2, z=pos.z}, "mobs_loz:midna")
local midna = obj:get_luaentity()
midna.owner = placer
midna_spawned = true
end
return itemstack
end
end