horror/mobs.lua

1484 lines
34 KiB
Lua

--arrows
mobs:register_arrow("horror:fireball", {
visual = "sprite",
visual_size = {x = 0.5, y = 0.5},
textures = {"horror_fireball.png"},
velocity = 8,
tail = 1, -- enable tail
tail_texture = "horror_steam.png",
hit_player = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 3},
}, nil)
end,
hit_mob = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 3},
}, nil)
end,
hit_node = function(self)
self.object:remove()
end,
})
mobs:register_arrow("horror:fireball_2", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"horror_fireshot.png"},
velocity = 8,
tail = 0, -- enable tail
tail_texture = "horror_steam.png",
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)
self.object:remove()
end,
})
local destructive = false
if destructive == true then
mobs:register_arrow("horror:fireball_3", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"horror_fireshot.png"},
velocity = 5,
tail = 1, -- enable tail
tail_texture = "horror_flame2.png",
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(_, pos)
mobs:explosion(pos, 1, 1, 1)
end,
})
mobs:register_arrow("horror:rocket", {
visual = "sprite",
visual_size = {x = 0.5, y = 0.5},
textures = {"horror_rocket.png"},
velocity = 8,
tail = 1, -- enable tail
tail_texture = "horror_rocket_smoke.png",
hit_player = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 3},
}, nil)
end,
hit_mob = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 3},
}, nil)
end,
hit_node = function(_, pos)
mobs:explosion(pos, 2, 1, 1)
end,
})
else
mobs:register_arrow("horror:fireball_3", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"horror_fireshot.png"},
velocity = 3,
tail = 1, -- enable tail
tail_texture = "horror_flame2.png",
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)
self.object:remove()
end,
})
mobs:register_arrow("horror:rocket", {
visual = "sprite",
visual_size = {x = 0.5, y = 0.5},
textures = {"horror_rocket.png"},
velocity = 8,
tail = 1, -- enable tail
tail_texture = "horror_rocket_smoke.png",
hit_player = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 3},
}, nil)
end,
hit_mob = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 3},
}, nil)
end,
hit_node = function(self)
self.object:remove()
end,
})
end
mobs:register_arrow("horror:fireball_4", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"horror_plasma.png"},
velocity = 6,
tail = 0, -- enable tail
tail_texture = "horror_steam.png",
hit_player = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 3},
}, nil)
end,
hit_mob = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 3},
}, nil)
end,
hit_node = function(self)
self.object:remove()
end,
})
--mobs, eggs and spawning
mobs:register_mob("horror:hellbaron", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 3,
reach = 2,
attack_type = "dogshoot",
shoot_interval = 2.5,
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "horror:fireball_2",
shoot_offset = 0.5,
hp_min = 40,
hp_max = 55,
armor = 80,
collisionbox = {-0.5, 0, -0.6, 0.6, 3, 0.6},
visual = "mesh",
mesh = "hellbaron.b3d",
textures = {
{"horror_hellbaron.png"},
},
blood_amount = 80,
blood_texture = "horror_blood_effect.png",
visual_size = {x=1, y=1},
makes_footstep_sound = true,
walk_velocity = 2,
run_velocity = 3.5,
jump = true,
drops = {
{name = "default:steel_ingot", chance = 1, min = 1, max = 5},
},
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 10,
speed_run = 20,
walk_start = 51,
walk_end = 75,
stand_start = 1,
stand_end = 25,
run_start = 51,
run_end = 75,
punch_start = 25,
punch_end = 50,
shoot_start = 25,
shoot_end = 50,
},
})
mobs:register_spawn("horror:hellbaron", {"default:lava_source", "default:stone"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:hellbaron", "Hell Baron", "default_dirt.png", 1)
mobs:register_mob("horror:centipede_body", {
type = "npc",
attacks_monsters = true,
reach = 0,
damage = 0,
attack_type = "dogfight",
hp_min = 12,
hp_max = 22,
armor = 130,
collisionbox = {-0.4, -0.5, -0.4, 0.4, 0.5, 0.4},
visual = "mesh",
mesh = "centipede_segment.b3d",
textures = {
{"centipede.png"},
},
blood_texture = "horror_blood_effect.png",
visual_size = {x=2, y=2},
makes_footstep_sound = false,
walk_velocity = 1.5,
run_velocity = 3.5,
jump = true,
water_damage = 0,
lava_damage = 2,
light_damage = 0,
replace_rate = 10,
replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "ethereal:bamboo"},
replace_with = "air",
do_custom = function(self)
if self.following == nil then
self.object:remove()
end
end,
view_range = 10,
animation = {
speed_normal = 10,
speed_run = 15,
walk_start = 1,
walk_end = 12,
run_start = 1,
run_end = 12,
},
})
--Improvements thanks to TenPlus1 and Byakuren
mobs:register_mob("horror:centipede_head", {
type = "monster",
reach = 1,
damage = 2,
attack_type = "dogfight",
hp_min = 12,
hp_max = 22,
armor = 130,
collisionbox = {-0.4, -0.5, -0.4, 0.4, 0.5, 0.4},
visual = "mesh",
mesh = "centipede.b3d",
textures = {
{"centipede.png"},
},
blood_amount = 80,
visual_size = {x=2, y=2},
makes_footstep_sound = true,
walk_velocity = 2.5,
run_velocity = 3.5,
jump = false,
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
},
sounds = {
random = "mobs_spider",
attack = "mobs_spider",
},
do_custom = function(self)
if not self.centipede then
self.centipede = true -- flip switch so this part is done only once
-- get head position and define a few temp variables
local pos = self.object:getpos()
local obj, obj2, obj3, obj4, obj5, obj6, ent
-- add body and make it follow head
obj = minetest.add_entity({x=pos.x+1, y=pos.y, z=pos.z}, "horror:centipede_body")
ent = obj:get_luaentity()
ent.following = self.object
-- add body and make it follow previous body segment
obj2 = minetest.add_entity({x=pos.x+2, y=pos.y, z=pos.z}, "horror:centipede_body")
ent = obj2:get_luaentity()
ent.following = obj
-- add body and make it follow previous body segment
obj3 = minetest.add_entity({x=pos.x+3, y=pos.y, z=pos.z}, "horror:centipede_body")
ent = obj3:get_luaentity()
ent.following = obj2
-- add body and make it follow previous body segment
obj4 = minetest.add_entity({x=pos.x+4, y=pos.y, z=pos.z}, "horror:centipede_body")
ent = obj4:get_luaentity()
ent.following = obj3
-- add body and make it follow previous body segment
obj5 = minetest.add_entity({x=pos.x+5, y=pos.y, z=pos.z}, "horror:centipede_body")
ent = obj5:get_luaentity()
ent.following = obj4
-- add body and make it follow previous body segment
obj6 = minetest.add_entity({x=pos.x+6, y=pos.y, z=pos.z}, "horror:centipede_body")
ent = obj6:get_luaentity()
ent.following = obj5
end
end,
water_damage = 0,
lava_damage = 2,
light_damage = 0,
replace_rate = 10,
replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "ethereal:bamboo"},
replace_with = "air",
view_range = 14,
animation = {
speed_normal = 10,
speed_run = 15,
walk_start = 1,
walk_end = 12,
run_start = 1,
run_end = 12,
},
})
mobs:register_spawn("horror:centipede_head", {"horror:mud","default:dirt_with_dry_grass"}, 20, 0, 1500, 2, 31000)
mobs:register_egg("horror:centipede_head", "Centipede", "default_dirt.png", 1)
mobs:register_mob("horror:spider", {
type = "monster",
passive = false,
reach = 2,
damage = 2,
attack_type = "dogfight",
hp_min = 32,
hp_max = 42,
armor = 130,
collisionbox = {-0.7, 0, -0.7, 0.7, 1.5, 0.7},
visual = "mesh",
mesh = "hspider.b3d",
textures = {
{"hspider.png"},
},
blood_amount = 80,
blood_texture = "horror_blood_effect.png",
visual_size = {x=3, y=3},
makes_footstep_sound = true,
walk_velocity = 2.5,
run_velocity = 3.1,
sounds = {
random = "mobs_spider",
attack = "mobs_spider",
},
jump = true,
drops = {
{name = "mobs:meat_raw", chance = 2, min = 1, max = 1},
{name = "farming:cotton", chance = 1, min = 3, max = 6},
},
water_damage = 0,
lava_damage = 2,
light_damage = 0,
replace_rate = 20,
replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "air"},
replace_with = "horror:spiderweb_decaying",
view_range = 14,
animation = {
speed_normal = 10,
speed_run = 15,
walk_start = 45,
walk_end = 65,
run_start = 45,
run_end = 65,
stand_start = 1,
stand_end = 20,
punch_start = 20,
punch_end = 40,
},
})
mobs:register_spawn("horror:spider", {"default:leaves","default:stone"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:spider", "Giant Spider", "default_obsidian.png", 1)
mobs:register_mob("horror:ghost", {
type = "monster",
passive = false,
reach = 2,
damage = 2,
attack_type = "dogfight",
hp_min = 32,
hp_max = 42,
armor = 130,
collisionbox = {-0.4, 0, -0.5, 0.5, 2.5, 0.5},
visual = "mesh",
mesh = "ghost.b3d",
textures = {
{"horror_ghost.png"},
},
blood_amount = 60,
blood_texture = "horror_blood_effect.png",
visual_size = {x=3, y=3.6},
makes_footstep_sound = false,
walk_velocity = 1,
run_velocity = 2.1,
sounds = {
random = "mobs_oerkki",
attack = "mobs_oerkki",
},
jump = true,
drops = {
{name = "farming:cotton", chance = 10, min = 1, max = 1},
},
on_rightclick = function(self, clicker)
local item = clicker:get_wielded_item():get_name()
if item == "horror:ring" then
local pos = self.object:getpos()
local obj = minetest.env:add_entity(pos, "horror:ghost_friendly")
local ghost = obj:get_luaentity()
ghost.tamed = true
ghost.owner = clicker
self.object:remove()
end
end,
do_custom = function(self)
if math.random(1, 5000) == 1 then
local pos = self.object:getpos()
minetest.add_item(pos, "horror:ring")
end
end,
water_damage = 2,
lava_damage = 2,
light_damage = 0,
view_range = 5,
animation = {
speed_normal = 10,
speed_run = 15,
walk_start = 1,
walk_end = 20,
run_start = 30,
run_end = 50,
stand_start = 1,
stand_end = 2,
punch_start = 50,
punch_end = 70,
},
})
mobs:register_mob("horror:ghost_friendly", {
type = "npc",
passive = true,
attacks_monsters = true,
reach = 2,
damage = 2,
attack_type = "dogfight",
hp_min = 32,
hp_max = 42,
armor = 130,
collisionbox = {-0.4, 0, -0.5, 0.5, 1.5, 0.5},
visual = "mesh",
mesh = "ghost.b3d",
textures = {
{"horror_ghost.png"},
},
blood_amount = 60,
blood_texture = "horror_blood_effect.png",
visual_size = {x=2, y=2.6},
makes_footstep_sound = false,
walk_velocity = 1,
run_velocity = 2.1,
sounds = {
random = "mobs_oerkki",
attack = "mobs_oerkki",
},
follow = "horror:ring",
jump = true,
water_damage = 2,
lava_damage = 2,
light_damage = 0,
view_range = 15,
animation = {
speed_normal = 10,
speed_run = 15,
walk_start = 1,
walk_end = 20,
run_start = 30,
run_end = 50,
stand_start = 1,
stand_end = 2,
punch_start = 50,
punch_end = 70,
},
})
mobs:register_spawn("horror:ghost",
{"default:snowblock","default:sand", "default:dirt_with_snow"},
20, 0, 15000, 2, 31000
)
mobs:register_egg("horror:ghost", "Ghost", "default_snow.png", 1)
mobs:register_mob("horror:skeleton", {
type = "monster",
reach = 3,
damage = 2,
attack_type = "dogfight",
hp_min = 62,
hp_max = 72,
armor = 100,
collisionbox = {-0.4, 0, -0.4, 0.4, 2.5, 0.4},
visual = "mesh",
mesh = "skeleton.b3d",
textures = {
{"horror_skeleton.png"},
},
blood_texture = "default_stone.png",
visual_size = {x=1, y=1},
makes_footstep_sound = true,
walk_velocity = 1,
run_velocity = 2.5,
jump = true,
drops = {
{name = "bones:bones", chance = 5, min = 3, max = 6},
},
water_damage = 0,
lava_damage = 2,
light_damage = 1,
fall_damage = 0,
fear_height = 10,
view_range = 14,
animation = {
speed_normal = 15,
speed_run = 20,
walk_start = 46,
walk_end = 66,
stand_start = 1,
stand_end = 20,
run_start = 46,
run_end = 66,
punch_start = 20,
punch_end = 45,
},
})
mobs:register_spawn("horror:skeleton", {"default:stone"}, 7, 0, 16000, 2, 31000)
mobs:register_egg("horror:skeleton", "Skeleton", "default_dirt.png", 1)
mobs:register_mob("horror:cyberdemon", {
type = "monster",
passive = false,
reach = 6,
damage = 2,
attack_type = "shoot",
shoot_interval = 1.5,
arrow = "horror:rocket",
shoot_offset = -1,
hp_min = 102,
hp_max = 112,
armor = 100,
collisionbox = {-0.8, 0, -0.8, 0.8, 6.5, 0.8},
visual = "mesh",
mesh = "cyberdemon.b3d",
textures = {
{"horror_cyberdemon.png"},
},
blood_amount = 90,
blood_texture = "horror_blood_effect.png",
visual_size = {x=2, y=2},
makes_footstep_sound = true,
walk_velocity = 1,
run_velocity = 2.1,
sounds = {
random = "mobs_stone_monster",
attack = "mobs_stone_monster",
},
jump = true,
drops = {
{name = "default:mese", chance = 2, min = 1, max = 1},
{name = "mobs:meat_raw", chance = 1, min = 3, max = 5},
},
water_damage = 0,
lava_damage = 0,
light_damage = 0,
view_range = 15,
animation = {
speed_normal = 10,
speed_run = 15,
walk_start = 20,
walk_end = 40,
run_start = 20,
run_end = 40,
stand_start = 64,
stand_end = 80,
shoot_start = 1,
shoot_end = 15,
},
})
mobs:register_spawn("horror:cyberdemon", {"nether:stone","default:dirt_with_grass"}, 20, 0, 35000, 2, 31000)
mobs:register_egg("horror:cyberdemon", "Cyberdemon", "wool_red.png", 1)
mobs:register_mob("horror:dragon", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 8,
reach = 3,
attack_type = "dogshoot",
shoot_interval = 3.5,
arrow = "horror:fireball",
shoot_offset = 1,
hp_min = 50,
hp_max = 85,
armor = 90,
collisionbox = {-0.6, -0.9, -0.6, 0.6, 0.6, 0.6},
visual = "mesh",
mesh = "dragon_new.b3d",
textures = {
{"horror_dragon.png"},
},
blood_amount = 90,
blood_texture = "horror_blood_effect.png",
visual_size = {x=3, y=3},
makes_footstep_sound = true,
sounds = {
shoot_attack = "mobs_fireball",
},
walk_velocity = 3,
run_velocity = 5,
jump = true,
fly = true,
drops = {
{name = "mobs:lava_orb", chance = 2, min = 1, max = 3},
{name = "default:diamond", chance = 2, min = 1, max = 3},
},
fall_speed = 0,
stepheight = 10,
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 10,
speed_run = 20,
walk_start = 1,
walk_end = 22,
stand_start = 1,
stand_end = 22,
run_start = 1,
run_end = 22,
punch_start = 22,
punch_end = 47,
},
})
mobs:register_spawn("horror:dragon", {"default:pine_needles",}, 20, 0, 35000, 200, 31000)
mobs:register_egg("horror:dragon", "Zombie Dragon", "horror_orb.png", 1)
mobs:register_mob("horror:skull", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 1,
reach = 3,
attack_type = "dogfight",
shoot_interval = 2.5,
arrow = "horror:fireball",
shoot_offset = 1,
hp_min = 30,
hp_max = 45,
armor = 80,
collisionbox = {-0.4, -0.1, -0.4, 0.4, 1.5, 0.4},
visual = "mesh",
mesh = "lost_soul.b3d",
textures = {
{"lost_soul.png"},
},
blood_texture = "horror_flame2.png",
visual_size = {x=3, y=3},
makes_footstep_sound = true,
walk_velocity = 3,
run_velocity = 5,
jump = true,
fly = true,
do_custom = function(self)
local apos = self.object:getpos()
minetest.add_particlespawner(
12, --amount
0.3, --time
{x=apos.x-0.3, y=apos.y+0.6, z=apos.z-0.3}, --minpos
{x=apos.x+0.3, y=apos.y+0.6, z=apos.z+0.3}, --maxpos
{x=-0, y=-0, z=-0}, --minvel
{x=0, y=0, z=0}, --maxvel
{x=0,y=1.5,z=0}, --minacc
{x=0.5,y=1.5,z=0.5}, --maxacc
1, --minexptime
2, --maxexptime
3, --minsize
5, --maxsize
false, --collisiondetection
"horror_flame3.png" --texture
)
end,
fall_speed = 0,
stepheight = 10,
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 10,
speed_run = 20,
walk_start = 20,
walk_end = 40,
stand_start = 1,
stand_end = 20,
run_start = 20,
run_end = 40,
punch_start = 40,
punch_end = 65,
},
})
mobs:register_spawn("horror:skull", {"fire:basic_flame","default:leaves"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:skull", "Lost Soul", "horror_gfire_inv.png", 1)
mobs:register_mob("horror:cacodemon", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 8,
reach = 3,
attack_type = "shoot",
shoot_interval = 2.5,
arrow = "horror:fireball_4",
shoot_offset = 1,
hp_min = 30,
hp_max = 45,
armor = 80,
collisionbox = {-0.9, -0.2, -0.9, 0.9, 1.5, 0.9},
visual = "mesh",
mesh = "cacodemon.b3d",
textures = {
{"horror_cacodemon.png"},
},
blood_amount = 80,
blood_texture = "horror_plasma.png",
visual_size = {x=2, y=2},
makes_footstep_sound = true,
walk_velocity = 3,
run_velocity = 5,
jump = true,
fly = true,
fall_speed = 0,
stepheight = 10,
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 10,
speed_run = 20,
walk_start = 1,
walk_end = 20,
stand_start = 1,
stand_end = 20,
run_start = 1,
run_end = 20,
shoot_start = 20,
shoot_end = 40,
},
})
mobs:register_spawn("horror:cacodemon", {"fire:basic_flame","default:lava_flowing"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:cacodemon", "Cacodemon", "wool_red.png", 1)
mobs:register_mob("horror:mogall", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 2,
reach = 3,
attack_type = "dogfight",
shoot_interval = 2.5,
arrow = "horror:fireball",
shoot_offset = 1,
hp_min = 30,
hp_max = 45,
armor = 80,
collisionbox = {-0.3, -0, -0.3, 0.3, 1, 0.3},
visual = "mesh",
mesh = "mogall.b3d",
textures = {
{"mogall.png"},
},
blood_amount = 80,
blood_texture = "horror_blood_effect.png",
visual_size = {x=4, y=4},
makes_footstep_sound = true,
walk_velocity = 1,
run_velocity = 2,
jump = true,
fly = true,
fall_speed = 0,
stepheight = 1.5,
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 30,
animation = {
speed_normal = 5,
speed_run = 6,
walk_start = 20,
walk_end = 60,
stand_start = 1,
stand_end = 20,
run_start = 20,
run_end = 60,
punch_start = 20,
punch_end = 60,
},
})
mobs:register_spawn("horror:mogall", {"default:jungleleaves",}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:mogall", "Mogall", "horror_stone.png", 1)
mobs:register_mob("horror:shadow", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 3,
reach = 3,
attack_type = "dogfight",
shoot_interval = 2.5,
arrow = "horror:fireball",
shoot_offset = 1,
hp_min = 30,
hp_max = 45,
armor = 100,
collisionbox = {-0.3, -0, -0.3, 0.3, 1, 0.3},
visual = "mesh",
mesh = "shadow.b3d",
textures = {
{"blank.png"},
},
blood_amount = 60,
blood_texture = "horror_shadow.png",
visual_size = {x=4, y=4},
makes_footstep_sound = true,
walk_velocity = 1,
run_velocity = 2,
jump = true,
fly = true,
fall_speed = 0,
stepheight = 1.5,
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 30,
do_custom = function(self)
local apos = self.object:getpos()
minetest.add_particlespawner(
1, --amount
0.3, --time
{x=apos.x-0.3, y=apos.y+0.3, z=apos.z-0.3}, --minpos
{x=apos.x+0.3, y=apos.y+0.3, z=apos.z+0.3}, --maxpos
{x=-0, y=-0, z=-0}, --minvel
{x=0, y=0, z=0}, --maxvel
{x=0,y=1,z=0}, --minacc
{x=0.5,y=1.2,z=0.5}, --maxacc
3, --minexptime
5, --maxexptime
2, --minsize
3, --maxsize
false, --collisiondetection
"horror_shadow.png" --texture
)
end,
animation = {
speed_normal = 5,
speed_run = 6,
walk_start = 2,
walk_end = 19,
stand_start = 2,
stand_end = 19,
run_start = 2,
run_end = 19,
punch_start = 2,
punch_end = 19,
},
})
mobs:register_spawn("horror:shadow", {"default:snow", "default:pine_needles"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:shadow", "Shadow elemental", "default_obsidian.png", 1)
mobs:register_mob("horror:mothman", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 2,
reach = 3,
attack_type = "dogfight",
hp_min = 30,
hp_max = 45,
armor = 80,
collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3},
visual = "mesh",
mesh = "mothman.b3d",
textures = {
{"mothman.png"},
},
blood_amount = 60,
blood_texture = "horror_blood_effect.png",
visual_size = {x=3, y=3},
makes_footstep_sound = true,
walk_velocity = 3,
run_velocity = 5,
jump = true,
fly = true,
do_custom = function(self)
local apos = self.object:getpos()
minetest.add_particlespawner(
1, --amount
0.3, --time
{x=apos.x-0.3, y=apos.y-0.3, z=apos.z-0.3}, --minpos
{x=apos.x+0.3, y=apos.y-0.3, z=apos.z+0.3}, --maxpos
{x=-0, y=-0, z=-0}, --minvel
{x=0, y=0, z=0}, --maxvel
{x=0,y=-1,z=0}, --minacc
{x=0.5,y=-1,z=0.5}, --maxacc
3, --minexptime
5, --maxexptime
3, --minsize
5, --maxsize
false, --collisiondetection
"horror_dust.png" --texture
)
end,
fall_speed = 0,
stepheight = 5,
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 20,
speed_run = 33,
walk_start = 1,
walk_end = 11,
stand_start = 1,
stand_end = 11,
run_start = 1,
run_end = 11,
punch_start = 1,
punch_end = 11,
},
})
mobs:register_spawn("horror:mothman", {"horror:lantern", "default:aspen_leaves"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:mothman", "Mothman", "horror_orb.png", 1)
mobs:register_mob("horror:manticore", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 2,
reach = 3,
attack_type = "dogfight",
hp_min = 30,
hp_max = 45,
armor = 130,
collisionbox = {-0.5, -0.5, -0.6, 0.6, 0.6, 0.6},
visual = "mesh",
mesh = "manticore.b3d",
textures = {
{"manticore.png"},
},
blood_amount = 80,
blood_texture = "horror_blood_effect.png",
visual_size = {x=3, y=3},
makes_footstep_sound = true,
walk_velocity = 2.5,
run_velocity = 3.5,
jump = true,
drops = {
{name = "horror:cockroach", chance = 1, min = 1, max = 1},
},
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 10,
speed_run = 20,
walk_start = 1,
walk_end = 11,
stand_start = 1,
stand_end = 11,
run_start = 1,
run_end = 11,
punch_start = 11,
punch_end = 26,
},
})
mobs:register_spawn("horror:manticore", {"default:dirt_with_grass","default:mossycobble"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:manticore", "Manticore", "default_dirt.png", 1)
mobs:register_mob("horror:imp", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 4,
reach = 2,
attack_type = "dogshoot",
shoot_interval = 2.5,
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "horror:fireball_2",
shoot_offset = 0.5,
hp_min = 40,
hp_max = 55,
armor = 80,
collisionbox = {-0.5, 0, -0.6, 0.6, 3, 0.6},
visual = "mesh",
mesh = "imp.b3d",
textures = {
{"horror_imp.png"},
},
blood_amount = 80,
blood_texture = "horror_blood_effect.png",
visual_size = {x=2, y=2},
makes_footstep_sound = true,
walk_velocity = 2.5,
run_velocity = 3.5,
jump = true,
drops = {
{name = "default:coal_lump", chance = 1, min = 1, max = 2},
},
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 10,
speed_run = 20,
walk_start = 35,
walk_end = 55,
stand_start = 1,
stand_end = 30,
run_start = 35,
run_end = 55,
punch_start = 60,
punch_end = 80,
shoot_start = 80,
shoot_end = 100,
},
})
mobs:register_spawn("horror:imp", {"default:dirt","horror:mud","default:gravel"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:imp", "Imp", "default_dirt.png", 1)
mobs:register_mob("horror:werewolf", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 4,
reach = 2,
attack_type = "dogfight",
shoot_interval = 2.5,
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "horror:fireball_2",
shoot_offset = 0.5,
hp_min = 10,
hp_max = 25,
armor = 100,
collisionbox = {-0.5, 0, -0.6, 0.6, 2, 0.6},
visual = "mesh",
mesh = "werewolf.b3d",
textures = {
{"horror_werewolf.png"},
},
blood_amount = 80,
blood_texture = "horror_blood_effect.png",
visual_size = {x=2, y=2},
makes_footstep_sound = true,
walk_velocity = 1,
run_velocity = 3.5,
jump = true,
drops = {
{name = "default:papyrus", chance = 3, min = 1, max = 6},
},
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 10,
speed_run = 20,
walk_start = 45,
walk_end = 65,
stand_start = 1,
stand_end = 20,
run_start = 66,
run_end = 86,
punch_start = 20,
punch_end = 44,
},
})
mobs:register_spawn("horror:werewolf",
{"default:dirt_with_grass","horror:mud","default:gravel"},
20, 0, 35000, 2, 31000
)
mobs:register_egg("horror:werewolf", "Werewolf", "default_gravel.png", 1)
mobs:register_mob("horror:mancubus", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 4,
reach = 2,
attack_type = "shoot",
shoot_interval = 2.5,
dogshoot_switch = 2,
dogshoot_count = 0,
dogshoot_count_max =5,
arrow = "horror:fireball_3",
shoot_offset = 0.5,
hp_min = 50,
hp_max = 65,
armor = 100,
collisionbox = {-0.8, 0, -0.8, 0.8, 3, 0.8},
visual = "mesh",
mesh = "mancubus.b3d",
textures = {
{"mancubus.png"},
},
blood_amount = 80,
blood_texture = "horror_blood_effect.png",
visual_size = {x=2, y=2},
makes_footstep_sound = true,
walk_velocity = 0.5,
run_velocity = 1,
jump = true,
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 2},
},
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 10,
speed_run = 20,
walk_start = 20,
walk_end = 40,
stand_start = 45,
stand_end = 65,
run_start = 20,
run_end = 40,
shoot_start = 1,
shoot_end = 15,
},
})
mobs:register_spawn("horror:mancubus", {"default:stone","default:sand"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:mancubus", "Mancubus", "default_sand.png", 1)
mobs:register_mob("horror:birdie", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 3,
reach = 3,
attack_type = "dogfight",
hp_min = 30,
hp_max = 45,
armor = 100,
collisionbox = {-0.5, -0, -0.6, 0.6, 1.6, 0.6},
visual = "mesh",
mesh = "birdie.b3d",
textures = {
{"birdie.png"},
},
blood_amount = 80,
blood_texture = "horror_blood_effect.png",
visual_size = {x=3, y=3},
makes_footstep_sound = true,
walk_velocity = 1,
run_velocity = 2,
jump = true,
drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 2},
},
water_damage = 0,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 10,
speed_run = 20,
walk_start = 42,
walk_end = 62,
stand_start = 1,
stand_end = 11,
run_start = 42,
run_end = 62,
punch_start = 20,
punch_end = 35,
},
})
mobs:register_spawn("horror:birdie", {"default:dirt_with_grass","default:dirt_with_dry_grass"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:birdie", "Birdie", "default_dirt.png", 1)
mobs:register_mob("horror:pinky", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 1,
reach = 4,
attack_type = "dogfight",
hp_min = 70,
hp_max = 85,
armor = 80,
collisionbox = {-0.8, -0, -0.8, 0.8, 1.9, 0.8},
visual = "mesh",
mesh = "pinky.b3d",
textures = {
{"pinky.png"},
},
blood_amount = 80,
blood_texture = "horror_blood_effect.png",
visual_size = {x=3, y=3},
makes_footstep_sound = true,
walk_velocity = 2,
run_velocity = 4,
jump = true,
drops = {
{name = "horror:animflesh", chance = 2, min = 2, max = 3},
},
water_damage = 0,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 20,
speed_run = 30,
walk_start = 1,
walk_end = 20,
stand_start = 20,
stand_end = 40,
run_start = 1,
run_end = 20,
punch_start = 40,
punch_end = 60,
},
})
mobs:register_spawn("horror:pinky", {"default:sandstone_brick","nether:stone"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:pinky", "Pinky", "horror_flesh.png", 1)
mobs:register_mob("horror:demon", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 4,
reach = 2,
attack_type = "dogfight",
hp_min = 30,
hp_max = 45,
armor = 100,
collisionbox = {-0.4, -0.5, -0.6, 0.6, 3, 0.6},
visual = "mesh",
mesh = "demon.b3d",
textures = {
{"demon.png"},
},
blood_amount = 80,
blood_texture = "horror_blood_effect.png",
visual_size = {x=3.5, y=3},
makes_footstep_sound = true,
walk_velocity = 2,
run_velocity = 3,
jump = true,
water_damage = 2,
lava_damage = 0,
light_damage = 0,
replace_rate = 5,
replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "air"},
replace_with = "horror:gfire",
view_range = 20,
animation = {
speed_normal = 10,
speed_run = 20,
walk_start = 1,
walk_end = 20,
stand_start = 39,
stand_end = 50,
run_start = 1,
run_end = 20,
punch_start = 21,
punch_end = 38,
},
})
mobs:register_spawn("horror:demon", {"default:stone","default:lava_flowing"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:demon", "Demon", "default_dirt.png", 1)
mobs:register_mob("horror:armour", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 7,
reach = 2,
attack_type = "dogfight",
hp_min = 30,
hp_max = 45,
armor = 180,
collisionbox = {-0.3, -1, -0.3, 0.3, 1, 0.3},
visual = "mesh",
mesh = "armour.b3d",
textures = {
{"armour.png"},
},
blood_texture = "horror_blood_effect.png",
visual_size = {x=2, y=2},
makes_footstep_sound = true,
walk_velocity = 0.5,
run_velocity = 1,
jump = true,
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 17,
speed_run = 20,
walk_start = 22,
walk_end = 62,
stand_start = 1,
stand_end = 1,
run_start = 21,
run_end = 62,
punch_start = 1,
punch_end = 21,
},
})
mobs:register_spawn("horror:armour", {"default:mossycobble","default:sandstone_brick"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:armour", "Axe Armour", "default_stone.png", 1)
mobs:register_mob("horror:sam", {
type = "monster",
passive = false,
attacks_monsters = true,
damage = 1,
reach = 1,
attack_type = "dogfight",
hp_min = 30,
hp_max = 45,
armor = 80,
collisionbox = {-0.25, 0.35, -0.25, 0.25, 0.9, 0.25},
physical = false,
visual = "mesh",
mesh = "character.b3d",
textures = {
{"horror_sam.png"},
},
blood_amount = 60,
blood_texture = "horror_blood_effect.png",
visual_size = {x=1, y=1},
makes_footstep_sound = false,
walk_velocity = 0.01,
run_velocity = 5,
jump = false,
water_damage = 2,
lava_damage = 0,
light_damage = 0,
view_range = 20,
animation = {
speed_normal = 1,
speed_run = 1,
walk_start = 1,
walk_end = 1,
stand_start = 1,
stand_end = 1,
run_start = 1,
run_end = 1,
punch_start = 1,
punch_end = 1,
},
})
mobs:register_spawn("horror:sam", {"default:mossycobble","default:sandstone_brick"}, 20, 0, 15000, 2, 31000)
mobs:register_egg("horror:sam", "Sam Head", "default_brick.png", 1)