From f583f80004cecb695c2387c1cc14b64d2b6f8375 Mon Sep 17 00:00:00 2001 From: Milan2018 Date: Thu, 27 Feb 2020 15:13:11 +0100 Subject: [PATCH] =?UTF-8?q?Nahr=C3=A1t=20soubory=20do=20'mobs=5Fmonster'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mobs_monster/oerkki.lua | 74 ++++++++++++++++++++++ mobs_monster/readme.md | 44 +++++++++++++ mobs_monster/sand_monster.lua | 108 +++++++++++++++++++++++++++++++ mobs_monster/spider.lua | 111 ++++++++++++++++++++++++++++++++ mobs_monster/spider2.lua | 115 ++++++++++++++++++++++++++++++++++ 5 files changed, 452 insertions(+) create mode 100644 mobs_monster/oerkki.lua create mode 100644 mobs_monster/readme.md create mode 100644 mobs_monster/sand_monster.lua create mode 100644 mobs_monster/spider.lua create mode 100644 mobs_monster/spider2.lua diff --git a/mobs_monster/oerkki.lua b/mobs_monster/oerkki.lua new file mode 100644 index 0000000..26aa298 --- /dev/null +++ b/mobs_monster/oerkki.lua @@ -0,0 +1,74 @@ + +local S = mobs.intllib + + +-- Oerkki by PilzAdam + +mobs:register_mob("mobs_monster:oerkki", { + type = "monster", + passive = false, + attack_type = "dogfight", + pathfinding = true, + reach = 2, + damage = 4, + hp_min = 8, + hp_max = 34, + armor = 100, + collisionbox = {-0.4, -1, -0.4, 0.4, 0.9, 0.4}, + visual = "mesh", + mesh = "mobs_oerkki.b3d", + textures = { + {"mobs_oerkki.png"}, + {"mobs_oerkki2.png"}, + }, + makes_footstep_sound = false, + sounds = { + random = "mobs_oerkki", + }, + walk_velocity = 1, + run_velocity = 3, + view_range = 10, + jump = true, + drops = { + {name = "default:obsidian", chance = 3, min = 1, max = 2}, + }, + water_damage = 2, + lava_damage = 4, + light_damage = 1, + fear_height = 4, + animation = { + stand_start = 0, + stand_end = 23, + walk_start = 24, + walk_end = 36, + run_start = 37, + run_end = 49, + punch_start = 37, + punch_end = 49, + speed_normal = 15, + speed_run = 15, + }, + replace_rate = 5, + replace_what = {"default:torch"}, + replace_with = "air", + replace_offset = -1, + immune_to = { + {"default:sword_wood", 0}, -- no damage + {"default:gold_lump", -10}, -- heals by 10 points + }, +}) + + +mobs:spawn({ + name = "mobs_monster:oerkki", + nodes = {"default:stone"}, + max_light = 7, + chance = 7000, + max_height = -10, +}) + + +mobs:register_egg("mobs_monster:oerkki", S("Oerkki"), "default_obsidian.png", 1) + + +mobs:alias_mob("mobs:oerkki", "mobs_monster:oerkki") -- compatiblity diff --git a/mobs_monster/readme.md b/mobs_monster/readme.md new file mode 100644 index 0000000..7fe2870 --- /dev/null +++ b/mobs_monster/readme.md @@ -0,0 +1,44 @@ + +MONSTER MOBS + +Dirt Monster + +- Spawning at night on green grass (or grey in ethereal) these mobs wander around looking for a player to eat. Drops 1-5 dirt when killed. + +Dungeon Master + +- Spawning below -70 underground DM's have a tendency to hurl fire balls at unsuspecting players and can cause major damage, but get too close and he will switch to dogfight attack. Can drop mese or diamond when killed. + +Lava Flan + +- Cute as they may look lava flan wallow in their namesake (no, not flans) and get curious about players who wander by, forgetting that they can burn you and cause damage. They have a 1 in 5 chance of dropping lava orb when killed. + +Mese Monster + +- These mobs are territorial and spawn below -20 and will fire mese shards at passers by, so best avoided. Will drop mese when killed. + +Oerkki + +- Found in dark areas like most monsters Oerkki wander the caverns stealing away torches on the ground and attacking anyone found in that area. 1 in 3 chance of dropping obsidian. + +Sand Monster + +- The hot deserts are home to these guys who spawn at any time of the day to attack players. They drop 3-5 desert sand when killed. + +Spider + +- Found in dark holes inside desertstone (crystal biomes in ethereal), spiders wait for prey to amble past and strike. They are mostly docile during the day though unless hit. Will drop string when killed. + +New Spiders + +- Snowy spiders are found on higher cold areas, Tarantula's in higher jungle, Cave spider below -20 and Mese spider near areas containing the ore. + +Stone Monster + +- Found underground in dark caves these mobs seem to be zombie-like in fashion with a tendency to rush a player in the area. can drop torch, iron or coal when killed. + +Tree Monster + +- Found atop tree's at night time they drop down and look for food in the form of players and animals. Can drop saplings and sometimes an apple or three. + +Lucky Blocks: 11 diff --git a/mobs_monster/sand_monster.lua b/mobs_monster/sand_monster.lua new file mode 100644 index 0000000..ca27fb6 --- /dev/null +++ b/mobs_monster/sand_monster.lua @@ -0,0 +1,108 @@ + +local S = mobs.intllib + + +-- custom particle effects +local effect = function(pos, amount, texture, min_size, max_size, radius, gravity, glow) + + radius = radius or 2 + min_size = min_size or 0.5 + max_size = max_size or 1 + gravity = gravity or -10 + glow = glow or 0 + + minetest.add_particlespawner({ + amount = amount, + time = 0.25, + minpos = pos, + maxpos = pos, + minvel = {x = -radius, y = -radius, z = -radius}, + maxvel = {x = radius, y = radius, z = radius}, + minacc = {x = 0, y = gravity, z = 0}, + maxacc = {x = -20, y = gravity, z = 15}, + minexptime = 0.1, + maxexptime = 1, + minsize = min_size, + maxsize = max_size, + texture = texture, + glow = glow, + }) +end + + +-- Sand Monster by PilzAdam + +mobs:register_mob("mobs_monster:sand_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + pathfinding = true, + --specific_attack = {"player", "mobs_npc:npc"}, + reach = 2, + damage = 1, + hp_min = 4, + hp_max = 20, + armor = 100, + collisionbox = {-0.4, -1, -0.4, 0.4, 0.8, 0.4}, + visual = "mesh", + mesh = "mobs_sand_monster.b3d", + textures = { + {"mobs_sand_monster.png"}, + }, + blood_texture = "default_desert_sand.png", + makes_footstep_sound = true, + sounds = { + random = "mobs_sandmonster", + }, + walk_velocity = 1.5, + run_velocity = 4, + view_range = 8, --15 + jump = true, + floats = 0, + drops = { + {name = "default:desert_sand", chance = 1, min = 3, max = 5}, + }, + water_damage = 3, + lava_damage = 4, + light_damage = 0, + fear_height = 4, + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 39, + walk_start = 41, + walk_end = 72, + run_start = 74, + run_end = 105, + punch_start = 74, + punch_end = 105, + }, +--[[ + custom_attack = function(self, p) + local pos = self.object:get_pos() + minetest.add_item(pos, "default:sand") + end, +]] + on_die = function(self, pos) + pos.y = pos.y + 0.5 + effect(pos, 30, "mobs_sand_particles.png", 0.1, 2, 3, 5) + pos.y = pos.y + 0.25 + effect(pos, 30, "mobs_sand_particles.png", 0.1, 2, 3, 5) + end, +}) + + +mobs:spawn({ + name = "mobs_monster:sand_monster", + nodes = {"default:desert_sand"}, + chance = 7000, + active_object_count = 2, + min_height = 0, +}) + + +mobs:register_egg("mobs_monster:sand_monster", S("Sand Monster"), "default_desert_sand.png", 1) + + +mobs:alias_mob("mobs:sand_monster", "mobs_monster:sand_monster") -- compatibility diff --git a/mobs_monster/spider.lua b/mobs_monster/spider.lua new file mode 100644 index 0000000..bf1f03d --- /dev/null +++ b/mobs_monster/spider.lua @@ -0,0 +1,111 @@ + +local S = mobs.intllib + + +-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture) + +mobs:register_mob("mobs_monster:spider", { + docile_by_day = true, + group_attack = true, + type = "monster", + passive = false, + attack_type = "dogfight", + reach = 2, + damage = 3, + hp_min = 20, + hp_max = 40, + armor = 200, + collisionbox = {-0.9, -0.01, -0.7, 0.7, 0.6, 0.7}, + visual = "mesh", + mesh = "mobs_spider.x", + textures = { + {"mobs_spider.png"}, + }, + visual_size = {x = 7, y = 7}, + makes_footstep_sound = false, + sounds = { + random = "mobs_spider", + attack = "mobs_spider", + }, + walk_velocity = 1, + run_velocity = 3, + jump = true, + view_range = 15, + floats = 0, + drops = { + {name = "farming:string", chance = 1, min = 1, max = 2}, + {name = "ethereal:crystal_spike", chance = 15, min = 1, max = 2}, + }, + water_damage = 5, + lava_damage = 5, + light_damage = 0, + animation = { + speed_normal = 15, + speed_run = 20,--15, + stand_start = 1, + stand_end = 1, + walk_start = 20, + walk_end = 40, + run_start = 20, + run_end = 40, + punch_start = 50, + punch_end = 90, + }, +}) + + +local spawn_on = "default:desert_stone" + +if minetest.get_modpath("ethereal") then + spawn_on = "ethereal:crystal_dirt" +else + minetest.register_alias("ethereal:crystal_spike", "default:sandstone") +end + +mobs:spawn({ + name = "mobs_monster:spider", + nodes = {spawn_on}, + min_light = 0, + max_light = 12, + chance = 7000, + active_object_count = 1, + min_height = -50, + max_height = 31000, +}) + + +mobs:register_egg("mobs_monster:spider", S("Spider"), "mobs_cobweb.png", 1) + + +mobs:alias_mob("mobs:spider", "mobs_monster:spider") -- compatibility + + +-- cobweb +minetest.register_node(":mobs:cobweb", { + description = S("Cobweb"), + drawtype = "plantlike", + visual_scale = 1.2, + tiles = {"mobs_cobweb.png"}, + inventory_image = "mobs_cobweb.png", + paramtype = "light", + sunlight_propagates = true, + liquid_viscosity = 11, + liquidtype = "source", + liquid_alternative_flowing = "mobs:cobweb", + liquid_alternative_source = "mobs:cobweb", + liquid_renewable = false, + liquid_range = 0, + walkable = false, + groups = {snappy = 1, disable_jump = 1}, + drop = "farming:cotton", + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craft({ + output = "mobs:cobweb", + recipe = { + {"farming:string", "", "farming:string"}, + {"", "farming:string", ""}, + {"farming:string", "", "farming:string"}, + } +}) diff --git a/mobs_monster/spider2.lua b/mobs_monster/spider2.lua new file mode 100644 index 0000000..d8fa737 --- /dev/null +++ b/mobs_monster/spider2.lua @@ -0,0 +1,115 @@ + +local S = mobs.intllib + + +-- Spider by AspireMint (CC-BY-SA 3.0 license) + +mobs:register_mob("mobs_monster:spider2", { + --docile_by_day = true, + group_attack = true, + type = "monster", + passive = false, + attack_type = "dogfight", + reach = 2, + damage = 3, + hp_min = 10, + hp_max = 30, + armor = 200, + collisionbox = {-0.8, -0.5, -0.8, 0.8, 0, 0.8}, + visual_size = {x = 1, y = 1}, + visual = "mesh", + mesh = "mobs_spider2.b3d", + textures = { + {"mobs_spider_mese.png"}, + {"mobs_spider_orange.png"}, + {"mobs_spider_snowy.png"}, + {"mobs_spider_grey.png"}, + }, + makes_footstep_sound = false, + sounds = { + random = "mobs_spider", + attack = "mobs_spider", + }, + walk_velocity = 1, + run_velocity = 3, + jump = true, + view_range = 15, + floats = 0, + drops = { + {name = "farming:string", chance = 1, min = 1, max = 3}, + }, + water_damage = 5, + lava_damage = 5, + light_damage = 0, + animation = { + speed_normal = 15, + speed_run = 20,--15, + stand_start = 0, + stand_end = 0, + walk_start = 1, + walk_end = 21, + run_start = 1, + run_end = 21, + punch_start = 25, + punch_end = 45, + }, + -- what kind of spider are we spawning? + on_spawn = function(self) + + local pos = self.object:get_pos() ; pos.y = pos.y - 1 + + -- snowy spider + if minetest.find_node_near(pos, 1, + {"default:snow", "default:snowblock", "default:dirt_with_snow"}) then + self.base_texture = {"mobs_spider_snowy.png"} + self.object:set_properties({textures = self.base_texture}) + self.docile_by_day = true + -- tarantula + elseif minetest.find_node_near(pos, 1, + {"default:dirt_with_rainforest_litter", "default:jungletree"}) then + self.base_texture = {"mobs_spider_orange.png"} + self.object:set_properties({textures = self.base_texture}) + self.docile_by_day = true + -- grey spider + elseif minetest.find_node_near(pos, 1, + {"default:stone", "default:gravel"}) then + self.base_texture = {"mobs_spider_grey.png"} + self.object:set_properties({textures = self.base_texture}) + -- mese spider + elseif minetest.find_node_near(pos, 1, + {"default:mese", "default:stone_with_mese"}) then + self.base_texture = {"mobs_spider_mese.png"} + self.object:set_properties({textures = self.base_texture}) + end + + return true -- run only once, false/nil runs every activation + end, +}) + + +-- above ground spawn +mobs:spawn({ + name = "mobs_monster:spider2", + nodes = {"default:dirt_with_rainforest_litter", "default:snowblock", "default:snow"}, + min_light = 0, + max_light = 8, + chance = 7000, + active_object_count = 1, + min_height = 25, + max_height = 31000, +}) + +-- below ground spawn +mobs:spawn({ + name = "mobs_monster:spider2", + nodes = {"default:stone_with_mese", "default:mese", "default:stone"}, + min_light = 0, + max_light = 7, + chance = 7000, + active_object_count = 1, + min_height = -31000, + max_height = -40, +}) + + +mobs:register_egg("mobs_monster:spider2", S("Spider2"), "mobs_cobweb.png", 1)