123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- 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,
- })
|