diff --git a/mods/mobs/init.lua b/mods/mobs/init.lua index 034c0703..58d12092 100755 --- a/mods/mobs/init.lua +++ b/mods/mobs/init.lua @@ -15,6 +15,7 @@ dofile(path.."/bee.lua") -- KrupnoPavel dofile(path.."/bunny.lua") -- ExeterDad dofile(path.."/kitten.lua") -- Jordach/BFD dofile(path.."/goat.lua") -- ??? +dofile(path.."/shark.lua") -- blert2112 (animal_modpack) -- Monsters diff --git a/mods/mobs/models/mobs_shark.b3d b/mods/mobs/models/mobs_shark.b3d new file mode 100644 index 00000000..c076e594 Binary files /dev/null and b/mods/mobs/models/mobs_shark.b3d differ diff --git a/mods/mobs/models/mobs_shark.blend b/mods/mobs/models/mobs_shark.blend new file mode 100644 index 00000000..a985bc31 Binary files /dev/null and b/mods/mobs/models/mobs_shark.blend differ diff --git a/mods/mobs/shark.lua b/mods/mobs/shark.lua new file mode 100644 index 00000000..3e5a6199 --- /dev/null +++ b/mods/mobs/shark.lua @@ -0,0 +1,126 @@ + +-- local variables +local l_colors = { + "#604000:175", --brown + "#ffffff:150", --white + "#404040:150", --dark_grey + "#a0a0a0:150" --grey +} +local l_skins = { + {"(shark_first.png^[colorize:"..l_colors[3]..")^(shark_second.png^[colorize:"..l_colors[4]..")^shark_third.png"}, + {"(shark_first.png^[colorize:"..l_colors[1]..")^(shark_second.png^[colorize:"..l_colors[2]..")^shark_third.png"}, + {"(shark_first.png^[colorize:"..l_colors[4]..")^(shark_second.png^[colorize:"..l_colors[2]..")^shark_third.png"} +} +local l_anims = { + speed_normal = 24, speed_run = 24, + stand_start = 1, stand_end = 80, + walk_start = 80, walk_end = 160, + run_start = 80, run_end = 160 +} +local l_model = "mobs_shark.b3d" +local l_egg_texture = "mobs_shark_shark_item.png" +local l_spawn_in = {"default:water_flowing","default:water_source"} +local l_spawn_near = {"default:water_flowing","default:water_source","seawrecks:woodship","seawrecks:uboot"} +local l_spawn_chance = 60000 + +-- large +mobs:register_mob("mobs:shark_lg", { + type = "monster", + attack_type = "dogfight", + damage = 10, + hp_min = 20, + hp_max = 25, + armor = 150, + collisionbox = {-0.75, -0.5, -0.75, 0.75, 0.5, 0.75}, + visual = "mesh", + mesh = l_model, + textures = l_skins, + makes_footstep_sound = false, + walk_velocity = 4, + run_velocity = 6, + fly = true, + fly_in = "default:water_source", + fall_speed = 0, + rotate = 270, + view_range = 10, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = l_anims, + do_custom = function(self) + local p = self.object:getpos() + local a = self.object:getvelocity() + if p.y > 0 and a.y > 0 then + a.y = -1 + else + local r = math.random(100) + if r >= 1 and r <=25 then a.y = 0.25 + elseif r > 25 and r <= 50 then a.y = 0 + elseif r > 50 and r <= 75 then a.y = -0.25 + end + end + self.object:setvelocity(a) + end +}) +--name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height +mobs:spawn_specific("mobs:shark_lg", l_spawn_in, l_spawn_near, -1, 20, 30, l_spawn_chance, 1, -31000, 0) +mobs:register_egg("mobs:shark_lg", "Shark (large)", l_egg_texture, 0) + +-- medium +mobs:register_mob("mobs:shark_md", { + type = "monster", + attack_type = "dogfight", + damage = 8, + hp_min = 15, + hp_max = 20, + armor = 125, + collisionbox = {-0.57, -0.38, -0.57, 0.57, 0.38, 0.57}, + visual = "mesh", + visual_size = {x=0.75, y=0.75}, + mesh = l_model, + textures = l_skins, + makes_footstep_sound = false, + walk_velocity = 2, + run_velocity = 4, + fly = true, + fly_in = "default:water_source", + fall_speed = -1, + rotate = 270, + view_range = 10, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = l_anims +}) +--name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height +mobs:spawn_specific("mobs:shark_md", l_spawn_in, l_spawn_near, -1, 20, 30, l_spawn_chance, 1, -31000, 0) +mobs:register_egg("mobs:shark_md", "Shark (medium)", l_egg_texture, 0) + +mobs:register_mob("mobs:shark_sm", { + type = "monster", + attack_type = "dogfight", + damage = 6, + hp_min = 10, + hp_max = 15, + armor = 100, + collisionbox = {-0.38, -0.25, -0.38, 0.38, 0.25, 0.38}, + visual = "mesh", + visual_size = {x=0.5, y=0.5}, + mesh = l_model, + textures = l_skins, + makes_footstep_sound = false, + walk_velocity = 2, + run_velocity = 4, + fly = true, + fly_in = "default:water_source", + fall_speed = -1, + rotate = 270, + view_range = 10, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = l_anims +}) +--name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height +mobs:spawn_specific("mobs:shark_sm", l_spawn_in, l_spawn_near, -1, 20, 30, l_spawn_chance, 1, -31000, 0) +mobs:register_egg("mobs:shark_sm", "Shark (small)", l_egg_texture, 0) diff --git a/mods/mobs/textures/mobs_shark_shark_item.png b/mods/mobs/textures/mobs_shark_shark_item.png new file mode 100644 index 00000000..375890bf Binary files /dev/null and b/mods/mobs/textures/mobs_shark_shark_item.png differ diff --git a/mods/mobs/textures/shark_first.png b/mods/mobs/textures/shark_first.png new file mode 100644 index 00000000..26adb8cc Binary files /dev/null and b/mods/mobs/textures/shark_first.png differ diff --git a/mods/mobs/textures/shark_second.png b/mods/mobs/textures/shark_second.png new file mode 100644 index 00000000..5cd35425 Binary files /dev/null and b/mods/mobs/textures/shark_second.png differ diff --git a/mods/mobs/textures/shark_third.png b/mods/mobs/textures/shark_third.png new file mode 100644 index 00000000..3b59782f Binary files /dev/null and b/mods/mobs/textures/shark_third.png differ