1 local S
= minetest
.get_translator("mobs_hades")
4 -- (This one spits out fireballs at you)
10 collisionbox
= {-0.7, -0.01, -0.7, 0.7, 2.6, 0.7},
12 mesh
= "mobs_dungeon_master.x",
13 textures
= {"mobs_dungeon_master.png"},
14 visual_size
= {x
=8, y
=8},
15 makes_footstep_sound
= true,
17 random = "mobs_dungeonmaster",
18 attack
= "mobs_fireball",
25 {name
= "hades_core:mese_crystal_fragment",
29 {name
= "hades_core:diamond",
33 {name
= "hades_core:mese_crystal",
37 {name
= "hades_core:mese",
48 attack_type
= "shoot",
49 arrow
= "mobs_hades:fireball",
64 blood_texture
= "mobs_blood.png",
68 mobs
:register_mob("mobs_hades:cave_master", cave_master
)
69 mobs
:spawn_specific("mobs_hades:cave_master", {"hades_core:stone"}, "air", 0, 1, 100, 7000, 1, -30000, -1000)
71 local cave_elder
= table.copy(cave_master
)
72 cave_elder
.hp_min
= 40
73 cave_elder
.hp_max
= 50
74 cave_elder
.shoot_interval
= 2.0
75 cave_elder
.collisionbox
= {-0.875, -0.01, -0.875, 0.875, 3.250, 0.875}
76 cave_elder
.visual_size
= {x
=10, y
=10}
77 cave_elder
.textures
= {"mobs_dungeon_master5.png"}
79 {name
= "hades_core:mese_crystal_fragment",
83 {name
= "hades_core:diamond",
87 {name
= "hades_core:mese_crystal",
91 {name
= "hades_core:mese",
97 mobs
:register_mob("mobs_hades:cave_elder", cave_elder
)
98 mobs
:spawn_specific("mobs_hades:cave_elder", {"hades_core:stone"}, "air", 0, 1, 100, 10000, 1, -30000, -7500)
100 mobs
:register_egg("mobs_hades:cave_master", S("Cave Master Spawn Egg"), "mobs_chicken_egg_overlay.png^[colorize:#5D3000:228", 1, false)
101 mobs
:register_egg("mobs_hades:cave_elder", S("Cave Elder Spawn Egg"), "mobs_chicken_egg_overlay.png^[colorize:#2D1000:228", 1, false)
105 mobs
:register_arrow("mobs_hades:fireball", {
107 visual_size
= {x
=1, y
=1},
108 textures
= {"mobs_fireball.png"},
111 -- direct hit, no fire... just plenty of pain
112 hit_player
= function(self
, player
)
113 local s
= self
.object
:get_pos()
114 local p
= player
:get_pos()
115 player
:punch(self
.object
, 1.0, {
116 full_punch_interval
=1.0,
117 damage_groups
= {fleshy
=8},
118 }, 0) -- {x=s.x-p.x, y=s.y-p.y, z=s.z-p.z})
121 -- node hit, bursts into flame (cannot blast through obsidian)
122 hit_node
= function(self
, pos
, node
)
127 local p
= {x
=pos
.x
+dx
, y
=pos
.y
+dy
, z
=pos
.z
+dz
}
128 local n
= minetest
.get_node(p
).name
129 local def
= minetest
.registered_nodes
[n
]
130 if def
and def
.on_blast
then
131 minetest
.registered_nodes
[n
].on_blast(pos
, 5)
133 minetest
.set_node(p
, {name
="air"})