Modify mobs from original mods.
... rather than copying them.
This commit is contained in:
parent
0c788eb537
commit
0f09bd5cc8
26 changed files with 195 additions and 6606 deletions
13
LICENSE
13
LICENSE
|
@ -1,10 +1,3 @@
|
|||
Much of the code and art from this mod were taken nearly unchanged from
|
||||
Mobs Redo, made by TenPlus1 and many others, and distributed under the
|
||||
WTFPL license.
|
||||
|
||||
https://forum.minetest.net/viewtopic.php?f=11&t=9917
|
||||
|
||||
|
||||
All of the goblin code and art are taken from FreeLikeGNU's Goblins mod,
|
||||
distributed under the CC-by-SA license.
|
||||
|
||||
|
@ -18,12 +11,6 @@ mod, distributed under the WTFPL license.
|
|||
https://forum.minetest.net/viewtopic.php?f=9&t=9522
|
||||
|
||||
|
||||
The changes I've made to these mods are minor, but crucial to dealing
|
||||
with an all-underground environment. The mobs don't have vertical
|
||||
range limits, are less affected by light, and they behave a bit
|
||||
differently from the originals.
|
||||
|
||||
|
||||
|
||||
The rest of this mod is distributed under the LGPL 2.1 license for
|
||||
historic reasons.
|
||||
|
|
128
danglers.lua
128
danglers.lua
|
@ -1,128 +0,0 @@
|
|||
|
||||
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
||||
|
||||
function fun_caves.climb(self)
|
||||
if self.state == "stand" and math.random() < 0.2 then
|
||||
if self.fall_speed == 2 then
|
||||
self.fall_speed = -2
|
||||
else
|
||||
self.fall_speed = 2
|
||||
end
|
||||
elseif self.state == "attack" and self.fall_speed ~= -2 then
|
||||
self.fall_speed = -2
|
||||
end
|
||||
end
|
||||
|
||||
mobs:register_mob("fun_caves:dangler", {
|
||||
description = "Dangling Spider",
|
||||
type = "monster",
|
||||
passive = false,
|
||||
attack_type = "dogfight",
|
||||
attacks_monsters = true,
|
||||
reach = 2,
|
||||
damage = 1,
|
||||
hp_min = 10,
|
||||
hp_max = 20,
|
||||
armor = 200,
|
||||
collisionbox = {-0.32, -0.0, -0.25, 0.25, 0.25, 0.25},
|
||||
visual = "mesh",
|
||||
mesh = "fun_caves_spider.x",
|
||||
drawtype = "front",
|
||||
textures = {
|
||||
{"mobs_spider.png"},
|
||||
},
|
||||
visual_size = {x = 1.5, y = 1.5},
|
||||
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 = "mobs:meat_raw", chance = 2, min = 1, max = 1},
|
||||
{name = "farming:cotton", chance = 2, min = 1, max = 2},
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
cold_damage = 1,
|
||||
light_damage = 0,
|
||||
fall_damage = 0,
|
||||
lifetimer = 360,
|
||||
follow = nil,
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 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,
|
||||
},
|
||||
replace_rate = 50,
|
||||
--replace_what = {"mobs:cobweb", "fun_caves:glowing_fungal_wood", "fun_caves:sap",},
|
||||
--replace_with = "air",
|
||||
--replace_offset = -1,
|
||||
do_custom = function(self)
|
||||
if not fun_caves.custom_ready(self) then
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.climb(self)
|
||||
fun_caves.search_replace(self.object:getpos(), 100, {"air"}, "mobs:cobweb")
|
||||
|
||||
fun_caves.surface_damage(self)
|
||||
end,
|
||||
})
|
||||
|
||||
mobs:register_spawn("fun_caves:dangler", {"fun_caves:stone_with_moss", "fun_caves:stone_with_lichen", "fun_caves:stone_with_algae"}, 14, 0, 2500, 3, -51)
|
||||
|
||||
mobs:register_egg("fun_caves:dangler", "Dangling Spider", "mobs_cobweb.png", 1)
|
||||
|
||||
|
||||
-- cobweb
|
||||
if not minetest.registered_nodes['mobs:cobweb'] then
|
||||
minetest.register_node(":mobs:cobweb", {
|
||||
description = "Cobweb",
|
||||
drawtype = "plantlike",
|
||||
visual_scale = 1.1,
|
||||
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, liquid = 3},
|
||||
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"},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"mobs:cobweb"},
|
||||
interval = 500,
|
||||
chance = 50,
|
||||
action = function(pos, node)
|
||||
minetest.set_node(pos, {name = "air"})
|
||||
end
|
||||
})
|
|
@ -7,3 +7,4 @@ mobs?
|
|||
mobs_monster?
|
||||
mobs_slimes?
|
||||
mobs_creeper?
|
||||
dmobs?
|
||||
|
|
59
elephant.lua
59
elephant.lua
|
@ -1,59 +0,0 @@
|
|||
|
||||
-- elephant from dmobs by D00Med (LGPL v2.1, textures CC-BY-SA v3.0)
|
||||
|
||||
mobs:register_mob("fun_caves:elephant", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
reach = 3,
|
||||
damage = 4,
|
||||
attack_type = "dogfight",
|
||||
hp_min = 12,
|
||||
hp_max = 22,
|
||||
armor = 130,
|
||||
collisionbox = {-0.9, -1.2, -0.9, 0.9, 0.9, 0.9},
|
||||
visual = "mesh",
|
||||
mesh = "fun_caves_elephant.b3d",
|
||||
textures = {
|
||||
{"fun_caves_elephant.png"},
|
||||
},
|
||||
blood_texture = "mobs_blood.png",
|
||||
visual_size = {x=2.5, y=2.5},
|
||||
makes_footstep_sound = true,
|
||||
walk_velocity = 1.1,
|
||||
run_velocity = 1.2,
|
||||
jump = false,
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
light_damage = 0,
|
||||
replace_rate = 10,
|
||||
replace_what = {"default:dry_grass_3", "default:dry_grass_4", "default:dry_grass_5", "farming:straw", "fun_caves:dry_fiber"},
|
||||
replace_with = "air",
|
||||
follow = {"farming:wheat"},
|
||||
view_range = 9,
|
||||
drops = {
|
||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
animation = {
|
||||
speed_normal = 5,
|
||||
speed_run = 10,
|
||||
walk_start = 3,
|
||||
walk_end = 19,
|
||||
stand_start = 20,
|
||||
stand_end = 30,
|
||||
run_start = 3,
|
||||
run_end = 19,
|
||||
|
||||
},
|
||||
on_rightclick = function(self, clicker)
|
||||
|
||||
if mobs:feed_tame(self, clicker, 8, true, true) then
|
||||
return
|
||||
end
|
||||
|
||||
mobs:capture_mob(self, clicker, 0, 5, 50, false, nil)
|
||||
end,
|
||||
})
|
||||
|
||||
mobs:register_spawn("fun_caves:elephant", {"default:dirt_with_dry_grass","default:desert_sand"}, 20, 10, 17000, 2, 31000)
|
||||
|
||||
mobs:register_egg("fun_caves:elephant", "Elephant", "default_dry_grass.png", 1)
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_coal", {
|
|||
hp_min = 5,
|
||||
hp_max = 10,
|
||||
armor = 100,
|
||||
fear_height = 4,
|
||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||
visual = "mesh",
|
||||
mesh = "goblins_goblin.b3d",
|
||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_cobble", {
|
|||
hp_min = 5,
|
||||
hp_max = 10,
|
||||
armor = 100,
|
||||
fear_height = 4,
|
||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||
visual = "mesh",
|
||||
mesh = "goblins_goblin.b3d",
|
||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_copper", {
|
|||
hp_min = 10,
|
||||
hp_max = 20,
|
||||
armor = 100,
|
||||
fear_height = 4,
|
||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||
visual = "mesh",
|
||||
mesh = "goblins_goblin.b3d",
|
||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_diamond", {
|
|||
hp_min = 20,
|
||||
hp_max = 30,
|
||||
armor = 100,
|
||||
fear_height = 4,
|
||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||
visual = "mesh",
|
||||
mesh = "goblins_goblin.b3d",
|
||||
|
|
|
@ -106,6 +106,7 @@ mobs:register_mob("fun_caves:goblin_digger", {
|
|||
hp_min = 5,
|
||||
hp_max = 10,
|
||||
armor = 100,
|
||||
fear_height = 4,
|
||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||
visual = "mesh",
|
||||
mesh = "goblins_goblin.b3d",
|
||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_gold", {
|
|||
hp_min = 10,
|
||||
hp_max = 30,
|
||||
armor = 100,
|
||||
fear_height = 4,
|
||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||
visual = "mesh",
|
||||
mesh = "goblins_goblin.b3d",
|
||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_ice", {
|
|||
hp_min = 5,
|
||||
hp_max = 10,
|
||||
armor = 100,
|
||||
fear_height = 4,
|
||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||
visual = "mesh",
|
||||
mesh = "goblins_goblin.b3d",
|
||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_iron", {
|
|||
hp_min = 10,
|
||||
hp_max = 20,
|
||||
armor = 100,
|
||||
fear_height = 4,
|
||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||
visual = "mesh",
|
||||
mesh = "goblins_goblin.b3d",
|
||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_king", {
|
|||
hp_min = 20,
|
||||
hp_max = 40,
|
||||
armor = 100,
|
||||
fear_height = 4,
|
||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||
visual = "mesh",
|
||||
mesh = "goblins_goblin.b3d",
|
||||
|
|
|
@ -366,7 +366,7 @@ local function generate(p_minp, p_maxp, seed)
|
|||
biome_val = biome_val / max(1, log(y - fluid_compression))
|
||||
end
|
||||
-------------------
|
||||
--biome_val = 0.45
|
||||
--biome_val = -0.75
|
||||
-------------------
|
||||
if biome_val < -0.65 then
|
||||
stone_type = node["default:ice"]
|
||||
|
@ -683,8 +683,10 @@ local function generate(p_minp, p_maxp, seed)
|
|||
vm:set_data(data)
|
||||
--vm:set_param2_data(p2data)
|
||||
if fun_caves.DEBUG then
|
||||
vm:set_lighting({day = 15, night = 15})
|
||||
vm:set_lighting({day = 8, night = 8})
|
||||
else
|
||||
-- set_lighting causes shadows
|
||||
--vm:set_lighting({day = 0, night = 0})
|
||||
vm:calc_lighting({x=minp.x,y=emin.y,z=minp.z},maxp)
|
||||
end
|
||||
vm:update_liquids()
|
||||
|
|
187
mobs.lua
187
mobs.lua
|
@ -17,6 +17,18 @@ fun_caves.search_replace = function(pos, search_rate, replace_what, replace_with
|
|||
end
|
||||
end
|
||||
|
||||
function fun_caves.climb(self)
|
||||
if self.state == "stand" and math.random() < 0.2 then
|
||||
if self.fall_speed == 2 then
|
||||
self.fall_speed = -2
|
||||
else
|
||||
self.fall_speed = 2
|
||||
end
|
||||
elseif self.state == "attack" and self.fall_speed ~= -2 then
|
||||
self.fall_speed = -2
|
||||
end
|
||||
end
|
||||
|
||||
-- causes mobs to take damage from hot/cold surfaces
|
||||
fun_caves.surface_damage = function(self, cold_natured)
|
||||
--if not self.fun_caves_damage_timer then
|
||||
|
@ -63,13 +75,171 @@ fun_caves.custom_ready = function(self)
|
|||
end
|
||||
|
||||
|
||||
dofile(fun_caves.path .. "/danglers.lua")
|
||||
dofile(fun_caves.path .. "/spider.lua")
|
||||
dofile(fun_caves.path .. "/tarantula.lua")
|
||||
dofile(fun_caves.path .. "/spider_ice.lua")
|
||||
dofile(fun_caves.path .. "/sand_monster.lua")
|
||||
dofile(fun_caves.path .. "/tar_monster.lua")
|
||||
dofile(fun_caves.path .. "/elephant.lua")
|
||||
if minetest.registered_entities["mobs_monster:spider"] then
|
||||
-- Deep spider
|
||||
local m = table.copy(minetest.registered_entities["mobs_monster:spider"])
|
||||
m.docile_by_day = false
|
||||
m.drops = {
|
||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
|
||||
{name = "wool:black", chance = 1, min = 1, max = 3},
|
||||
}
|
||||
m.water_damage = 0
|
||||
m.do_custom = function(self)
|
||||
if not fun_caves.custom_ready(self) then
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.surface_damage(self)
|
||||
end
|
||||
|
||||
minetest.registered_entities["fun_caves:spider"] = m
|
||||
mobs.spawning_mobs["fun_caves:spider"] = true
|
||||
|
||||
mobs:register_spawn("fun_caves:spider", {"fun_caves:stone_with_moss", "fun_caves:stone_with_lichen", "fun_caves:stone_with_algae"}, 14, 0, 2000, 2, -51)
|
||||
|
||||
mobs:register_egg("fun_caves:spider", "Deep Spider", "mobs_cobweb.png", 1)
|
||||
|
||||
|
||||
-- ice spider
|
||||
m = table.copy(minetest.registered_entities["mobs_monster:spider"])
|
||||
m.docile_by_day = false
|
||||
m.textures = { {"fun_caves_spider_ice.png"}, }
|
||||
m.base_texture = m.textures[1]
|
||||
m.drops = {
|
||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
|
||||
{name = "wool:white", chance = 1, min = 1, max = 3},
|
||||
}
|
||||
m.water_damage = 0
|
||||
m.do_custom = function(self)
|
||||
if not fun_caves.custom_ready(self) then
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.surface_damage(self, true)
|
||||
end
|
||||
|
||||
minetest.registered_entities["fun_caves:spider_ice"] = m
|
||||
mobs.spawning_mobs["fun_caves:spider_ice"] = true
|
||||
|
||||
mobs:register_spawn("fun_caves:spider_ice", {"default:ice"}, 14, 0, 1000, 2, 31000)
|
||||
|
||||
mobs:register_egg("fun_caves:spider_ice", "Ice Spider", "mobs_cobweb.png", 1)
|
||||
|
||||
|
||||
-- dangling spiders
|
||||
m = table.copy(minetest.registered_entities["mobs_monster:spider"])
|
||||
m.docile_by_day = false
|
||||
m.attacks_monsters = true
|
||||
m.damage = 1
|
||||
m.hp_min = 10
|
||||
m.hp_max = 20
|
||||
m.water_damage = 0
|
||||
m.fall_damage = 0
|
||||
m.collisionbox = {-0.32, -0.0, -0.25, 0.25, 0.25, 0.25}
|
||||
m.visual_size = {x = 1.5, y = 1.5}
|
||||
m.drops = {
|
||||
{name = "mobs:meat_raw", chance = 2, min = 1, max = 1},
|
||||
{name = "farming:cotton", chance = 2, min = 1, max = 2},
|
||||
}
|
||||
m.do_custom = function(self)
|
||||
if not fun_caves.custom_ready(self) then
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.climb(self)
|
||||
fun_caves.search_replace(self.object:getpos(), 100, {"air"}, "mobs:cobweb")
|
||||
|
||||
fun_caves.surface_damage(self)
|
||||
end
|
||||
|
||||
minetest.registered_entities["fun_caves:dangler"] = m
|
||||
mobs.spawning_mobs["fun_caves:dangler"] = true
|
||||
|
||||
mobs:register_spawn("fun_caves:dangler", {"fun_caves:stone_with_moss", "fun_caves:stone_with_lichen", "fun_caves:stone_with_algae"}, 14, 0, 1000, 3, -51)
|
||||
|
||||
mobs:register_egg("fun_caves:dangler", "Dangling Spider", "mobs_cobweb.png", 1)
|
||||
|
||||
|
||||
-- tarantula
|
||||
m = table.copy(minetest.registered_entities["mobs_monster:spider"])
|
||||
m.type = "animal"
|
||||
m.reach = 1
|
||||
m.damage = 1
|
||||
m.hp_min = 1
|
||||
m.hp_max = 2
|
||||
m.collisionbox = {-0.15, -0.01, -0.15, 0.15, 0.1, 0.15}
|
||||
m.textures = { {"fun_caves_tarantula.png"}, }
|
||||
m.base_texture = m.textures[1]
|
||||
m.visual_size = {x = 1, y = 1}
|
||||
m.sounds = {}
|
||||
m.run_velocity = 2
|
||||
m.jump = false
|
||||
m.drops = { {name = "mobs:meat_raw", chance = 1, min = 1, max = 1}, }
|
||||
m.do_custom = function(self)
|
||||
if not self.fun_caves_damage_timer then
|
||||
self.fun_caves_damage_timer = 0
|
||||
end
|
||||
|
||||
fun_caves.surface_damage(self)
|
||||
end
|
||||
minetest.registered_entities["fun_caves:tarantula"] = m
|
||||
mobs.spawning_mobs["fun_caves:tarantula"] = true
|
||||
|
||||
mobs:register_spawn("fun_caves:tarantula", {"default:desert_sand", "default:dirt_with_dry_grass"}, 99, 0, 3000, 2, 31000)
|
||||
|
||||
mobs:register_egg("fun_caves:tarantula", "Tarantula", "mobs_cobweb.png", 1)
|
||||
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"mobs:cobweb"},
|
||||
interval = 500,
|
||||
chance = 50,
|
||||
action = function(pos, node)
|
||||
minetest.set_node(pos, {name = "air"})
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
if minetest.registered_entities["mobs_monster:sand_monster"] then
|
||||
local m = table.copy(minetest.registered_entities["mobs_monster:sand_monster"])
|
||||
m.damage = 2
|
||||
m.hp_min = 15
|
||||
m.hp_max = 40
|
||||
m.textures = { {"fun_caves_tar_monster.png"}, }
|
||||
m.base_texture = m.textures[1]
|
||||
m.drops = { {name = "default:coal_lump", chance = 1, min = 3, max = 5}, }
|
||||
m.water_damage = 1
|
||||
m.lava_damage = 2
|
||||
m.light_damage = 1
|
||||
|
||||
minetest.registered_entities["fun_caves:tar_monster"] = m
|
||||
mobs.spawning_mobs["fun_caves:tar_monster"] = true
|
||||
|
||||
mobs:register_spawn("fun_caves:tar_monster", {"fun_caves:black_sand"}, 20, 0, 4000, 1, 31000)
|
||||
|
||||
mobs:register_egg("fun_caves:tar_monster", "Tar Monster", "fun_caves_black_sand.png", 1)
|
||||
|
||||
|
||||
m = table.copy(minetest.registered_entities["mobs_monster:sand_monster"])
|
||||
m.textures = { {"fun_caves_sand_monster.png"}, }
|
||||
m.base_texture = m.textures[1]
|
||||
m.drops = { {name = "default:sand", chance = 1, min = 3, max = 5}, }
|
||||
|
||||
minetest.registered_entities["fun_caves:sand_monster"] = m
|
||||
mobs.spawning_mobs["fun_caves:sand_monster"] = true
|
||||
|
||||
mobs:register_spawn("fun_caves:sand_monster", {"default:sand"}, 20, 0, 4000, 3, -50)
|
||||
|
||||
mobs:register_egg("fun_caves:sand_monster", "Deep Sand Monster", "default_sand.png", 1)
|
||||
end
|
||||
|
||||
-- Change the original, rather than making a copy.
|
||||
if minetest.registered_entities["dmobs:elephant"] then
|
||||
local m = minetest.registered_entities["dmobs:elephant"]
|
||||
m.type = "monster"
|
||||
m.reach = 3
|
||||
m.damage = 3
|
||||
end
|
||||
|
||||
if minetest.registered_entities["mobs_monster:dirt_monster"] then
|
||||
-- check this
|
||||
|
@ -140,6 +310,9 @@ local t_mobs = {
|
|||
"fun_caves:goblin_gold",
|
||||
"fun_caves:goblin_diamond",
|
||||
"fun_caves:goblin_king",
|
||||
"dmobs:orc",
|
||||
"dmobs:ogre",
|
||||
"dmobs:dragon",
|
||||
}
|
||||
for _, mob in pairs(t_mobs) do
|
||||
if minetest.registered_entities[mob] then
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -1,52 +0,0 @@
|
|||
|
||||
-- Sand Monster by PilzAdam
|
||||
|
||||
mobs:register_mob("fun_caves:sand_monster", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
attack_type = "dogfight",
|
||||
pathfinding = true,
|
||||
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 = {
|
||||
{"fun_caves_sand_monster.png"},
|
||||
},
|
||||
makes_footstep_sound = true,
|
||||
sounds = {
|
||||
random = "mobs_sandmonster",
|
||||
},
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 4,
|
||||
view_range = 15,
|
||||
jump = true,
|
||||
floats = 0,
|
||||
drops = {
|
||||
{name = "default: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,
|
||||
},
|
||||
})
|
||||
|
||||
mobs:register_spawn("fun_caves:sand_monster", {"default:sand"}, 20, 0, 4000, 3, -50)
|
||||
|
||||
mobs:register_egg("fun_caves:sand_monster", "Deep Sand Monster", "default_sand.png", 1)
|
61
spider.lua
61
spider.lua
|
@ -1,61 +0,0 @@
|
|||
|
||||
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
||||
|
||||
mobs:register_mob("fun_caves:spider", {
|
||||
docile_by_day = 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 = "fun_caves_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 = "mobs:meat_raw", chance = 1, min = 1, max = 3},
|
||||
{name = "wool:black", chance = 1, min = 1, max = 3},
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 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,
|
||||
},
|
||||
do_custom = function(self)
|
||||
if not fun_caves.custom_ready(self) then
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.surface_damage(self)
|
||||
end,
|
||||
})
|
||||
|
||||
mobs:register_spawn("fun_caves:spider", {"fun_caves:stone_with_moss", "fun_caves:stone_with_lichen", "fun_caves:stone_with_algae"}, 14, 0, 5000, 2, -51)
|
||||
|
||||
mobs:register_egg("fun_caves:spider", "Deep Spider", "mobs_cobweb.png", 1)
|
|
@ -1,62 +0,0 @@
|
|||
|
||||
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
||||
|
||||
mobs:register_mob("fun_caves:spider_ice", {
|
||||
docile_by_day = 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 = "fun_caves_spider.x",
|
||||
textures = {
|
||||
{"fun_caves_spider_ice.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 = "mobs:meat_raw", chance = 1, min = 1, max = 3},
|
||||
{name = "wool:white", chance = 1, min = 1, max = 3},
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
cold_damage = 0,
|
||||
light_damage = 0,
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 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,
|
||||
},
|
||||
do_custom = function(self)
|
||||
if not fun_caves.custom_ready(self) then
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.surface_damage(self, true)
|
||||
end,
|
||||
})
|
||||
|
||||
mobs:register_spawn("fun_caves:spider_ice", {"default:ice"}, 14, 0, 1000, 2, 31000)
|
||||
|
||||
mobs:register_egg("fun_caves:spider_ice", "Ice Spider", "mobs_cobweb.png", 1)
|
|
@ -1,58 +0,0 @@
|
|||
|
||||
-- Sand Monster by PilzAdam
|
||||
|
||||
mobs:register_mob("fun_caves:tar_monster", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
attack_type = "dogfight",
|
||||
pathfinding = true,
|
||||
reach = 2,
|
||||
damage = 2,
|
||||
hp_min = 15,
|
||||
hp_max = 40,
|
||||
armor = 100,
|
||||
collisionbox = {-0.4, -1, -0.4, 0.4, 0.8, 0.4},
|
||||
visual = "mesh",
|
||||
mesh = "mobs_sand_monster.b3d",
|
||||
textures = {
|
||||
{"fun_caves_tar_monster.png"},
|
||||
},
|
||||
makes_footstep_sound = true,
|
||||
sounds = {
|
||||
random = "mobs_sandmonster",
|
||||
},
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 4,
|
||||
view_range = 15,
|
||||
jump = true,
|
||||
floats = 0,
|
||||
drops = {
|
||||
{name = "default:coal_lump", chance = 1, min = 3, max = 5},
|
||||
},
|
||||
water_damage = 1,
|
||||
lava_damage = 2,
|
||||
light_damage = 1,
|
||||
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:getpos()
|
||||
minetest.add_item(pos, "default:sand")
|
||||
end,
|
||||
]]
|
||||
})
|
||||
|
||||
mobs:register_spawn("fun_caves:tar_monster", {"fun_caves:black_sand"}, 20, 0, 4000, 1, 31000)
|
||||
|
||||
mobs:register_egg("fun_caves:tar_monster", "Tar Monster", "fun_caves_black_sand.png", 1)
|
|
@ -1,60 +0,0 @@
|
|||
|
||||
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
||||
|
||||
mobs:register_mob("fun_caves:tarantula", {
|
||||
docile_by_day = true,
|
||||
type = "monster",
|
||||
passive = false,
|
||||
attack_type = "dogfight",
|
||||
reach = 1,
|
||||
damage = 1,
|
||||
hp_min = 1,
|
||||
hp_max = 2,
|
||||
armor = 200,
|
||||
collisionbox = {-0.15, -0.01, -0.15, 0.15, 0.1, 0.15},
|
||||
visual = "mesh",
|
||||
mesh = "fun_caves_spider.x",
|
||||
textures = {
|
||||
{"fun_caves_tarantula.png"},
|
||||
},
|
||||
visual_size = {x = 1, y = 1},
|
||||
makes_footstep_sound = false,
|
||||
--sounds = {
|
||||
-- random = "mobs_spider",
|
||||
-- attack = "mobs_spider",
|
||||
--},
|
||||
walk_velocity = 1,
|
||||
run_velocity = 2,
|
||||
jump = false,
|
||||
view_range = 15,
|
||||
floats = 0,
|
||||
drops = {
|
||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 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,
|
||||
},
|
||||
do_custom = function(self)
|
||||
if not self.fun_caves_damage_timer then
|
||||
self.fun_caves_damage_timer = 0
|
||||
end
|
||||
|
||||
fun_caves.surface_damage(self)
|
||||
end,
|
||||
})
|
||||
|
||||
mobs:register_spawn("fun_caves:tarantula", {"default:desert_sand", "default:dirt_with_dry_grass"}, 99, 0, 3000, 2, 31000)
|
||||
|
||||
--mobs:register_egg("fun_caves:spider", "Deep Spider", "mobs_cobweb.png", 1)
|
Binary file not shown.
Before Width: | Height: | Size: 59 KiB |
|
@ -1,3 +1,2 @@
|
|||
Elephant textures and model: DOOMED <heiselong@gmx.com>
|
||||
Original spider textures and model: AspireMint and fishyWET
|
||||
Original spider textures: AspireMint
|
||||
Original goblins textures and models: Francisco "FreeLikeGNU" Athens
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2 KiB |
Loading…
Add table
Add a link
Reference in a new issue