Commit e4689461 authored by TenPlus1's avatar TenPlus1
Browse files

Initial Monsters upload

parents
default
mobs
Adds many types of monster.
-- 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")
-- 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
})
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")
-- 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", ""},
}
})
-- 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"},
}
})
name = mobs_monster
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
-- 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")
-- 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")
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment