diff --git a/mobs.lua b/mobs.lua index 5d34839..542c1ef 100644 --- a/mobs.lua +++ b/mobs.lua @@ -167,6 +167,44 @@ for _, mob in pairs(mob_stats) do end +if minetest.registered_entities["dmobs:dragon"] and minetest.registered_entities["mobs_yeti:yeti"] then + local m = table.copy(minetest.registered_entities["dmobs:dragon"]) + m.name = 'fun_caves:snow_dragon' + m.lava_damage = 4 + m.textures = { {"fun_caves_snow_dragon.png"}, } + m.base_texture = m.textures[1] + m.arrow = "fun_caves:snow_blast" + m.attack_type = 'dogshoot' + m.shoot_interval = .7 + m.shoot_offset = 2 + m.drops = { + {name = "default:ice", chance = 1, min = 1, max = 3}, + {name = "fun_caves:eternal_ice_crystal", chance = 2, min = 1, max = 1}, + }, + + minetest.registered_entities["fun_caves:snow_dragon"] = m + mobs.spawning_mobs["fun_caves:snow_dragon"] = true + + local m = table.copy(minetest.registered_entities["mobs_yeti:snowball"]) + m.hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 8}, + }, nil) + end + + m.hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 8}, + }, nil) + end + + minetest.registered_entities["fun_caves:snow_blast"] = m + + mobs:spawn_specific("fun_caves:snow_dragon", {"air"}, {"fun_caves:cloud", "fun_caves:storm_cloud"}, -1, 20, 300, 15000, 2, 4000, 31000) +end + if minetest.registered_entities["dmobs:fox"] then local function fire_walk(self) if not fun_caves.custom_ready(self, 1000000) then diff --git a/textures/fun_caves_snow_dragon.png b/textures/fun_caves_snow_dragon.png new file mode 100644 index 0000000..8daf05e Binary files /dev/null and b/textures/fun_caves_snow_dragon.png differ