local cavefreak_sounds = { attack = 'fantasy_cavefreak_punch', death = 'fantasy_cavefreak_die', distance = 7, } function fire_splash(pos) minetest.sound_play('fantasy_fire_start',{pos = pos, max_hear_distance = 10, gain = 0.5}) for z = -1,1 do for y = -1,0 do for x = -1,1 do local p = {x=pos.x+x, y=pos.y+y, z=pos.z+z} local nn = minetest.get_node(p).name if nn == 'air' then minetest.set_node(p, {name='fire:basic_flame'}) end end end end end mobs:register_mob('fantasy_mobs:cavefreak_fire', { description = 'Cavefreak', type = 'monster', damage = 15, damage_max = 20, damage_chance = 100, attack_type = 'shoot', shoot_interval = 2, arrow = 'fantasy_mobs:cavefreak_fire_arrow', shoot_offset = 1, hp_min = 100, hp_max = 200, armor = 75, collisionbox = {-0.4, -0.5, -0.4, 0.4, .5, 0.4}, visual = 'mesh', mesh = 'fantasy_cavefreak.b3d', textures = { {'fantasy_cavefreak1.png^fantasy_cavefreak_fire.png'}, {'fantasy_cavefreak2.png^fantasy_cavefreak_fire.png'}, {'fantasy_cavefreak3.png^fantasy_cavefreak_fire.png'}, }, rotate = 180, visual_size = {x = 9, y = 9}, sounds = cavefreak_sounds, walk_velocity = 2, run_velocity = 4, jump = true, water_damage = 5, lava_damage = -5, light_damage = 1, reach = 2, view_range = 8, drops = { {name = 'scorpion:shell', chance = 2, min = 1, max = 6}, {name = 'epic:huntite', chance = 10, min = 0, max = 15}, {name = 'tnt:gunpowder', chance = 3, min = 4, max = 20}, {name = 'maxhp:lifeforce4', chance = 20, min = 0, max = 2}, {name = 'fantasy_mobs:cave_freak_sketch', chance = 10, min = 1, max = 1} }, animation = { die_start = 140, die_end = 180, die_loop = false, stand_start = 0, stand_end = 60, walk_start = 65, walk_end = 135, punch_start = 185, punch_end = 240, shoot_start = 245, shoot_end = 290, }, makes_footstep_sound = true, }) mobs:register_mob('fantasy_mobs:cavefreak_slash', { description = 'Cavefreak', type = 'monster', damage = 20, damage_max = 25, damage_chance = 150, attack_type = 'dogfight', hp_min = 100, hp_max = 200, armor = 75, collisionbox = {-0.4, -0.5, -0.4, 0.4, .5, 0.4}, visual = 'mesh', mesh = 'fantasy_cavefreak.b3d', textures = { {'fantasy_cavefreak1.png'}, {'fantasy_cavefreak2.png'}, {'fantasy_cavefreak3.png'}, }, rotate = 180, visual_size = {x = 9, y = 9}, sounds = cavefreak_sounds, walk_velocity = 2, run_velocity = 4, jump = true, water_damage = 5, lava_damage = -5, light_damage = 1, reach = 3, view_range = 8, drops = { {name = 'scorpion:shell', chance = 2, min = 1, max = 6}, {name = 'epic:huntite', chance = 2, min = 0 , max = 1}, {name = 'maxhp:lifeforce4', chance = 20, min = 0, max = 2}, {name = 'fantasy_mobs:cave_freak_sketch', chance = 10, min = 1, max = 1} }, animation = { die_start = 140, die_end = 180, die_loop = false, stand_start = 0, stand_end = 60, walk_start = 65, walk_end = 135, punch_start = 185, punch_end = 240, shoot_start = 245, shoot_end = 290, }, makes_footstep_sound = true, }) mobs:register_arrow('fantasy_mobs:cavefreak_fire_arrow', { visual = 'sprite', visual_size = {x = .5, y = .5}, textures = {'fantasy_goblins_blood.png'}, collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1}, velocity = 7, on_activate = function(self, staticdata, dtime_s) self.object:set_armor_groups({immortal = 1, fleshy = 100}) end, hit_player = function(self, player) local pos = player:get_pos() local current_player_pos = { x = math.floor(pos.x + 0.5), y = math.floor(pos.y + 1.2), z = math.floor(pos.z + 0.5) } fire_splash(current_player_pos) end, hit_mob = function(self, player) local pos = player:get_pos() local current_player_pos = { x = math.floor(pos.x + 0.5), y = math.floor(pos.y + 1.2), z = math.floor(pos.z + 0.5) } fire_splash(current_player_pos) end, hit_node = function(self, pos, node) fire_splash(pos) end }) mobs:spawn({ name = 'fantasy_mobs:cavefreak_fire', nodes = {'caverealms:stone_with_lichen', 'caverealms:stone_with_moss', 'caverealms:stone_with_algae'}, max_light = 10, min_height = -21900, max_height = -500, interval = 213, chance = 3200, active_object_count = 1, }) mobs:spawn({ name = 'fantasy_mobs:cavefreak_slash', nodes = {'caverealms:stone_with_lichen', 'caverealms:stone_with_moss', 'caverealms:stone_with_algae'}, max_light = 10, min_height = -21900, max_height = -500, interval = 132, chance = 1000, active_object_count = 4, })