123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- local mob_drops = {
- {name = 'default:mese_shard', chance = 3, min = 1, max = 2},
- {name = 'default:steel', chance = 4, min = 1, max = 2},
- {name = 'default:iron_lump', chance = 2, min = 1, max = 2},
- {name = 'default:meselamp', chance = 3, min = 1, max = 2},
- {name = 'default:mese_crystal', chance = 6, min = 1, max = 1},
- {name = 'default:diamond', chance = 5, min = 1, max = 1},
- {name = 'default:diamond_block', chance = 20, min = 1, max = 1},
- {name = 'stations:scroll_lifeforce_potion', chance = 15, min = 0, max = 1},
- {name = 'maxhp:lifeforce6', chance = 20, min = 1, max = 1},
- }
- local viron_queen_drops = {
- {name = 'default:mese_shard', chance = 3, min = 1, max = 2},
- {name = 'default:steel', chance = 4, min = 1, max = 2},
- {name = 'default:iron_lump', chance = 2, min = 1, max = 2},
- {name = 'default:meselamp', chance = 3, min = 1, max = 6},
- {name = 'default:mese_crystal', chance = 3, min = 1, max = 5},
- {name = 'default:diamond', chance = 2, min = 1, max = 2},
- {name = 'default:diamond_block', chance = 2, min = 1, max = 3},
- {name = 'stations:scroll_lifeforce_potion', chance = 5, min = 0, max = 1},
- {name = 'maxhp:lifeforce6', chance = 20, min = 1, max = 1},
- }
- local viron_selection_box = {-0.3, -0.3, -0.3, 0.3, 1.5, 0.3}
- local viron_visual_size = {x = 1, y = 1}
- mobs:register_mob('viron:viron_mob', {
- type = 'monster',
- hp_min = 25,
- hp_max = 80,
- armor = 75,
- passive = false,
- walk_velocity = 4,
- stand_chance = 60,
- walk_chance = 10,
- jump = true,
- jump_height = 8,
- run_velocity = 6,
- stepheight = 1.6,
- stay_near = {
- nodes = {'asteroid:diamondore', 'asteroid:meseore',},
- },
- pushable = true,
- view_range = 15,
- damage = 15,
- damage_max = 30,
- damage_chance = 120,
- knock_back = true,
- fear_height = 10,
- water_damage = 0,
- lava_damage = 0,
- light_damage = 0,
- suffocation = false,
- floats = false,
- follow = {
- 'default:diamond',
- 'default:mese_crystal',
- },
- reach = 2,
- attack_chance = 70,
- attack_monsters = false,
- attack_animals = true,
- attack_npcs = true,
- attack_players = true,
- group_attack = true,
- attack_type = 'dogfight',
- blood_texture = 'viron_blood.png',
- pathfinding = 1,
- makes_footstep_sound = false,
- sounds = {
- distance = 20,
- random = 'viron_viron_talk',
- war_cry = 'viron_viron_angry',
- attack = 'viron_viron_hit',
- damage = 'viron_viron_angry',
- death = 'viron_viron_die',
- jump = 'viron_viron_talk',
- },
- drops = mob_drops,
- visual = 'mesh',
- collisionbox = {-0.3, -0.5, -0.3, 0.3, 1.5, 0.3},
- mesh = 'viron_viron_mob.b3d',
- textures = {
- {'viron_viron_texture.png'}, {'viron_viron_texture1.png'}, {'viron_viron_texture2.png'},
- },
- glow = 10,
- animation = {
- stand_start = 40,
- stand_end = 85,
- stand_speed = 10,
- stand1_start = 87,
- stand1_end = 100,
- stand1_speed = 10,
- stand2_start = 103,
- stand2_end = 145,
- stand2_speed = 10,
- stand3_start = 140,
- stand3_end = 170,
- stand3_speed = 5,
- stand3_loop = false,
- walk_start = 0,
- walk_end = 30,
- walk_speed = 30,
- run_start = 0,
- run_end = 30,
- run_speed = 50,
- punch_start = 170,
- punch_end = 200,
- punch_speed = 27,
- },
- on_die = function(self, pos)
- local num = math.random(0, 2)
- for i=1,num do
- minetest.add_entity({x=pos.x + math.random(-2, 2), y=pos.y + 1, z=pos.z + (math.random(-2, 2))}, 'viron:viron_larve')
- end
- end,
- })
- mobs:spawn({
- name = 'viron:viron_mob',
- nodes = {'asteroid:redstone', 'asteroid:stone', 'asteroid:gravel', 'asteroid:redgravel'},
- chance = 7,
- interval = 30,
- active_object_count = 3,
- min_height = 5000,
- max_height = 7000,
- })
- --mobs:register_egg('viron:viron_mob', 'Viron', 'viron_viron_egg.png', 1)
- --Queen
- mobs:register_mob('viron:viron_queen', {
- type = 'monster',
- hp_min = 100,
- hp_max = 600,
- armor = 80,
- passive = false,
- walk_velocity = 5,
- stand_chance = 60,
- walk_chance = 10,
- fall_speed = -4,
- jump = true,
- jump_height = 40,
- run_velocity = 10,
- stepheight = 20,
- stay_near = {
- nodes = {'asteroid:diamondore', 'asteroid:meseore',},
- },
- pushable = true,
- view_range = 15,
- damage = 10,
- damage_chance = 250,
- knock_back = true,
- fear_height = 20,
- water_damage = 0,
- lava_damage = 0,
- light_damage = 0,
- suffocation = false,
- floats = false,
- follow = {
- 'default:diamond',
- 'default:mese_crystal',
- },
- reach = 4,
- attack_chance = 70,
- attack_monsters = false,
- attack_animals = true,
- attack_npcs = true,
- attack_players = true,
- group_attack = true,
- attack_type = 'dogfight',
- blood_texture = 'viron_blood.png',
- pathfinding = 1,
- makes_footstep_sound = false,
- sounds = {
- distance = 25,
- random = 'viron_viron_talk',
- war_cry = 'viron_viron_angry',
- attack = 'viron_viron_hit',
- damage = 'viron_viron_angry',
- death = 'viron_viron_die',
- jump = 'viron_viron_talk',
- },
- drops = viron_queen_drops,
- visual = 'mesh',
- visual_size = {
- x = viron_visual_size.x * 4,
- y = viron_visual_size.y * 4,
- },
- collisionbox = {
- viron_selection_box[1] * 4,
- viron_selection_box[2] * 4,
- viron_selection_box[3] * 4,
- viron_selection_box[4] * 4,
- viron_selection_box[5] * 4,
- viron_selection_box[6] * 4,
- },
- selectionbox = {
- viron_selection_box[1] * 4,
- viron_selection_box[2] * 4,
- viron_selection_box[3] * 4,
- viron_selection_box[4] * 4,
- viron_selection_box[5] * 4,
- viron_selection_box[6] * 4,
- },
- mesh = 'viron_viron_mob.b3d',
- textures = {
- {'viron_viron_texture.png'}, {'viron_viron_texture1.png'}, {'viron_viron_texture2.png'},
- },
- glow = 12,
- animation = {
- stand_start = 40,
- stand_end = 85,
- stand_speed = 10,
- stand1_start = 87,
- stand1_end = 100,
- stand1_speed = 10,
- stand2_start = 103,
- stand2_end = 145,
- stand2_speed = 10,
- stand3_start = 140,
- stand3_end = 170,
- stand3_speed = 5,
- stand3_loop = false,
- walk_start = 0,
- walk_end = 30,
- walk_speed = 30,
- run_start = 0,
- run_end = 30,
- run_speed = 50,
- punch_start = 170,
- punch_end = 200,
- punch_speed = 27,
- },
- on_die = function(self, pos)
- local num = math.random(1, 5)
- for i=1,num do
- minetest.add_entity({x=pos.x + math.random(-2, 2), y=pos.y + 1, z=pos.z + (math.random(-2, 2))}, 'viron:viron_mob')
- end
- end,
- })
- mobs:spawn({
- name = 'viron:viron_queen',
- nodes = {'asteroid:redstone', 'asteroid:stone', 'asteroid:gravel', 'asteroid:redgravel'},
- chance = 300,
- interval = 45,
- active_object_count = 2,
- min_height = 5000,
- max_height = 7000,
- })
- --mobs:register_egg('viron:viron_queen', 'Viron Queen', 'viron_viron_egg.png', 1)
- ------------------------------Larve-----------------------------------------
- mobs:register_mob('viron:viron_larve', {
- type = 'monster',
- hp_min = 10,
- hp_max = 40,
- armor = 80,
- passive = false,
- walk_velocity = 2,
- stand_chance = 10,
- walk_chance = 60,
- jump = true,
- jump_height = 10,
- run_velocity = 5,
- fall_speed = -3,
- stepheight = 10,
- pushable = true,
- view_range = 15,
- damage = 15,
- damage_max = 15,
- damage_chance = 80,
- knock_back = true,
- fear_height = 20,
- water_damage = 0,
- lava_damage = 0,
- light_damage = 0,
- suffocation = false,
- floats = false,
- follow = {
- 'default:diamond',
- 'default:mese_crystal',
- },
- reach = 1,
- attack_chance = 10,
- attack_monsters = false,
- attack_animals = true,
- attack_npcs = true,
- attack_players = false,
- runaway = true,
- group_attack = false,
- attack_type = 'dogfight',
- blood_texture = 'viron_blood.png',
- pathfinding = 1,
- makes_footstep_sound = false,
- sounds = {
- distance = 25,
- random = 'viron_viron_talk',
- war_cry = 'viron_viron_angry',
- attack = 'viron_viron_hit',
- damage = 'viron_viron_angry',
- death = 'viron_viron_die',
- jump = 'viron_viron_talk',
- },
- visual = 'mesh',
- visual_size = {
- x = viron_visual_size.x * .5,
- y = viron_visual_size.y * .5,
- },
- collisionbox = {
- viron_selection_box[1] * .5,
- viron_selection_box[2] * .5,
- viron_selection_box[3] * .5,
- viron_selection_box[4] * .5,
- viron_selection_box[5] * .5,
- viron_selection_box[6] * .5,
- },
- selectionbox = {
- viron_selection_box[1] * .5,
- viron_selection_box[2] * .5,
- viron_selection_box[3] * .5,
- viron_selection_box[4] * .5,
- viron_selection_box[5] * .5,
- viron_selection_box[6] * .5,
- },
- mesh = 'viron_viron_mob.b3d',
- textures = {
- {'viron_viron_texture.png'}, {'viron_viron_texture1.png'}, {'viron_viron_texture2.png'},
- },
- glow = 12,
- animation = {
- stand_start = 40,
- stand_end = 85,
- stand_speed = 10,
- stand1_start = 87,
- stand1_end = 100,
- stand1_speed = 10,
- stand2_start = 103,
- stand2_end = 145,
- stand2_speed = 10,
- stand3_start = 140,
- stand3_end = 170,
- stand3_speed = 5,
- stand3_loop = false,
- walk_start = 0,
- walk_end = 30,
- walk_speed = 30,
- run_start = 0,
- run_end = 30,
- run_speed = 50,
- punch_start = 170,
- punch_end = 200,
- punch_speed = 27,
- },
- do_custom = function(self,dtime)
- -- 20 sec timer, wait to grow the mob until it has been alive for 60 sec
- self.grow_timer = (self.grow_timer or 0) + dtime
- if self.grow_timer < 20 then
- return
- end
- local pos = self.object:get_pos()
- --if the code has gotten to here, the viron_larve has been alive for more than 60 second
- --so now we grow the mob by removing (killing) it and placing a viron.
- minetest.add_entity({x=pos.x, y=pos.y+1, z=pos.z}, 'viron:viron_mob')
- self.object:remove()
- return false
- end,
- })
|