milan2018 #1

Merged
milan merged 87 commits from milan2018 into master 2020-04-01 20:54:51 +02:00
5 changed files with 452 additions and 0 deletions
Showing only changes of commit f583f80004 - Show all commits

74
mobs_monster/oerkki.lua Normal file
View file

@ -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

44
mobs_monster/readme.md Normal file
View file

@ -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

View file

@ -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

111
mobs_monster/spider.lua Normal file
View file

@ -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"},
}
})

115
mobs_monster/spider2.lua Normal file
View file

@ -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)