1
0
mirror of https://codeberg.org/tenplus1/mobs_monster.git synced 2024-12-22 17:00:26 +01:00

Initial Monsters upload

This commit is contained in:
TenPlus1 2016-04-15 15:00:45 +01:00
commit e468946194
51 changed files with 13331 additions and 0 deletions

2
depends.txt Normal file
View File

@ -0,0 +1,2 @@
default
mobs

1
description.txt Normal file
View File

@ -0,0 +1 @@
Adds many types of monster.

55
dirt_monster.lua Normal file
View File

@ -0,0 +1,55 @@
-- Dirt Monster by PilzAdam
mobs:register_mob("mobs_monster:dirt_monster", {
type = "monster",
passive = false,
attack_type = "dogfight",
pathfinding = true,
reach = 2,
damage = 2,
hp_min = 3,
hp_max = 27,
armor = 100,
collisionbox = {-0.4, -1, -0.4, 0.4, 0.8, 0.4},
visual = "mesh",
mesh = "mobs_stone_monster.b3d",
textures = {
{"mobs_dirt_monster.png"},
},
blood_texture = "default_dirt.png",
makes_footstep_sound = true,
sounds = {
random = "mobs_dirtmonster",
},
view_range = 15,
walk_velocity = 1,
run_velocity = 3,
jump = true,
drops = {
{name = "default:dirt", chance = 1, min = 3, max = 5},
},
water_damage = 1,
lava_damage = 5,
light_damage = 2,
fear_height = 4,
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 0,
stand_end = 14,
walk_start = 15,
walk_end = 38,
run_start = 40,
run_end = 63,
punch_start = 40,
punch_end = 63,
},
})
mobs:register_spawn("mobs_monster:dirt_monster",
{"default:dirt_with_grass", "ethereal:gray_dirt"}, 7, 0, 7000, 1, 31000, false)
mobs:register_egg("mobs_monster:dirt_monster", "Dirt Monster", "default_dirt.png", 1)
minetest.register_alias("mobs:dirt_monster", "mobs_monster:dirt_monster")

87
dungeon_master.lua Normal file
View File

@ -0,0 +1,87 @@
-- Dungeon Master by PilzAdam
mobs:register_mob("mobs_monster:dungeon_master", {
type = "monster",
passive = false,
damage = 4,
attack_type = "dogshoot",
reach = 3,
shoot_interval = 2.5,
arrow = "mobs_monster:fireball",
shoot_offset = 1,
hp_min = 12,
hp_max = 35,
armor = 60,
collisionbox = {-0.7, -1, -0.7, 0.7, 1.6, 0.7},
visual = "mesh",
mesh = "mobs_dungeon_master.b3d",
textures = {
{"mobs_dungeon_master.png"},
{"mobs_dungeon_master2.png"},
{"mobs_dungeon_master3.png"},
},
makes_footstep_sound = true,
sounds = {
random = "mobs_dungeonmaster",
shoot_attack = "mobs_fireball",
},
walk_velocity = 1,
run_velocity = 3,
jump = true,
view_range = 15,
drops = {
{name = "default:mese_crystal_fragment", chance = 1, min = 1, max = 3},
{name = "default:diamond", chance = 4, min = 1, max = 1},
{name = "default:mese_crystal", chance = 2, min = 1, max = 2},
{name = "default:diamondblock", chance = 30, min = 1, max = 1},
},
water_damage = 1,
lava_damage = 1,
light_damage = 0,
fear_height = 3,
animation = {
stand_start = 0,
stand_end = 19,
walk_start = 20,
walk_end = 35,
punch_start = 36,
punch_end = 48,
speed_normal = 15,
speed_run = 15,
},
})
mobs:register_spawn("mobs_monster:dungeon_master", {"default:stone"}, 7, 0, 7000, 1, -70)
mobs:register_egg("mobs_monster:dungeon_master", "Dungeon Master", "fire_basic_flame.png", 1, true)
minetest.register_alias("mobs:dungeon_master", "mobs_monster:dungeon_master")
-- fireball (weapon)
mobs:register_arrow("mobs_monster:fireball", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"mobs_fireball.png"},
velocity = 6,
-- direct hit, no fire... just plenty of pain
hit_player = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 8},
}, nil)
end,
hit_mob = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 8},
}, nil)
end,
-- node hit, bursts into flame
hit_node = function(self, pos, node)
mobs:explosion(pos, 1, 1, 0)
end
})

16
init.lua Normal file
View File

@ -0,0 +1,16 @@
local path = minetest.get_modpath("mobs_monster")
-- Monsters
dofile(path .. "/dirt_monster.lua") -- PilzAdam
dofile(path .. "/dungeon_master.lua")
dofile(path .. "/oerkki.lua")
dofile(path .. "/sand_monster.lua")
dofile(path .. "/stone_monster.lua")
dofile(path .. "/tree_monster.lua")
dofile(path .. "/lava_flan.lua") -- Zeg9
dofile(path .. "/mese_monster.lua")
dofile(path .. "/spider.lua") -- AspireMint
print ("[MOD] Mobs Redo 'Monsters' loaded")

140
lava_flan.lua Normal file
View File

@ -0,0 +1,140 @@
-- Lava Flan by Zeg9 (additional textures by JurajVajda)
mobs:register_mob("mobs_monster:lava_flan", {
type = "monster",
passive = false,
attack_type = "dogfight",
reach = 2,
damage = 3,
hp_min = 10,
hp_max = 35,
armor = 80,
collisionbox = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5},
visual = "mesh",
mesh = "zmobs_lava_flan.x",
textures = {
{"zmobs_lava_flan.png"},
{"zmobs_lava_flan2.png"},
{"zmobs_lava_flan3.png"},
},
blood_texture = "fire_basic_flame.png",
makes_footstep_sound = false,
sounds = {
random = "mobs_lavaflan",
war_cry = "mobs_lavaflan",
},
walk_velocity = 0.5,
run_velocity = 2,
jump = true,
view_range = 10,
floats = 1,
drops = {
{name = "mobs:lava_orb", chance = 15, min = 1, max = 1},
},
water_damage = 5,
lava_damage = 0,
light_damage = 0,
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 0,
stand_end = 8,
walk_start = 10,
walk_end = 18,
run_start = 20,
run_end = 28,
punch_start = 20,
punch_end = 28,
},
on_die = function(self, pos)
minetest.set_node(pos, {name = "fire:basic_flame"})
end,
})
mobs:register_spawn("mobs_monster:lava_flan", {"default:lava_source"}, 15, 0, 1000, 2, 0)
mobs:register_egg("mobs_monster:lava_flan", "Lava Flan", "default_lava.png", 1)
minetest.register_alias("mobs:lava_flan", "mobs_monster:lava_flan")
-- lava orb
minetest.register_craftitem(":mobs:lava_orb", {
description = "Lava orb",
inventory_image = "zmobs_lava_orb.png",
})
minetest.register_alias("zmobs:lava_orb", "mobs:lava_orb")
minetest.register_craft({
type = "fuel",
recipe = "mobs:lava_orb",
burntime = 80,
})
-- Lava Pick (digs and smelts at same time)
local old_handle_node_drops = minetest.handle_node_drops
function minetest.handle_node_drops(pos, drops, digger)
-- are we holding Lava Pick?
if digger:get_wielded_item():get_name() ~= ("mobs:pick_lava") then
return old_handle_node_drops(pos, drops, digger)
end
-- reset new smelted drops
local hot_drops = {}
-- loop through current node drops
for _, drop in pairs(drops) do
-- get cooked output of current drops
local stack = ItemStack(drop)
local output = minetest.get_craft_result({
method = "cooking",
width = 1,
items = {drop}
})
-- if we have cooked result then add to new list
if output
and output.item
and not output.item:is_empty() then
table.insert(hot_drops,
ItemStack({
name = output.item:get_name(),
count = stack:get_count()
})
)
else -- if not then return normal drops
table.insert(hot_drops, stack)
end
end
return old_handle_node_drops(pos, hot_drops, digger)
end
minetest.register_tool(":mobs:pick_lava", {
description = "Lava Pickaxe",
inventory_image = "mobs_pick_lava.png",
tool_capabilities = {
full_punch_interval = 0.4,
max_drop_level=3,
groupcaps={
cracky = {times={[1]=1.80, [2]=0.90, [3]=0.45}, uses=30, maxlevel=3},
},
damage_groups = {fleshy=6},
},
})
minetest.register_craft({
output = "mobs:pick_lava",
recipe = {
{"mobs:lava_orb", "mobs:lava_orb", "mobs:lava_orb"},
{"", "default:obsidian_shard", ""},
{"", "default:obsidian_shard", ""},
}
})

94
mese_monster.lua Normal file
View File

@ -0,0 +1,94 @@
-- Mese Monster by Zeg9
mobs:register_mob("mobs_monster:mese_monster", {
type = "monster",
passive = false,
damage = 3,
attack_type = "shoot",
shoot_interval = 0.5,
arrow = "mobs_monster:mese_arrow",
shoot_offset = 2,
hp_min = 10,
hp_max = 25,
armor = 80,
collisionbox = {-0.5, -1.5, -0.5, 0.5, 0.5, 0.5},
visual = "mesh",
mesh = "zmobs_mese_monster.x",
textures = {
{"zmobs_mese_monster.png"},
},
blood_texture = "default_mese_crystal_fragment.png",
makes_footstep_sound = false,
sounds = {
random = "mobs_mesemonster",
},
view_range = 10,
walk_velocity = 0.5,
run_velocity = 2,
jump = true,
jump_height = 8,
fall_damage = 0,
fall_speed = -6,
stepheight = 2.1,
drops = {
{name = "default:mese_crystal", chance = 9, min = 1, max = 3},
{name = "default:mese_crystal_fragment", chance = 1, min = 1, max = 9},
},
water_damage = 1,
lava_damage = 1,
light_damage = 0,
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 0,
stand_end = 14,
walk_start = 15,
walk_end = 38,
run_start = 40,
run_end = 63,
punch_start = 40,
punch_end = 63,
},
})
mobs:register_spawn("mobs_monster:mese_monster", {"default:stone"}, 7, 0, 5000, 1, -20)
mobs:register_egg("mobs_monster:mese_monster", "Mese Monster", "default_mese_block.png", 1)
minetest.register_alias("mobs:mese_monster", "mobs_monster:mese_monster")
-- mese arrow (weapon)
mobs:register_arrow("mobs_monster:mese_arrow", {
visual = "sprite",
visual_size = {x = 0.5, y = 0.5},
textures = {"default_mese_crystal_fragment.png"},
velocity = 6,
hit_player = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 2},
}, nil)
end,
hit_mob = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 2},
}, nil)
end,
hit_node = function(self, pos, node)
end
})
-- 9x mese crystal fragments = 1x mese crystal
minetest.register_craft({
output = "default:mese_crystal",
recipe = {
{"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"},
{"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"},
{"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"},
}
})

1
mod.conf Normal file
View File

@ -0,0 +1 @@
name = mobs_monster

Binary file not shown.

BIN
models/mobs_oerkki.b3d Normal file

Binary file not shown.

Binary file not shown.

6103
models/mobs_spider.x Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

3506
models/zmobs_lava_flan.x Normal file

File diff suppressed because it is too large Load Diff

2999
models/zmobs_mese_monster.x Normal file

File diff suppressed because it is too large Load Diff

62
oerkki.lua Normal file
View File

@ -0,0 +1,62 @@
-- 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:register_spawn("mobs_monster:oerkki", {"default:stone"}, 7, 0, 7000, 1, -10)
mobs:register_egg("mobs_monster:oerkki", "Oerkki", "default_obsidian.png", 1)
minetest.register_alias("mobs:oerkki", "mobs_monster:oerkki")

54
sand_monster.lua Normal file
View File

@ -0,0 +1,54 @@
-- Sand Monster by PilzAdam
mobs:register_mob("mobs_monster: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 = {
{"mobs_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: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,
},
})
mobs:register_spawn("mobs_monster:sand_monster", {"default:desert_sand"}, 20, 0, 7000, 1, 31000)
mobs:register_egg("mobs_monster:sand_monster", "Sand Monster", "default_desert_sand.png", 1)
minetest.register_alias("mobs:sand_monster", "mobs_monster:sand_monster")

BIN
sounds/mobs_dirtmonster.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
sounds/mobs_fireball.ogg Normal file

Binary file not shown.

BIN
sounds/mobs_lavaflan.ogg Normal file

Binary file not shown.

BIN
sounds/mobs_mesemonster.ogg Normal file

Binary file not shown.

BIN
sounds/mobs_oerkki.ogg Normal file

Binary file not shown.

BIN
sounds/mobs_sandmonster.ogg Normal file

Binary file not shown.

BIN
sounds/mobs_spider.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
sounds/mobs_treemonster.ogg Normal file

Binary file not shown.

92
spider.lua Normal file
View File

@ -0,0 +1,92 @@
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
mobs:register_mob("mobs_monster: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 = "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 = 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,
},
})
mobs:register_spawn("mobs_monster:spider",
{"default:desert_stone", "ethereal:crystal_dirt"}, 13, 0, 7000, 1, 71)
mobs:register_egg("mobs_monster:spider", "Spider", "mobs_cobweb.png", 1)
minetest.register_alias("mobs:spider", "mobs_monster:spider")
-- ethereal crystal spike compatibility
if not minetest.get_modpath("ethereal") then
minetest.register_alias("ethereal:crystal_spike", "default:sandstone")
end
-- cobweb
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"},
}
})

56
stone_monster.lua Normal file
View File

@ -0,0 +1,56 @@
-- Stone Monster by PilzAdam
mobs:register_mob("mobs_monster:stone_monster", {
type = "monster",
passive = false,
attack_type = "dogfight",
pathfinding = true,
reach = 2,
damage = 3,
hp_min = 12,
hp_max = 35,
armor = 80,
collisionbox = {-0.4, -1, -0.4, 0.4, 0.9, 0.4},
visual = "mesh",
mesh = "mobs_stone_monster.b3d",
textures = {
{"mobs_stone_monster.png"},
{"mobs_stone_monster2.png"}, -- by AMMOnym
},
makes_footstep_sound = true,
sounds = {
random = "mobs_stonemonster",
},
walk_velocity = 1,
run_velocity = 2,
jump = true,
floats = 0,
view_range = 10,
drops = {
{name = "default:torch", chance = 2, min = 3, max = 5},
{name = "default:iron_lump", chance = 5, min = 1, max = 2},
{name = "default:coal_lump", chance = 3, min = 1, max = 3},
},
water_damage = 0,
lava_damage = 1,
light_damage = 0,
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 0,
stand_end = 14,
walk_start = 15,
walk_end = 38,
run_start = 40,
run_end = 63,
punch_start = 40,
punch_end = 63,
},
})
mobs:register_spawn("mobs_monster:stone_monster", {"default:stone", "default:desert_stone"}, 7, 0, 7000, 1, 0)
mobs:register_egg("mobs_monster:stone_monster", "Stone Monster", "default_stone.png", 1)
minetest.register_alias("mobs:stone_monster", "mobs_monster:stone_monster")

BIN
textures/mobs_cobweb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
textures/mobs_dungeon_master.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
textures/mobs_fireball.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

BIN
textures/mobs_oerkki.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
textures/mobs_oerkki2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
textures/mobs_pick_lava.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
textures/mobs_spider.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
textures/zmobs_lava_orb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

63
tree_monster.lua Normal file
View File

@ -0,0 +1,63 @@
-- Tree Monster (or Tree Gollum) by PilzAdam
mobs:register_mob("mobs_monster:tree_monster", {
type = "monster",
passive = false,
attack_type = "dogfight",
reach = 2,
damage = 2,
hp_min = 7,
hp_max = 33,
armor = 100,
collisionbox = {-0.4, -1, -0.4, 0.4, 0.8, 0.4},
visual = "mesh",
mesh = "mobs_tree_monster.b3d",
textures = {
{"mobs_tree_monster.png"},
{"mobs_tree_monster2.png"},
},
blood_texture = "default_wood.png",
makes_footstep_sound = true,
sounds = {
random = "mobs_treemonster",
},
walk_velocity = 1,
run_velocity = 3,
jump = true,
view_range = 15,
drops = {
{name = "ethereal:tree_sapling", chance = 3, min = 1, max = 2},
{name = "ethereal:jungle_tree_sapling", chance = 3, min = 1, max = 2},
{name = "default:apple", chance = 2, min = 1, max=3},
},
water_damage = 1,
lava_damage = 5,
light_damage = 2,
fall_damage = 0,
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 0,
stand_end = 24,
walk_start = 25,
walk_end = 47,
run_start = 48,
run_end = 62,
punch_start = 48,
punch_end = 62,
},
})
mobs:register_spawn("mobs_monster:tree_monster",
{"default:leaves", "default:jungleleaves"}, 7, 0, 7000, 1, 31000, false)
mobs:register_egg("mobs_monster:tree_monster", "Tree Monster", "default_tree_top.png", 1)
minetest.register_alias("mobs:tree_monster", "mobs_monster:tree_monster")
-- ethereal sapling compatibility
if not minetest.get_modpath("ethereal") then
minetest.register_alias("ethereal:tree_sapling", "default:sapling")
minetest.register_alias("ethereal:jungle_tree_sapling", "default:junglesapling")
end