diff --git a/baddies.lua b/baddies.lua index b52f724..2891bb8 100644 --- a/baddies.lua +++ b/baddies.lua @@ -102,6 +102,11 @@ mobs:register_mob("dmobs:fox", { drops = { {name = "mobs:meat_raw", chance = 1, min = 1, max = 1}, }, + on_activate = function(self) + if math.random(1,5) == 1 then + self.type = "animal" + end + end, water_damage = 0, lava_damage = 2, light_damage = 0, @@ -138,6 +143,120 @@ mobs:register_spawn("dmobs:fox", {"default:dirt_with_grass","default:dirt"}, 20, mobs:register_egg("dmobs:fox", "Fox", "wool_orange.png", 1) +--Wasps! +mobs:register_mob("dmobs:wasp", { + type = "monster", + reach = 1, + damage = 2, + attack_type = "dogfight", + hp_min = 2, + hp_max = 5, + armor = 100, + collisionbox = {-0.1, -0, -0.1, 0.1, 0.5, 0.1}, + fly = true, + fall_speed = 0, + stepheight = 1.5, + visual = "mesh", + mesh = "wasp.b3d", + textures = { + {"dmobs_wasp.png"}, + }, + sounds = { + random = "wasp", + }, + blood_texture = "mobs_blood.png", + visual_size = {x=0.6, y=0.6}, + makes_footstep_sound = true, + walk_velocity = 2, + run_velocity = 3, + jump = true, + water_damage = 2, + lava_damage = 2, + light_damage = 0, + view_range = 14, + animation = { + speed_normal = 15, + speed_run = 30, + walk_start = 1, + walk_end = 6, + stand_start = 1, + stand_end = 6, + run_start = 1, + run_end = 6, + punch_start = 6, + punch_end = 15, + }, +}) + +mobs:register_spawn("dmobs:wasp", {"default:dirt_with_grass"}, 20, 10, 32000, 2, 31000) +mobs:register_spawn("dmobs:wasp", {"dmobs:hive"}, 20, 10, 16000, 2, 31000) + +mobs:register_egg("dmobs:wasp", "Wasp", "dmobs_wasp_bg.png", 1) + +mobs:register_mob("dmobs:wasp_leader", { + type = "monster", + reach = 1, + damage = 2, + attack_type = "shoot", + shoot_interval = 1, + arrow = "dmobs:sting", + shoot_offset = 0, + hp_min = 82, + hp_max = 122, + armor = 130, + collisionbox = {-0.4, -0, -0.4, 0.3, 2, 0.3}, + pathfinding = true, + fly = true, + fall_speed = 0, + stepheight = 1.5, + visual = "mesh", + mesh = "wasp.b3d", + textures = { + {"dmobs_wasp.png"}, + }, + sounds = { + random = "wasp", + }, + blood_texture = "mobs_blood.png", + visual_size = {x=3.5, y=3.5}, + makes_footstep_sound = true, + walk_velocity = 1, + run_velocity = 2.5, + jump = true, + drops = { + {name = "default:gold_lump", chance = 1, min = 3, max = 5}, + }, + do_custom = function(self) + if math.random(1, 500) >= 500 then + local pos = self.object:getpos() + minetest.env:add_entity(pos, "dmobs:wasp") + end + end, + replace_rate = 700, + replace_what = {"air"}, + replace_with = "dmobs:hive", + water_damage = 2, + lava_damage = 2, + light_damage = 0, + view_range = 14, + animation = { + speed_normal = 6, + speed_run = 15, + walk_start = 1, + walk_end = 6, + stand_start = 1, + stand_end = 6, + run_start = 1, + run_end = 6, + shoot_start = 6, + shoot_end = 15, + }, +}) + +mobs:register_spawn("dmobs:wasp_leader", {"default:dirt_with_grass","dmobs:hive"}, 20, 10, 64000, 2, 31000) + +mobs:register_egg("dmobs:wasp_leader", "King of Sting", "dmobs_wasp_bg.png", 1) + -- Treeman mobs:register_mob("dmobs:treeman", { @@ -184,7 +303,7 @@ mobs:register_mob("dmobs:treeman", { }, }) -mobs:register_spawn("dmobs:treeman", {"default:leaves"}, 7, 0, 16000, 2, 31000) +mobs:register_spawn("dmobs:treeman", {"default:leaves", "default:pine_needles"}, 7, 0, 16000, 2, 31000) mobs:register_egg("dmobs:treeman", "Treeman", "default_tree.png", 1) @@ -447,6 +566,29 @@ end mobs:register_egg("dmobs:ogre", "Ogre", "default_desert_sand.png", 1) +mobs:register_arrow("dmobs:sting", { + visual = "sprite", + visual_size = {x = 0.5, y = 0.5}, + textures = {"dmobs_sting.png"}, + velocity = 8, + tail = 0, -- enable tail + tail_texture = "fire_basic_flame.png", + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1}, + }, nil) + end, + + hit_mob = function(self, player) + end, + + hit_node = function(self, pos, node) + self.object:remove() + end, + }) + --dragon if dmobs.dragons == true then dofile(minetest.get_modpath("dmobs").."/dragons.lua") diff --git a/init.lua b/init.lua index 6142fe0..44d1012 100644 --- a/init.lua +++ b/init.lua @@ -16,6 +16,20 @@ dmobs.destructive = false dofile(minetest.get_modpath("dmobs").."/baddies.lua") +--wasps nest + +minetest.register_node("dmobs:hive", { + description = "Wasp Hive", + tiles = {"dmobs_hive.png"}, + groups = {crumbly=1, oddly_breakable_by_hand=1, falling_node=1}, + on_destruct = function(pos, oldnode) + minetest.env:add_entity(pos, "dmobs:wasp") + minetest.env:add_entity(pos, "dmobs:wasp") + minetest.env:add_entity(pos, "dmobs:wasp") + minetest.env:add_entity(pos, "dmobs:wasp") + end, +}) + --golem minetest.register_node("dmobs:golemstone", { diff --git a/license.txt b/license.txt index 15ca559..73d5e5e 100644 --- a/license.txt +++ b/license.txt @@ -29,6 +29,7 @@ Velociraptor.ogg - CC BY 3.0 snottyboi - http://soundbible.com/1373-Velociraptor whale_1.ogg - CC0 Public Domain - https://en.wikipedia.org/wiki/File:Humpbackwhale2.ogg mobs_pig.ogg - from mobs_animal by TenPlus1 (MIT) dmobs_chirrup.ogg - CC BY SA 3.0 taikedz +wasp.ogg - Public Domain --License of lib_mount: -- Minetest mod: lib_mount diff --git a/models/wasp.b3d b/models/wasp.b3d new file mode 100644 index 0000000..5d30a03 Binary files /dev/null and b/models/wasp.b3d differ diff --git a/sounds/wasp.ogg b/sounds/wasp.ogg new file mode 100644 index 0000000..5108355 Binary files /dev/null and b/sounds/wasp.ogg differ diff --git a/textures/dmobs_hive.png b/textures/dmobs_hive.png new file mode 100644 index 0000000..0b0f0fc Binary files /dev/null and b/textures/dmobs_hive.png differ diff --git a/textures/dmobs_sting.png b/textures/dmobs_sting.png new file mode 100644 index 0000000..0bbaaf6 Binary files /dev/null and b/textures/dmobs_sting.png differ diff --git a/textures/dmobs_wasp.png b/textures/dmobs_wasp.png new file mode 100644 index 0000000..52659ee Binary files /dev/null and b/textures/dmobs_wasp.png differ diff --git a/textures/dmobs_wasp_bg.png b/textures/dmobs_wasp_bg.png new file mode 100644 index 0000000..f88b3f0 Binary files /dev/null and b/textures/dmobs_wasp_bg.png differ