diff --git a/lavaslimes.lua b/lavaslimes.lua index 2087f89..691b2b8 100644 --- a/lavaslimes.lua +++ b/lavaslimes.lua @@ -1,90 +1,125 @@ -- sounds local lava_sounds = { - damage = { file = "lava_slime_damage", gain = 0.25}, - death = { file = "lava_slime_death", gain = 0.25}, - jump = { file = "lava_slime_jump", gain = 0.25}, - --land = { file = "default_cool_lava.3", gain = 5}, - land = { file = "lava_slime_land", gain = 0.25}, - attack = { file = "lava_slime_attack", gain = 0.25}, - random = {} + damage = "slimes_damage", + death = "slimes_death", + jump = "slimes_jump", + attack = "slimes_attack", } --- textures : top, bottom, front, back, left, right -local lava_textures = {"lava_slime_top.png", "lava_slime_bottom.png", "lava_slime_front.png", "lava_slime_sides.png", "lava_slime_sides.png", "lava_slime_sides.png"} -slimes:register_slime ("slimes:lavabig", { +-- lava slime textures +local lava_textures = {"lava_slime_sides.png", "lava_slime_sides.png", "lava_slime_sides.png", "lava_slime_sides.png", "lava_slime_front.png", "lava_slime_sides.png"} + +-- register small lava slime +mobs:register_mob("slimes:lavasmall", { type = "monster", - class ="lava", - name = "slimes:lavabig", - passive = false, - size = 2, - max_hp = 6, - damage = 3, + hp_min = 1, hp_max = 2, + collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, + visual = "cube", + visual_size = {x = 0.5, y = 0.5}, + textures = { lava_textures }, + blood_texture = "lava_slime_blood.png", + makes_footstep_sound = false, sounds = lava_sounds, - textures = lava_textures, - blood = "lava_slime_blood.png", - footprint = "fire:basic_flame", - gravity = 9.8, - drops = { - type = "entity", - name = "slimes:lavamedium", - chance = 0, min = 1, max = 2}, - -- damage by - water_damage = 10, - lava_damage = 0, - light_damage = 0, - fall_damage = 0, - spawn = "default:lava_source" -}) -slimes:register_slime ("slimes:lavamedium", { - type = "monster", - class ="lava", - name = "slimes:lavamedium", - passive = false, - size = 1, - max_hp = 4, - damage = 2, - sounds = lava_sounds, - textures = lava_textures, - blood = "lava_slime_blood.png", - footprint = "fire:basic_flame", - gravity = 9.8, - drops = { - type = "entity", - name = "slimes:lavasmall", - chance = 0, min = 1, max = 4}, - -- damage by - water_damage = 10, - lava_damage = 0, - light_damage = 0, - fall_damage = 0, - spawn = "default:lava_source" -}) -slimes:register_slime ("slimes:lavasmall", { - type = "monster", - class ="lava", - name = "slimes:lavasmall", - passive = false, - size = 0.5, - max_hp = 2, + attack_type = "dogfight", + attacks_monsters = true, damage = 1, - sounds = lava_sounds, - textures = lava_textures, - blood = "lava_slime_blood.png", - footprint = "fire:basic_flame", - gravity = 9.8, + passive = false, + walk_velocity = 2, + run_velocity = 2, + walk_chance = 0, + jump_chance = 30, + jump_height = 6, + armor = 100, + view_range = 15, drops = { - type = "item", - name = "tnt:gunpowder", - chance = 4, min = 1, max = 2}, - -- damage by + {name = "tnt:gunpowder", chance = 4, min = 1, max = 2}, + }, + drawtype = "front", water_damage = 10, lava_damage = 0, light_damage = 0, - fall_damage = 0, - spawn = "default:lava_source" + replace_rate = 20, + footstep = "fire:basic_flame", }) +mobs:register_egg("slimes:lavasmall", "Small Lava Slime", "lava_slime_front.png", 0) -slimes:register_spawn("slimes:lavabig", {"default:lava_source"},{"default:lava_source","default:lava_flowing"}, 20, 4, 5000, 8, -64) -slimes:register_spawn("slimes:lavamedium", {"default:lava_source"},{"default:lava_source","default:lava_flowing"}, 20, 4, 10000, 8, -64) -slimes:register_spawn("slimes:lavasmall", {"default:lava_source"},{"default:lava_source","default:lava_flowing"}, 20, 4, 15000, 8, -64) +-- register medium lava slime +mobs:register_mob("slimes:lavamedium", { + type = "monster", + hp_min = 3, hp_max = 4, + collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + visual = "cube", + visual_size = {x = 1, y = 1}, + textures = { lava_textures }, + blood_texture = "lava_slime_blood.png", + makes_footstep_sound = false, + sounds = lava_sounds, + attack_type = "dogfight", + attacks_monsters = true, + damage = 2, + passive = false, + walk_velocity = 2, + run_velocity = 2, + walk_chance = 0, + jump_chance = 30, + jump_height = 6, + armor = 100, + view_range = 15, + on_die = function(self, pos) + local num = math.random(2, 4) + 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))}, "slimes:lavasmall") + end + end, + drawtype = "front", + water_damage = 10, + lava_damage = 0, + light_damage = 0, + replace_rate = 20, + footstep = "fire:basic_flame", +}) +mobs:register_egg("slimes:lavamedium", "Medium Lava Slime", "lava_slime_front.png", 0) +-- register big lava slime +mobs:register_mob("slimes:lavabig", { + type = "monster", + hp_min = 5, hp_max = 6, + collisionbox = {-1, -1, -1, 1, 1, 1}, + visual = "cube", + visual_size = {x = 2, y = 2}, + textures = { lava_textures }, + blood_texture = "lava_slime_blood.png", + makes_footstep_sound = false, + sounds = lava_sounds, + attack_type = "dogfight", + attacks_monsters = true, + damage = 3, + passive = false, + walk_velocity = 2, + run_velocity = 2, + walk_chance = 0, + jump_chance = 30, + jump_height = 6, + armor = 100, + view_range = 15, + on_die = function(self, pos) + local num = math.random(1, 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))}, "slimes:lavamedium") + end + end, + drawtype = "front", + water_damage = 10, + lava_damage = 0, + light_damage = 0, + replace_rate = 20, + replace_offset = -1, + footstep = "fire:basic_flame", +}) +mobs:register_egg("slimes:lavabig", "Big Lava Slime", "lava_slime_front.png", 0) + +--mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height) + +mobs:spawn_specific("slimes:lavabig", {"default:lava_source"},{"default:lava_flowing"}, 4, 20, 30, 5000, 8, -32000, -64) +mobs:spawn_specific("slimes:lavamedium", {"default:lava_source"},{"default:lava_flowing"}, 4, 20, 30, 10000, 8, -32000, -64) +mobs:spawn_specific("slimes:lavasmall", {"default:lava_source"},{"default:lava_flowing"}, 4, 20, 30, 15000, 8, -32000, -64)