Added the project

master
npx 2016-02-22 16:53:56 +01:00
commit cfef26b914
326 changed files with 1742329 additions and 0 deletions

13
README.txt Normal file
View File

@ -0,0 +1,13 @@
Not so simple mobs by NPX team
We would like to thank:
- PilzAdam, for his wonderful simple-mobs mod;
- Tenplus1, for his hard work in making mobs_redo;
- Echoes91, for Spears: simple but amazing;
- and obviously Celeron-55 and all the people who contributed to Minetest and its community;
- Denise and Ponzi_Duro for the revision of the guide
- Double P and Ponzi_Duro for the beta testing
License GPL v3
The mod makes the game really hard, please read the Guide, available on the thread of the mod, before playing!

62
ant_queen.lua Normal file
View File

@ -0,0 +1,62 @@
nssm:register_mob("nssm:ant_queen", {
type = "monster",
hp_max = 120,
hp_min = 120,
collisionbox = {-1, 0.00, -1, 1, 1, 1},
visual = "mesh",
mesh = "ant_queen.x",
textures = {{"ant_queen.png"}},
visual_size = {x=6, y=6},
makes_footstep_sound = true,
view_range = 30,
walk_velocity = 1.5,
run_velocity = 2,
lifetimer = 300,
mamma = true,
rotate = 270,
sounds = {
random = "ant",
attack = "ant",
},
damage = 4,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 5,
max = 7,},
{name = "nssm:ant_queen_abdomen",
chance = 1,
min = 1,
max = 1,},
{name = "nssm:ant_leg",
chance = 2,
min = 1,
max = 6,},
{name = "nssm:ant_mandible",
chance = 3,
min = 1,
max = 2,},
},
reach = 4,
armor = 70,
drawtype = "front",
water_damage = 2,
lava_damage = 7,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 20,
speed_run = 25,
stand_start = 1,
stand_end = 50,
walk_start = 120,
walk_end = 160,
run_start = 120,
run_end = 160,
punch_start = 170,
punch_end = 190,
}
})

54
ant_soldier.lua Normal file
View File

@ -0,0 +1,54 @@
nssm:register_mob("nssm:ant_soldier", {
type = "monster",
hp_max = 20,
hp_min = 20,
collisionbox = {-0.49, 0.00, -0.49, 0.49, 0.9, 0.49},
visual = "mesh",
mesh = "ant_soldier.x",
textures = {{"ant_soldier.png"}},
visual_size = {x=3, y=3},
makes_footstep_sound = true,
view_range = 20,
walk_velocity = 1.5,
run_velocity = 3,
rotate = 270,
sounds = {
random = "ant",
},
damage = 4,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2,},
{name = "nssm:ant_leg",
chance = 2,
min = 1,
max = 6,},
{name = "nssm:ant_mandible",
chance = 3,
min = 1,
max = 2,},
},
reach = 2,
armor = 90,
drawtype = "front",
water_damage = 2,
lava_damage = 7,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 20,
speed_run = 35,
stand_start = 1,
stand_end = 60,
walk_start = 90,
walk_end = 130,
run_start = 90,
run_end = 130,
punch_start = 60,
punch_end = 80,
}
})

54
ant_worker.lua Normal file
View File

@ -0,0 +1,54 @@
nssm:register_mob("nssm:ant_worker", {
type = "animal",
hp_max = 13,
hp_min = 13,
collisionbox = {-0.4, 0.00, -0.4, 0.4, 0.5, 0.4},
visual = "mesh",
mesh = "ant_worker.x",
textures = {{"ant_worker.png"}},
visual_size = {x=2, y=2},
makes_footstep_sound = true,
view_range = 20,
walk_velocity = 1.5,
run_velocity = 2,
rotate = 270,
sounds = {
random = "ant",
},
damage = 2,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 2,
min = 1,
max = 1,},
{name = "nssm:ant_leg",
chance = 2,
min = 1,
max = 6,},
{name = "nssm:ant_mandible",
chance = 3,
min = 1,
max = 2,},
},
armor = 90,
drawtype = "front",
water_damage = 2,
lava_damage = 7,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 20,
speed_run = 25,
stand_start = 1,
stand_end = 50,
walk_start = 120,
walk_end = 160,
run_start = 120,
run_end = 160,
punch_start = 50,
punch_end = 70,
}
})

3282
api.lua Normal file

File diff suppressed because it is too large Load Diff

54
black_widow.lua Normal file
View File

@ -0,0 +1,54 @@
nssm:register_mob("nssm:black_widow", {
type = "monster",
hp_max = 20,
hp_min = 19,
collisionbox = {-0.4, 0.00, -0.4, 0.4, 0.8, 0.4},
visual = "mesh",
mesh = "black_widow.x",
textures = {{"black_widow.png"}},
visual_size = {x=2, y=2},
makes_footstep_sound = true,
view_range = 15,
walk_velocity = 1,
run_velocity = 2.5,
rotate = 270,
sounds = {
random = "black_widow",
},
damage = 3,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2,},
{name = "nssm:spider_leg",
chance = 2,
min = 1,
max = 8,},
{name = "nssm:web",
chance = 2,
min = 1,
max = 2,},
},
armor = 100,
drawtype = "front",
water_damage = 1,
webber = true,
lava_damage = 7,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 20,
speed_run = 25,
stand_start = 1,
stand_end = 70,
walk_start = 80,
walk_end = 120,
run_start = 120,
run_end = 140,
punch_start = 150,
punch_end = 160,
}
})

49
bloco.lua Normal file
View File

@ -0,0 +1,49 @@
nssm:register_mob("nssm:bloco", {
type = "monster",
hp_max = 15,
hp_min = 14,
collisionbox = {-0.56, -0.2, -0.56, 0.56, 1.2, 0.56},
visual = "mesh",
mesh = "bloco.x",
textures = {{"bloco.png"}},
visual_size = {x=4, y=4},
makes_footstep_sound = true,
view_range = 8,
walk_velocity = 1,
run_velocity = 2.5,
rotate = 270,
sounds = {
random = "bloco",
},
damage = 2,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 1,},
{name = "default:stone",
chance = 1,
min = 2,
max = 3,},
},
armor = 60,
drawtype = "front",
water_damage = 3,
lava_damage = 1,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 20,
speed_run = 20,
stand_start = 90,
stand_end = 110,
walk_start = 1,
walk_end = 80,
run_start = 120,
run_end = 160,
punch_start = 170,
punch_end = 190,
}
})

54
crab.lua Normal file
View File

@ -0,0 +1,54 @@
nssm:register_mob("nssm:crab", {
type = "monster",
hp_max = 17,
hp_min = 15,
collisionbox = {-0.5, 0, -0.5, 0.5, 0.55, 0.5},
visual = "mesh",
mesh = "crab.x",
textures = {{"crab1.png"},{"crab2.png"}},
sounds = {
random = "crab",
},
visual_size = {x=3, y=3},
makes_footstep_sound = true,
view_range = 7,
rotate = 270,
walk_velocity = 1,
run_velocity = 2,
damage = 3,
floats = 0,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2,},
{name = "nssm:surimi",
chance = 1,
min = 1,
max = 2,},
{name = "nssm:crab_chela",
chance = 4,
min = 1,
max = 2,},
},
armor = 60,
drawtype = "front",
water_damage = 0,
lava_damage = 10,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 25,
speed_run = 35,
stand_start = 10,
stand_end = 80,
walk_start = 120,
walk_end = 140,
run_start = 120,
run_end = 140,
punch_start = 90,
punch_end = 110,
}
})

52
crocodile.lua Normal file
View File

@ -0,0 +1,52 @@
nssm:register_mob("nssm:crocodile", {
type = "monster",
hp_max = 20,
hp_min = 15,
collisionbox = {-0.45, -0.30, -0.45, 0.45, 0.3, 0.45},
visual = "mesh",
mesh = "crocodile.x",
textures = {{"croco.png"}},
sounds = {
random = "crocod",
},
visual_size = {x=4, y=4},
makes_footstep_sound = true,
view_range = 15,
walk_velocity = 1,
run_velocity = 1,
damage = 3,
floats = 1,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2,},
{name = "nssm:croco_tail",
chance = 2,
min = 1,
max = 1,},
},
armor = 90,
drawtype = "front",
reach = 2,
water_damage = 0,
lava_damage = 10,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 1,
stand_end = 80,
walk_start = 230,
walk_end = 270,
run_start = 230,
run_end = 270,
punch_start = 205,
punch_end = 220,
--swim_start = 100,
--swim_end = 140,
}
})

49
daddy_long_legs.lua Normal file
View File

@ -0,0 +1,49 @@
nssm:register_mob("nssm:daddy_long_legs", {
type = "monster",
hp_max = 19,
hp_min = 16,
collisionbox = {-0.4, 0.00, -0.4, 0.4, 0.6, 0.4},
visual = "mesh",
mesh = "daddy_long_legs.x",
textures = {{"daddy_long_legs.png"}},
visual_size = {x=8, y=8},
makes_footstep_sound = true,
view_range = 12,
walk_velocity = 1.5,
run_velocity = 3.3,
rotate = 90,
sounds = {
random = "daddy",
},
damage = 3,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2,},
{name = "nssm:spider_leg",
chance = 3,
min = 1,
max = 8,},
},
armor = 100,
drawtype = "front",
water_damage = 1,
lava_damage = 7,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 20,
speed_run = 25,
stand_start = 1,
stand_end = 60,
walk_start = 80,
walk_end = 120,
run_start = 80,
run_end = 120,
punch_start = 140,
punch_end = 165,
}
})

56
dahaka.lua Normal file
View File

@ -0,0 +1,56 @@
nssm:register_mob("nssm:dahaka", {
type = "monster",
hp_max = 80,
hp_min = 80,
collisionbox = {-0.85, -0.30, -0.85, 0.85, 4.50, 0.85},
visual = "mesh",
digger = true,
mesh = "dahaka.x",
textures = {{"dahaka.png", "dahaka_sand.png"}},
visual_size = {x=4, y=4},
lifetimer=500,
makes_footstep_sound = true,
view_range = 30,
walk_velocity = 2,
run_velocity = 2,
damage = 8,
reach = 3,
jump = false,
jump_chance = 0,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 7,
max = 9,},
{name = "nssm:black_sand",
chance = 1,
min = 1,
max = 1,},
},
armor = 40,
drawtype = "front",
sounds = {
random = "dakaka",
},
water_damage = 20,
lava_damage = 0,
light_damage = 0,
rotate = 270,
on_rightclick = nil,
mele_number =2,
attack_type = "dogfight",
animation = {
speed_normal = 25,
speed_run = 40,
stand_start = 230,
stand_end = 290,
walk_start = 0,
walk_end = 40,
run_start = 0,
run_end = 40,
punch_start = 300,
punch_end = 330,
punch1_start = 120,
punch1_end = 155,
}
})

317
darts.lua Normal file
View File

@ -0,0 +1,317 @@
-- lava_arrow
nssm:register_arrow("nssm:lava_arrow", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"duck_egg.png"},
velocity = 15,
-- direct hit
hit_player = function(self, player)
nssm:lava_explosion(pos, player)
end,
hit_mob = function(self, player)
nssm:lava_explosion(pos, player)
end,
})
function nssm:lava_explosion(pos, player)
-- for i=pos.x-1, pos.x+1, 1 do
pos = player:getpos()
for j=pos.y-1, pos.y+6, 1 do
minetest.set_node({x=pos.x+1, y=j, z=pos.z+1}, {name="default:lava_flowing"})
minetest.set_node({x=pos.x+1, y=j, z=pos.z-1}, {name="default:lava_flowing"})
minetest.set_node({x=pos.x-1, y=j, z=pos.z+1}, {name="default:lava_flowing"})
minetest.set_node({x=pos.x-1, y=j, z=pos.z-1}, {name="default:lava_flowing"})
end
end
-- arrow (duck_arrow)
nssm:register_arrow("nssm:duck_father", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"duck_egg.png"},
velocity = 8,
-- direct hit
hit_player = function(self, player)
nssm:duck_explosion_direct(pos, player)
end,
hit_mob = function(self, player)
nssm:duck_explosion_direct(pos, player)
end,
hit_node = function(self, pos, node)
nssm:duck_explosion(pos)
end,
})
function nssm:duck_explosion_direct(pos, player)
pos = player:getpos()
pos.y = pos.y+1;
minetest.add_particlespawner({
amount = 10,
time = 0.2,
minpos = {x=pos.x-1, y=pos.y-1, z=pos.z-1},
maxpos = {x=pos.x+1, y=pos.y+4, z=pos.z+1},
minvel = {x=0, y=0, z=0},
maxvel = {x=1, y=1, z=1},
minacc = {x=-0.5,y=5,z=-0.5},
maxacc = {x=0.5,y=5,z=0.5},
minexptime = 1,
maxexptime = 3,
minsize = 4,
maxsize = 6,
collisiondetection = false,
vertical = false,
texture = "duck_egg_fragments.png",
})
core.after(0.4, function()
for dx = -2,2 do
pos = {x = pos.x+dx, y=pos.y; z=pos.z+dx}
minetest.add_particlespawner({
amount = 100,
time = 0.2,
minpos = {x=pos.x-1, y=pos.y-1, z=pos.z-1},
maxpos = {x=pos.x+1, y=pos.y+4, z=pos.z+1},
minvel = {x=0, y=0, z=0},
maxvel = {x=1, y=5, z=1},
minacc = {x=-0.5,y=5,z=-0.5},
maxacc = {x=0.5,y=5,z=0.5},
minexptime = 1,
maxexptime = 3,
minsize = 2,
maxsize = 4,
collisiondetection = false,
vertical = false,
texture = "tnt_smoke.png",
})
minetest.add_entity(pos, "nssm:duck")
end
end)
end
function nssm:duck_explosion(pos)
pos.y = pos.y+1;
minetest.add_particlespawner({
amount = 10,
time = 0.2,
minpos = {x=pos.x-1, y=pos.y-1, z=pos.z-1},
maxpos = {x=pos.x+1, y=pos.y+4, z=pos.z+1},
minvel = {x=0, y=0, z=0},
maxvel = {x=1, y=1, z=1},
minacc = {x=-0.5,y=5,z=-0.5},
maxacc = {x=0.5,y=5,z=0.5},
minexptime = 1,
maxexptime = 3,
minsize = 4,
maxsize = 6,
collisiondetection = false,
vertical = false,
texture = "duck_egg_fragments.png",
})
core.after(0.4, function()
for dx = -2,2 do
pos = {x = pos.x+dx, y=pos.y; z=pos.z+dx}
minetest.add_particlespawner({
amount = 100,
time = 0.2,
minpos = {x=pos.x-1, y=pos.y-1, z=pos.z-1},
maxpos = {x=pos.x+1, y=pos.y+4, z=pos.z+1},
minvel = {x=0, y=0, z=0},
maxvel = {x=1, y=5, z=1},
minacc = {x=-0.5,y=5,z=-0.5},
maxacc = {x=0.5,y=5,z=0.5},
minexptime = 1,
maxexptime = 3,
minsize = 2,
maxsize = 4,
collisiondetection = false,
vertical = false,
texture = "tnt_smoke.png",
})
minetest.add_entity(pos, "nssm:duck")
end
end)
end
-- snow_arrow
nssm:register_arrow("nssm:snow_arrow", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"transparent.png"},
velocity =20,
-- direct hit
hit_player = function(self, player)
nssm:ice_explosion1(pos, player)
end,
hit_mob = function(self, player)
nssm:ice_explosion1(pos, player)
end,
hit_node = function(self, pos, node)
nssm:ice_explosion(pos)
end,
})
function nssm:ice_explosion(pos)
--pos = player:getpos()
for i=pos.x-math.random(0, 1), pos.x+math.random(0, 1), 1 do
for j=pos.y-1, pos.y+4, 1 do
for k=pos.z-math.random(0, 1), pos.z+math.random(0, 1), 1 do
minetest.set_node({x=i, y=j, z=k}, {name="default:ice"})
end
end
end
end
function nssm:ice_explosion1(pos, player)
pos = player:getpos()
for i=pos.x-math.random(0, 1), pos.x+math.random(0, 1), 1 do
for j=pos.y-1, pos.y+4, 1 do
for k=pos.z-math.random(0, 1), pos.z+math.random(0, 1), 1 do
minetest.set_node({x=i, y=j, z=k}, {name="default:ice"})
end
end
end
end
-- arrow manticore
nssm:register_arrow("nssm:spine", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"manticore_spine_flying.png"},
velocity = 10,
-- direct hit
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,
})
-- web arrow
nssm:register_arrow("nssm:webball", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"web_ball.png"},
velocity = 8,
-- direct hit
hit_player = function(self, player)
local p = player:getpos()
nssm:explosion_web(p)
end,
hit_mob = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 1},
}, nil)
end,
hit_node = function(self, pos, node)
nssm:explosion_web(pos)
end
})
function nssm:explosion_web(pos)
for i=pos.x-1, pos.x+1, 1 do
for j=pos.y-1, pos.y+1, 1 do
for k=pos.z-1, pos.z+1, 1 do
local current = minetest.get_node({x=i,y=j,z=k})
local ontop = minetest.get_node({x=i,y=j+1,z=k})
if (current.name ~= "air") and
(current.name ~= "nssm:web") and
(ontop.name == "air") then
minetest.set_node({x=i,y=j+1,z=k}, {name="nssm:web"})
end
end
end
end
end
-- arrow=>phoenix arrow
nssm:register_arrow("nssm:phoenix_arrow", {
visual = "sprite",
phoenix_fire = true,
visual_size = {x = 1, y = 1},
textures = {"transparent.png"},
velocity = 8,
-- direct hit
hit_player = function(self, player)
end,
hit_mob = function(self, player)
end,
hit_node = function(self, pos, node)
end
})
nssm:register_arrow("nssm:super_gas", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"transparent.png"},
velocity = 8,
-- direct hit
hit_player = function(self, player)
local p = player:getpos()
nssm:puzzetton_explosion(p)
end,
hit_mob = function(self, player)
end,
hit_node = function(self, pos, node)
nssm:puzzetton_explosion(pos)
end
})
function nssm:puzzetton_explosion(pos)
for dx=-2,2 do
for dy=-1,4 do
for dz=-2,2 do
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if n== "air" then
minetest.set_node(p, {name="nssm:venomous_gas"})
end
end
end
end
end
--
nssm:register_arrow("nssm:roar_of_the_dragon", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"transparent.png"},
velocity = 10,
remover = true,
-- direct hit
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,
})

1
depends.txt Normal file
View File

@ -0,0 +1 @@
default

50
dolidrosaurus.lua Normal file
View File

@ -0,0 +1,50 @@
nssm:register_mob("nssm:dolidrosaurus", {
type = "monster",
hp_max = 26,
hp_min = 23,
collisionbox = {-0.5, 0, -0.5, 0.5, 0.52, 0.5},
visual = "mesh",
mesh = "dolidrosaurus.x",
textures = {{"dolidrosaurus1.png"},{"dolidrosaurus2.png"},{"dolidrosaurus3.png"},{"dolidrosaurus4.png"},{"dolidrosaurus5.png"}},
visual_size = {x=4, y=4},
makes_footstep_sound = true,
view_range = 30,
fly = true,
fly_in = "default:water_source",
fall_speed = -20,
walk_velocity = 2,
run_velocity = 3,
damage = 4,
rotate = 270,
jump = false,
jump_chance = 0,
jump_height = 0,
sounds = {
random = "quo",
},
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 3,},
},
armor = 80,
drawtype = "front",
water_damage = 0,
lava_damage = 10,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 25,
speed_run = 35,
stand_start = 1,
stand_end = 80,
walk_start = 140,
walk_end = 180,
run_start = 140,
run_end = 180,
punch_start = 190,
punch_end = 220,
}
})

55
duck.lua Normal file
View File

@ -0,0 +1,55 @@
nssm:register_mob("nssm:duck", {
type = "monster",
hp_max = 10,
hp_min = 7,
collisionbox = {-0.3, 0.00, -0.3, 0.3, 0.95, 0.3},
visual = "mesh",
mesh = "duck.x",
textures = {{"duck.png"}},
visual_size = {x=2, y=2},
makes_footstep_sound = true,
view_range = 13,
walk_velocity = 1,
reach =1.5,
run_velocity = 2,
damage = 1,
jump = true,
sounds = {
random = "duck",
},
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 1,},
{name = "nssm:duck_legs",
chance = 1,
min = 1,
max = 2,},
{name = "nssm:duck_beak",
chance = 5,
min = 1,
max = 1,},
},
armor = 100,
drawtype = "front",
water_damage = 0,
fear_height = 5,
floats = 1,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 15,
speed_run = 25,
stand_start = 1,
stand_end = 20,
walk_start = 20,
walk_end = 40,
run_start = 20,
run_end = 40,
punch_start = 40,
punch_end = 60,
}
})

67
duckking.lua Normal file
View File

@ -0,0 +1,67 @@
nssm:register_mob("nssm:duckking", {
type = "monster",
hp_max = 80,
hp_min = 77,
collisionbox = {-1.5, -0.25, -1.5, 1.5, 4.95, 1.5},
visual = "mesh",
mesh = "king_duck.x",
textures = {{"king_duck.png"}},
visual_size = {x=10, y=10},
lifetimer = 300,
makes_footstep_sound = true,
view_range = 30,
rotate = 270,
duck_father = true,
walk_velocity = 1,
run_velocity = 2,
damage = 5,
jump = true,
sounds = {
random = "duckking",
attack = "duckking",
},
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 7,
max = 8,},
{name = "nssm:duck_legs",
chance = 1,
min = 40,
max = 50,},
{name = "nssm:king_duck_crown",
chance = 1,
min = 1,
max = 1,},
{name = "nssm:duck_beak",
chance = 5,
min = 10,
max = 20,},
},
armor = 80,
drawtype = "front",
water_damage = 0,
floats = 1,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogshoot",
dogshoot_stop = true,
arrow = "nssm:duck_father";
reach = 3,
shoot_interval=3,
animation = {
speed_normal = 15,
speed_run = 25,
stand_start = 60,
stand_end = 140,
walk_start = 0,
walk_end = 40,
run_start = 0,
run_end = 40,
punch_start = 190,
punch_end = 220,
dattack_start = 160,
dattack_end = 180,
}
})

57
echidna.lua Normal file
View File

@ -0,0 +1,57 @@
nssm:register_mob("nssm:echidna", {
type = "monster",
hp_max = 90,
hp_min = 90,
collisionbox = {-0.6, 0.00, -0.6, 0.6, 2, 0.6},
visual = "mesh",
mesh = "echidna.x",
textures = {{"echidnapes.png"}},
visual_size = {x=6, y=6},
makes_footstep_sound = true,
view_range = 30,
rotate = 270,
lifetimer = 500,
walk_velocity = 2,
run_velocity = 3.5,
damage = 10,
jump = true,
sounds = {
random = "echidna",
},
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 6,
max = 7,},
{name = "nssm:snake_scute",
chance = 1,
min = 1,
max = 1,},
},
armor = 60,
drawtype = "front",
water_damage = 0,
floats = 1,
lava_damage = 0,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogshoot",
dogshoot_stop = true,
arrow = "nssm:super_gas";
reach = 5,
shoot_interval=3,
animation = {
speed_normal = 15,
speed_run = 25,
stand_start = 60,
stand_end = 140,
walk_start = 1,
walk_end = 40,
run_start = 1,
run_end = 40,
punch_start = 160,
punch_end = 190,
dattack_start = 200,
dattack_end = 240,
}
})

54
enderduck.lua Normal file
View File

@ -0,0 +1,54 @@
nssm:register_mob("nssm:enderduck", {
type = "monster",
hp_max = 20,
hp_min = 18,
collisionbox = {-0.28, 0.00, -0.28, 0.28, 1.8, 0.28},
visual = "mesh",
mesh = "enderduck.x",
textures = {{"enderduck.png"}},
visual_size = {x=2, y=2},
makes_footstep_sound = true,
view_range = 25,
walk_velocity = 3,
run_velocity = 3.9,
rotate = 270,
sounds = {
random = "duck",
},
damage = 3,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2},
{name = "nssm:duck_legs",
chance = 1,
min = 1,
max = 2},
{name = "nssm:duck_beak",
chance = 5,
min = 1,
max = 1,},
},
armor = 100,
drawtype = "front",
water_damage = 1,
floats=1,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 15,
speed_run = 30,
stand_start = 1,
stand_end = 40,
walk_start = 100,
walk_end = 130,
run_start = 100,
run_end = 130,
punch_start = 60,
punch_end = 90,
}
})

54
flying_duck.lua Normal file
View File

@ -0,0 +1,54 @@
nssm:register_mob("nssm:flying_duck", {
type = "monster",
hp_max = 15,
hp_min = 14,
collisionbox = {-0.3, -0.2, -0.3, 0.3, 0.2, 0.3},
visual = "mesh",
mesh = "nathan_petrelli.x",
textures = {{"nathan_petrelli.png"}},
visual_size = {x=1, y=1},
view_range = 30,
walk_velocity = 2,
run_velocity = 2.5,
fall_speed = 0,
stepheight = 3,
sounds = {
random = "duck",
},
damage = 2,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2,},
{name = "nssm:duck_legs",
chance = 2,
min = 1,
max = 2,},
{name = "nssm:duck_beak",
chance = 5,
min = 1,
max = 1,},
},
armor = 100,
drawtype = "front",
water_damage = 0,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
fly = true,
attack_type = "dogfight",
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 0,
stand_end = 80,
walk_start = 160,
walk_end = 200,
run_start = 160,
run_end = 220,
punch_start = 110,
punch_end = 140,
}
})

64
icelamander.lua Normal file
View File

@ -0,0 +1,64 @@
nssm:register_mob("nssm:icelamander", {
type = "monster",
hp_max = 90,
hp_min = 90,
collisionbox = {-0.5, 0, -0.5, 0.5, 2.3, 0.5},
visual = "mesh",
mesh = "icelamander.x",
textures = {{"icelamander.png"}},
visual_size = {x=4, y=4},
makes_footstep_sound = true,
view_range = 35,
big_froster = true,
lifetimer = 500,
walk_velocity = 2,
run_velocity = 4,
sounds = {
random = "icelamander",
},
damage = 8,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 6,
max = 8},
{name = "nssm:frosted_amphibian_heart",
chance = 1,
min = 1,
max = 1},
{name = "nssm:ice_tooth",
chance = 1,
min = 1,
max = 1},
{name = "nssm:little_ice_tooth",
chance = 1,
min = 0,
max = 20},
},
armor = 60,
drawtype = "front",
water_damage = 0,
lava_damage = 30,
light_damage = 0,
on_rightclick = nil,
dogshoot_stop = true,
attack_type = "dogshoot",
arrow = "nssm:snow_arrow",
reach = 3,
shoot_interval = 2,
animation = {
speed_normal = 15,
speed_run = 25,
stand_start = 1,
stand_end = 40,
walk_start = 80,
walk_end = 160,
run_start = 40,
run_end = 80,
punch_start = 160,
punch_end = 190,
dattack_start = 190,
dattack_end = 210,
}
})

54
icesnake.lua Normal file
View File

@ -0,0 +1,54 @@
nssm:register_mob("nssm:icesnake", {
type = "monster",
hp_max = 17,
hp_min = 13,
collisionbox = {-0.7, 0, -0.7, 0.7, 0.50, 0.7},
visual = "mesh",
mesh = "icesnake.x",
textures = {{"icesnake.png"}},
visual_size = {x=7, y=7},
makes_footstep_sound = false,
view_range = 10,
rotate = 270,
froster = true,
walk_velocity = 1.2,
run_velocity = 3,
sounds = {
random = "icesnake",
},
damage = 3,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2},
{name = "nssm:frosted_amphibian_heart",
chance = 1,
min = 1,
max = 1},
{name = "nssm:little_ice_tooth",
chance = 2,
min = 0,
max = 4},
},
armor = 100,
drawtype = "front",
water_damage = 0,
lava_damage = 20,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 15,
speed_run = 25,
stand_start = 170,
stand_end = 220,
walk_start = 1,
walk_end = 60,
run_start = 80,
run_end = 120,
punch_start = 130,
punch_end = 160,
}
})

57
init.lua Normal file
View File

@ -0,0 +1,57 @@
local path = minetest.get_modpath("nssm")
dofile(path.."/api.lua")
dofile(path.."/spawn.lua")
--Mobs
dofile(path.."/ant_queen.lua")
dofile(path.."/ant_soldier.lua")
dofile(path.."/ant_worker.lua")
dofile(path.."/black_widow.lua")
dofile(path.."/bloco.lua")
dofile(path.."/crab.lua")
dofile(path.."/crocodile.lua")
dofile(path.."/daddy_long_legs.lua")
dofile(path.."/dahaka.lua")
dofile(path.."/dolidrosaurus.lua")
dofile(path.."/duck.lua")
dofile(path.."/duckking.lua")
dofile(path.."/echidna.lua")
dofile(path.."/enderduck.lua")
dofile(path.."/flying_duck.lua")
dofile(path.."/icelamander.lua")
dofile(path.."/icesnake.lua")
dofile(path.."/kraken.lua")
dofile(path.."/larva.lua")
dofile(path.."/lava_titan.lua")
dofile(path.."/manticore.lua")
dofile(path.."/mantis_beast.lua")
dofile(path.."/mantis.lua")
dofile(path.."/masticone.lua")
dofile(path.."/moonheron.lua")
dofile(path.."/night_master.lua")
dofile(path.."/octopus.lua")
dofile(path.."/phoenix.lua")
dofile(path.."/pumpboom.lua")
dofile(path.."/pumpking.lua")
dofile(path.."/sandworm.lua")
dofile(path.."/scrausics.lua")
dofile(path.."/signosigno.lua")
dofile(path.."/snow_biter.lua")
dofile(path.."/spiderduck.lua")
dofile(path.."/stone_eater.lua")
dofile(path.."/swimming_duck.lua")
dofile(path.."/tarantula.lua")
dofile(path.."/uloboros.lua")
dofile(path.."/werewolf.lua")
dofile(path.."/white_werewolf.lua")
--Final Boss
dofile(path.."/mese_dragon.lua")
--Others
dofile(path.."/rainbow_staff.lua")
dofile(path.."/darts.lua")
dofile(path.."/nssm_materials.lua")
dofile(path.."/kienzan.lua")
dofile(path.."/kamehameha.lua")
dofile(path.."/nssm_spears.lua")

120
kamehameha.lua Normal file
View File

@ -0,0 +1,120 @@
--Kamehameha!
minetest.register_entity("nssm:kamehameha", {
textures = {"kamehameha.png"},
velocity = 15,
on_step = function (self, pos, node, dtime)
local pos = self.object:getpos()
local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:is_player() then
return
else
obj:set_hp(obj:get_hp()-20)
if obj:get_entity_name() ~= "nssm:kamehameha" then
if obj:get_hp()<=0 then
obj:remove()
end
end
end
end
for dx=-1,1 do
for dy=-1,1 do
for dz=-1,1 do
local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if n ~= "kamehameha:kame_entity" and n ~="default:stone" and n ~="default:desert_stone" then
if minetest.registered_nodes[n].groups.flammable --[[or math.random(1, 100) <= 1]] then
minetest.env:set_node(t, {name="fire:basic_flame"})
else
minetest.env:set_node(t, {name="air"})
end
elseif n == "default:stone" or n =="default:desert_stone" then
self.hit_node(self, pos, node)
self.object:remove()
return
end
end
end
end
end,
hit_node = function(self, pos, node)
for dx=-4,4 do
for dy=-4,4 do
for dz=-4,4 do
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(pos).name
if math.random(1, 50) <= 35 then
minetest.env:remove_node(p)
end
if minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <=5 then
minetest.env:set_node(t, {name="fire:basic_flame"})
end
local objects = minetest.env:get_objects_inside_radius(pos, 4)
for _,obj in ipairs(objects) do
if obj:is_player() or (obj:get_luaentity() and obj:get_luaentity().name ~= "__builtin:item") then
local obj_p = obj:getpos()
local vec = {x=obj_p.x-pos.x, y=obj_p.y-pos.y, z=obj_p.z-pos.z}
local dist = (vec.x^2+vec.y^2+vec.z^2)^0.5
local damage = (80*0.5^dist)*2
obj:punch(obj, 1.0, {
full_punch_interval=1.0,
damage_groups={fleshy=damage},
}, vec)
end
end
minetest.sound_play("boom", {
max_hear_distance = 100,
})
--[[
--This is the particle spawner, but it will slow your pc. If you have a powerful pc you can uncomment this section
minetest.add_particlespawner(
1, --amount
0.1, --time
{x=pos.x-3, y=pos.y-3, z=pos.z-3}, --minpos
{x=pos.x+3, y=pos.y+3, z=pos.z+3}, --maxpos
{x=-0, y=-0, z=-0}, --minvel
{x=0, y=0, z=0}, --maxvel
{x=-0.5,y=5,z=-0.5}, --minacc
{x=0.5,y=5,z=0.5}, --maxacc
0.1, --minexptime
1, --maxexptime
8, --minsize
15, --maxsize
false, --collisiondetection
"tnt_smoke.png" --texture
)
]]--
end
end
end
end
})
minetest.register_tool("nssm:kamehameha_hand", {
description = "Kamehameha",
inventory_image = "kamehameha_hand.png",
on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir();
local playerpos = placer:getpos();
local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:kamehameha")
local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6}
obj:setvelocity(vec)
return itemstack
end,
light_source = 12,
})
minetest.register_craft({
output = 'nssm:kamehameha_hand',
recipe = {
{'nssm:great_energy_globe', 'nssm:great_energy_globe', 'nssm:great_energy_globe'},
{'nssm:great_energy_globe', '', 'nssm:great_energy_globe'},
{'nssm:great_energy_globe', 'nssm:great_energy_globe', 'nssm:great_energy_globe'},
}
})

72
kienzan.lua Normal file
View File

@ -0,0 +1,72 @@
disk_VELOCITY=20
disk_shoot_disk=function (item, player, pointed_thing)
if player:get_inventory():contains_item("main", "nssm:kienzan_hand") then
local playerpos=player:getpos()
local obj=minetest.env:add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, "nssm:kienzan_entity")
local dir=player:get_look_dir()
obj:setvelocity({x=dir.x*disk_VELOCITY, y=dir.y*disk_VELOCITY, z=dir.z*disk_VELOCITY})
end
return
end
minetest.register_tool("nssm:kienzan_hand", {
description = "Kienzan",
inventory_image = "kienzan_hand.png",
stack_max = 1,
-- not_in_creative_inventory=0,
on_use = disk_shoot_disk,
})
kienzan_ENTITY={
physical = false,
textures = {"kienzan.png"},
lastpos={},
collisionbox = {0,0,0,0,0,0},
}
kienzan_ENTITY.on_step =function (self, pos, node, dtime)
local timer = 0
minetest.register_globalstep(function(dtime)
timer = timer + dtime;
if timer > 10 then
self.object:remove()
end
end)
local pos = self.object:getpos()
local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
for k, obj in pairs(objs) do
if obj:is_player() then
return
else
obj:set_hp(obj:get_hp()-20)
if obj:get_entity_name() ~= "nssm:kienzan_entity" then
if obj:get_hp()<=0 then
obj:remove()
end
end
end
end
for dx=-1,1 do
-- for dy=-1,1 do
for dz=-1,1 do
local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
local t = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if n ~= "nssm:kienzan_entity" then
minetest.env:set_node(t, {name="air"})
end
end
end
end
minetest.register_entity("nssm:kienzan_entity", kienzan_ENTITY)
minetest.register_craft({
output = 'nssm:kienzan_hand',
recipe = {
{'', '', ''},
{'nssm:great_energy_globe', 'nssm:great_energy_globe', 'nssm:great_energy_globe'},
{'', '', ''},
}
})

60
kraken.lua Normal file
View File

@ -0,0 +1,60 @@
nssm:register_mob("nssm:kraken", {
type = "monster",
hp_max = 150,
hp_min = 150,
collisionbox = {-2, 0, -2, 2, 4, 2},
visual = "mesh",
mesh = "kraken.x",
textures = {{"kraken.png"}, {"kraken2.png"}},
visual_size = {x=15, y=15},
lifetimer=500,
inker = false,
view_range = 50,
fly = true,
fly_in = "default:water_source",
fall_speed = -1,
walk_velocity = 3.5,
run_velocity = 4.5,
damage = 8,
rotate = 270,
jump = false,
jump_chance = 0,
jump_height = 0,
sounds = {
random = "kraken",
},
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 6,
max = 7,},
{name = "nssm:tentacle",
chance = 1,
min = 30,
max = 40,},
{name = "nssm:tentacle_curly",
chance = 1,
min = 1,
max = 1,},
},
armor = 70,
drawtype = "front",
water_damage = 0,
lava_damage = 10,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
reach=8,
animation = {
speed_normal = 20,
speed_run = 30,
stand_start = 1,
stand_end = 40,
walk_start = 60,
walk_end = 100,
run_start = 60,
run_end = 100,
punch_start = 120,
punch_end = 150,
}
})

47
larva.lua Normal file
View File

@ -0,0 +1,47 @@
nssm:register_mob("nssm:larva", {
type = "monster",
hp_max = 10,
hp_min = 8,
collisionbox = {-0.3, 0, -0.3, 0.3, 0.41, 0.3},
visual = "mesh",
mesh = "larva.x",
textures = {{"larva.png"}},
visual_size = {x=3, y=3},
makes_footstep_sound = false,
view_range = 10,
rotate = 90,
jump = false,
jump_height =0,
walk_velocity = 0.4,
run_velocity = 0.4,
sounds = {
random = "sand",
},
damage = 1,
drops = {
{name = "nssm:life_energy",
chance = 3,
min = 1,
max = 1,},
},
metamorphosis = true,
armor = 100,
drawtype = "front",
water_damage = 1,
lava_damage = 1,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 20,
speed_run = 20,
stand_start = 0,
stand_end = 80,
walk_start = 100,
walk_end = 160,
run_start = 100,
run_end = 160,
punch_start = 180,
punch_end = 230,
}
})

81
lava_titan.lua Normal file
View File

@ -0,0 +1,81 @@
nssm:register_mob("nssm:lava_titan", {
type = "monster",
hp_max = 80,
hp_min = 80,
collisionbox = {-0.6, -0.05, -0.6, 0.6, 4.0, 0.6},
visual = "mesh",
mesh = "lava_titan.x",
textures = {{"lava_titan.png"}},
visual_size = {x=4, y=4},
makes_footstep_sound = true,
view_range = 20,
lifetimer = 500,
walk_velocity = 1,
run_velocity = 2,
floats = 1,
sounds = {
random = "lava_titan",
},
damage = 7,
jump = false,
jump_height=0,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 7,
max = 9,},
{name = "nssm:lava_titan_eye",
chance = 1,
min = 1,
max = 1,},
{name = "bucket:bucket_lava",
chance = 2,
min = 1,
max = 3,},
},
armor = 40,
drawtype = "front",
water_damage = 4,
rotate = 270,
digger = true,
melter = true,
light_damage = 0,
lava_damage = 0,
on_rightclick = nil,
floats = 1,
attack_type = "dogshoot",
dogshoot_stop = true,
arrow = "nssm:lava_arrow",
reach = 3,
shoot_interval = 2,
shoot_offset = -1,
true_dist_attack = true,
on_dist_attack = function(self, player)
local pos = player:getpos()
for dy=-1, 6, 1 do
for dx=-1, 1, 2 do
for dz=-1, 1, 2 do
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
local n = minetest.env:get_node(p).name
if n~="default:lava_flowing" then
minetest.set_node(p, {name="default:lava_flowing"})
end
end
end
end
end,
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 120,
stand_end = 300,
walk_start = 10,
walk_end = 110,
run_start = 10,
run_end = 110,
punch_start = 301,
punch_end = 340,
dattack_start =340,
dattack_end=400,
}
})

56
manticore.lua Normal file
View File

@ -0,0 +1,56 @@
nssm:register_mob("nssm:manticore", {
type = "monster",
hp_max = 25,
hp_min = 24,
collisionbox = {-0.8, -0.85, -0.8, 0.8, 1.9, 0.8},
visual = "mesh",
mesh = "manticore.x",
textures = {{"manticore.png"}},
visual_size = {x=4, y=4},
makes_footstep_sound = true,
view_range = 25,
walk_velocity = 2,
run_velocity = 4,
sounds = {
random = "manticore",
},
damage = 4,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 3,
max = 4,},
{name = "nssm:manticore_spine",
chance = 3,
min = 2,
max = 5,},
},
armor = 100,
drawtype = "front",
water_damage = 2,
rotate = 270,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogshoot",
dogshoot_stop = true,
arrow = "nssm:spine",
reach = 3,
shoot_interval = 2,
shoot_offset = 1,
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 1,
stand_end = 40,
walk_start = 240,
walk_end = 280,
run_start = 91,
run_end = 108,
punch_start = 110,
punch_end = 143,
dattack_start =180,
dattack_end=230,
}
})

51
mantis.lua Normal file
View File

@ -0,0 +1,51 @@
nssm:register_mob("nssm:mantis", {
type = "monster",
hp_max = 15,
hp_min = 14,
collisionbox = {-0.5, 0.00, -0.5, 0.5, 2.30, 0.5},
visual = "mesh",
mesh = "mantis.x",
textures = {{"mantis.png"}, {"mantis2.png"}},
visual_size = {x=4, y=4},
makes_footstep_sound = true,
view_range = 20,
walk_velocity = 2,
run_velocity = 2.5,
sounds = {
random = "manti",
},
damage = 2,
jump = true,
drops = {
{name = "nssm:mantis_claw",
chance = 2,
min = 1,
max = 4,},
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2,},
},
armor = 100,
drawtype = "front",
water_damage = 2,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
mele_number =2,
attack_type = "dogfight",
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 1,
stand_end = 20,
walk_start = 20,
walk_end = 60,
run_start = 60,
run_end = 80,
punch_start = 120,
punch_end = 140,
punch1_start = 145,
punch1_end = 165,
}
})

48
mantis_beast.lua Normal file
View File

@ -0,0 +1,48 @@
nssm:register_mob("nssm:mantis_beast", {
type = "monster",
hp_max = 20,
hp_min = 17,
collisionbox = {-0.65, 0.00, -0.65, 0.65, 1.50, 0.65},
visual = "mesh",
mesh = "mantis_beast.x",
textures = {{"mantis_beast.png"}, {"mantis_beast2.png"}},
visual_size = {x=6, y=6},
makes_footstep_sound = true,
view_range = 25,
walk_velocity = 2.5,
run_velocity = 3.5,
sounds = {
random = "manti",
},
damage = 3,
jump = true,
drops = {
{name = "nssm:mantis_claw",
chance = 2,
min = 1,
max = 6,},
{name = "nssm:life_energy",
chance = 1,
min = 2,
max = 3,},
},
armor = 100,
drawtype = "front",
water_damage = 2,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 15,
speed_run = 20,
stand_start = 0,
stand_end = 60,
walk_start = 70,
walk_end = 110,
run_start = 70,
run_end = 110,
punch_start = 140,
punch_end = 165,
}
})

80
masticone.lua Normal file
View File

@ -0,0 +1,80 @@
nssm:register_mob("nssm:masticone", {
type = "monster",
hp_max = 15,
hp_min = 14,
collisionbox = {-0.45, 0.00, -0.45, 0.45, 0.40, 0.45},
visual = "mesh",
mesh = "masticone.x",
textures = {{"masticone.png"}},
visual_size = {x=4, y=4},
makes_footstep_sound = true,
view_range = 15,
lifetimer = 500,
rotate = 270,
walk_velocity = 1.5,
run_velocity = 2.5,
sounds = {
random = "masticone",
},
damage = 5,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 7,
max = 8,},
{name = "nssm:masticone_fang",
chance = 1,
min = 1,
max = 2,},
{name = "nssm:masticone_skull_fragments",
chance = 2,
min = 1,
max = 2,},
},
armor = 60,
drawtype = "front",
water_damage = 0,
lava_damage = 5,
hydra = true,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
reach =1.5,
animation = {
speed_normal = 20,
speed_run = 30,
stand_start = 80,
stand_end = 140,
walk_start = 20,
walk_end = 40,
run_start = 20,
run_end = 40,
punch_start = 50,
punch_end = 75,
},
on_die = function(self, pos)
core.after(2, function()
minetest.add_particlespawner(
200, --amount
0.1, --time
{x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos
{x=pos.x+1, y=pos.y+1, z=pos.z+1}, --maxpos
{x=-0, y=-0, z=-0}, --minvel
{x=1, y=1, z=1}, --maxvel
{x=-0.5,y=5,z=-0.5}, --minacc
{x=0.5,y=5,z=0.5}, --maxacc
0.1, --minexptime
1, --maxexptime
3, --minsize
4, --maxsize
false, --collisiondetection
"tnt_smoke.png" --texture
)
local pos1 = {x=pos.x+math.random(-1,1), y=pos.y+0.5, z=pos.z+math.random(-1,1)}
local pos2 = {x=pos.x+math.random(-1,1), y=pos.y+0.5, z=pos.z+math.random(-1,1)}
minetest.add_entity(pos1, "nssm:masticone")
minetest.add_entity(pos2, "nssm:masticone")
end)
end,
})

63
mese_dragon.lua Normal file
View File

@ -0,0 +1,63 @@
nssm:register_mob("nssm:mese_dragon", {
type = "monster",
hp_max = 333,
hp_min = 333,
collisionbox = {-1, 0, -1, 1, 5, 1},
visual = "mesh",
mesh = "mese_dragon.x",
textures = {{"mese_dragon.png"}},
visual_size = {x=12, y=12},
makes_footstep_sound = true,
maxus = true,
view_range = 45,
rotate = 270,
walk_velocity = 2,
run_velocity = 4,
sounds = {
shoot_attack = "mesed",
attack = "mese_dragon",
distance = 60,
},
damage = 16,
jump = true,
jump_height = 10,
putter = true,
drops = {
{name = "nssm:rainbow_staff",
chance = 1,
min = 1,
max = 1},
{name = "nssm:energy_globe",
chance = 1,
min = 99,
max = 99},
},
armor = 60,
drawtype = "front",
water_damage = 0,
lava_damage = 0,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogshoot",
dogshoot_stop = true,
arrow = "nssm:roar_of_the_dragon",
reach = 5,
shoot_interval = 3,
shoot_offset = -1,
animation = {
speed_normal = 15,
speed_run = 25,
stand_start = 60,
stand_end = 120,
walk_start = 161,
walk_end = 205,
run_start = 206,
run_end = 242,
punch_start = 242,
punch_end = 275,
punch1_start = 330,
punch1_end = 370,
dattack_start = 120,
dattack_end = 160,
}
})

42969
models/ant_queen.x Normal file

File diff suppressed because it is too large Load Diff

38561
models/ant_soldier.x Normal file

File diff suppressed because it is too large Load Diff

36771
models/ant_worker.x Normal file

File diff suppressed because it is too large Load Diff

37672
models/black_widow.x Normal file

File diff suppressed because it is too large Load Diff

20168
models/bloco.x Normal file

File diff suppressed because it is too large Load Diff

47024
models/crab.x Normal file

File diff suppressed because it is too large Load Diff

23586
models/crocodile.x Normal file

File diff suppressed because it is too large Load Diff

36818
models/daddy_long_legs.x Normal file

File diff suppressed because it is too large Load Diff

46487
models/dahaka.x Normal file

File diff suppressed because it is too large Load Diff

20438
models/dolidrosaurus.x Normal file

File diff suppressed because it is too large Load Diff

4693
models/duck.x Normal file

File diff suppressed because it is too large Load Diff

47811
models/echidna.x Normal file

File diff suppressed because it is too large Load Diff

28930
models/enderduck.x Normal file

File diff suppressed because it is too large Load Diff

61734
models/icelamander.x Normal file

File diff suppressed because it is too large Load Diff

15449
models/icesnake.x Normal file

File diff suppressed because it is too large Load Diff

31278
models/king_duck.x Normal file

File diff suppressed because it is too large Load Diff

35203
models/kraken.x Normal file

File diff suppressed because it is too large Load Diff

16468
models/larva.x Normal file

File diff suppressed because it is too large Load Diff

53459
models/lava_titan.x Normal file

File diff suppressed because it is too large Load Diff

49697
models/manticore.x Normal file

File diff suppressed because it is too large Load Diff

25478
models/mantis.x Normal file

File diff suppressed because it is too large Load Diff

22523
models/mantis_beast.x Normal file

File diff suppressed because it is too large Load Diff

25433
models/masticone.x Normal file

File diff suppressed because it is too large Load Diff

84070
models/mese_dragon.x Normal file

File diff suppressed because it is too large Load Diff

44778
models/moonheron.x Normal file

File diff suppressed because it is too large Load Diff

61288
models/moonherontrio.x Normal file

File diff suppressed because it is too large Load Diff

41587
models/nathan_petrelli.x Normal file

File diff suppressed because it is too large Load Diff

46808
models/night_master_1.x Normal file

File diff suppressed because it is too large Load Diff

53048
models/night_master_2.x Normal file

File diff suppressed because it is too large Load Diff

35202
models/octopus.x Normal file

File diff suppressed because it is too large Load Diff

84888
models/phoenix.x Normal file

File diff suppressed because it is too large Load Diff

14743
models/pumpboom.x Normal file

File diff suppressed because it is too large Load Diff

65402
models/pumpking.x Normal file

File diff suppressed because it is too large Load Diff

30634
models/sandworm.x Normal file

File diff suppressed because it is too large Load Diff

65798
models/scrausics.x Normal file

File diff suppressed because it is too large Load Diff

25119
models/signosigno.x Normal file

File diff suppressed because it is too large Load Diff

38662
models/snow_biter.x Normal file

File diff suppressed because it is too large Load Diff

36559
models/spiderduck.x Normal file

File diff suppressed because it is too large Load Diff

29749
models/stone_eater.back.x Normal file

File diff suppressed because it is too large Load Diff

29749
models/stone_eater.x Normal file

File diff suppressed because it is too large Load Diff

17563
models/swimming_duck.x Normal file

File diff suppressed because it is too large Load Diff

37588
models/tarantula.x Normal file

File diff suppressed because it is too large Load Diff

37588
models/tarantula_propower.x Normal file

File diff suppressed because it is too large Load Diff

37696
models/uloboros.x Normal file

File diff suppressed because it is too large Load Diff

23397
models/werewolf.x Normal file

File diff suppressed because it is too large Load Diff

23397
models/white_werewolf.x Normal file

File diff suppressed because it is too large Load Diff

53
moonheron.lua Normal file
View File

@ -0,0 +1,53 @@
nssm:register_mob("nssm:moonheron", {
type = "monster",
hp_max = 23,
hp_min = 22,
collisionbox = {-0.45, -0.3, -0.45, 0.45, 0.3, 0.45},
visual = "mesh",
mesh = "moonheron.x",
textures = {{"moonheron.png"}},
visual_size = {x=10, y=10},
view_range = 35,
rotate = 270,
walk_velocity = 2,
run_velocity = 3,
fall_speed = 0,
stepheight = 3,
sounds = {
random = "moonheron",
distance =40,
},
damage = 3,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 2,
max = 3,},
{name = "nssm:heron_leg",
chance = 1,
min = 1,
max = 1,},
},
armor = 100,
floats = 1,
drawtype = "front",
water_damage = 5,
lava_damage = 5,
light_damage = 5,
on_rightclick = nil,
fly = true,
attack_type = "dogfight",
animation = {
speed_normal = 25,
speed_run = 35,
stand_start = 140,
stand_end = 200,
walk_start = 20,
walk_end = 60,
run_start = 20,
run_end = 60,
punch_start = 80,
punch_end = 120,
}
})

189
night_master.lua Normal file
View File

@ -0,0 +1,189 @@
nssm:register_mob("nssm:night_master", {
type = "monster",
hp_max = 30,
hp_min = 30,
collisionbox = {-0.65, -0.4, -0.65, 0.65, 0.4, 0.65},
visual = "mesh",
mesh = "moonherontrio.x",
textures = {{"moonherontrio.png"}},
visual_size = {x=18, y=18},
view_range = 40,
rotate = 270,
lifetimer = 500,
floats=1,
walk_velocity = 3,
run_velocity = 4,
fall_speed = 0,
stepheight = 3,
sounds = {
random = "night_master",
distance = 45,
},
damage = 8,
jump = false,
armor = 70,
drawtype = "front",
water_damage = 0,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
fly = true,
attack_type = "dogfight",
reach = 3,
animation = {
speed_normal = 25,
speed_run = 35,
stand_start = 60,
stand_end = 120,
walk_start = 20,
walk_end = 50,
run_start = 20,
run_end = 50,
punch_start = 130,
punch_end = 160,
},
on_die = function(self, pos)
minetest.add_particlespawner(
200, --amount
0.1, --time
{x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos
{x=pos.x+1, y=pos.y+1, z=pos.z+1}, --maxpos
{x=-0, y=-0, z=-0}, --minvel
{x=1, y=1, z=1}, --maxvel
{x=-0.5,y=5,z=-0.5}, --minacc
{x=0.5,y=5,z=0.5}, --maxacc
0.1, --minexptime
1, --maxexptime
3, --minsize
4, --maxsize
false, --collisiondetection
"tnt_smoke.png" --texture
)
minetest.add_entity(pos, "nssm:night_master_2")
end,
})
nssm:register_mob("nssm:night_master_2", {
type = "monster",
hp_max = 30,
hp_min = 30,
collisionbox = {-0.65, -0.4, -0.65, 0.65, 0.4, 0.65},
visual = "mesh",
mesh = "night_master_2.x",
textures = {{"moonherontrio.png"}},
visual_size = {x=18, y=18},
view_range = 40,
rotate = 270,
lifetimer = 500,
floats=1,
walk_velocity = 3,
run_velocity = 4,
fall_speed = 0,
stepheight = 3,
sounds = {
random = "night_master",
distance = 45,
},
damage = 8,
jump = false,
armor = 70,
drawtype = "front",
water_damage = 0,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
fly = true,
attack_type = "dogfight",
reach = 3,
animation = {
speed_normal = 25,
speed_run = 35,
stand_start = 60,
stand_end = 120,
walk_start = 20,
walk_end = 50,
run_start = 20,
run_end = 50,
punch_start = 130,
punch_end = 160,
},
on_die = function(self, pos)
minetest.add_particlespawner(
200, --amount
0.1, --time
{x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos
{x=pos.x+1, y=pos.y+1, z=pos.z+1}, --maxpos
{x=-0, y=-0, z=-0}, --minvel
{x=1, y=1, z=1}, --maxvel
{x=-0.5,y=5,z=-0.5}, --minacc
{x=0.5,y=5,z=0.5}, --maxacc
0.1, --minexptime
1, --maxexptime
3, --minsize
4, --maxsize
false, --collisiondetection
"tnt_smoke.png" --texture
)
minetest.add_entity(pos, "nssm:night_master_1")
end,
})
nssm:register_mob("nssm:night_master_1", {
type = "monster",
hp_max = 30,
hp_min = 30,
collisionbox = {-0.65, -0.4, -0.65, 0.65, 0.4, 0.65},
visual = "mesh",
mesh = "night_master_1.x",
textures = {{"moonherontrio.png"}},
visual_size = {x=18, y=18},
view_range = 40,
rotate = 270,
lifetimer = 500,
floats=1,
walk_velocity = 3,
run_velocity = 4,
fall_speed = 0,
stepheight = 3,
sounds = {
random = "night_master",
distance = 45,
},
damage = 8,
jump = false,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 6,
max = 7,},
{name = "nssm:heron_leg",
chance = 1,
min = 1,
max = 1,},
{name = "nssm:moon_feather",
chance = 1,
min = 1,
max = 1,},
},
armor = 70,
drawtype = "front",
water_damage = 0,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
fly = true,
attack_type = "dogfight",
reach = 3,
animation = {
speed_normal = 25,
speed_run = 35,
stand_start = 60,
stand_end = 120,
walk_start = 20,
walk_end = 50,
run_start = 20,
run_end = 50,
punch_start = 130,
punch_end = 160,
}
})

1642
nssm_materials.lua Normal file

File diff suppressed because it is too large Load Diff

144
nssm_spears.lua Normal file
View File

@ -0,0 +1,144 @@
--function
function spears_shot (itemstack, player)
local spear = itemstack:get_name() .. '_entity'
local playerpos = player:getpos()
local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, spear)
local dir = player:get_look_dir()
local sp = 16
local dr = .3
local gravity = 9.8
obj:setvelocity({x=dir.x*sp, y=dir.y*sp, z=dir.z*sp})
obj:setacceleration({x=-dir.x*dr, y=-gravity, z=-dir.z*dr})
obj:setyaw(player:get_look_yaw()+math.pi)
minetest.sound_play("spears_sound", {pos=playerpos})
obj:get_luaentity().wear = itemstack:get_wear()
return true
end
function spears_set_entity(kind, eq, toughness)
local SPEAR_ENTITY={
physical = false,
timer=0,
visual = "wielditem",
visual_size = {x=0.15, y=0.1},
textures = {"nssm:spear_" .. kind},
lastpos={},
collisionbox = {0,0,0,0,0,0},
on_punch = function(self, puncher)
if puncher then
if puncher:is_player() then
local stack = {name='nssm:spear_' .. kind, wear=self.wear+65535/toughness}
local inv = puncher:get_inventory()
if inv:room_for_item("main", stack) then
inv:add_item("main", stack)
self.object:remove()
end
end
end
end,
}
SPEAR_ENTITY.on_step = function(self, dtime)
self.timer=self.timer+dtime
local pos = self.object:getpos()
local node = minetest.get_node(pos)
if not self.wear then
self.object:remove()
return
end
if self.lastpos.x~=nil then
if node.name ~= "air" and not (string.find(node.name, 'grass') and not string.find(node.name, 'dirt')) and not string.find(node.name, 'flowers:') and not string.find(node.name, 'farming:') then
self.object:remove()
if self.wear+65535/toughness < 65535 then
minetest.add_item(self.lastpos, {name='nssm:spear_' .. kind, wear=self.wear+65535/toughness})
end
elseif self.timer>0.2 then
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "nssm:spear_" .. kind .. "_entity" and obj:get_luaentity().name ~= "__builtin:item" then
local speed = vector.length(self.object:getvelocity())
local damage = (speed + eq)^1.12-20
obj:punch(self.object, 1.0, {
full_punch_interval=1.0,
damage_groups={fleshy=damage},
}, nil)
self.object:remove()
if self.wear+65535/toughness < 65535 then
minetest.add_item(self.lastpos, {name='nssm:spear_' .. kind, wear=self.wear+65535/toughness})
end
end
end
end
end
end
self.lastpos={x=pos.x, y=pos.y, z=pos.z}
end
return SPEAR_ENTITY
end
--Tools
function spears_register_spear(kind, desc, eq, toughness, material)
minetest.register_tool("nssm:spear_" .. kind, {
description = desc .. " spear",
wield_image = "spear_" .. kind .. ".png",
inventory_image = "spear_" .. kind .. ".png^[transform4",
wield_scale= {x=2,y=1,z=1},
on_drop = function(itemstack, user, pointed_thing)
spears_shot(itemstack, user)
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
end
return itemstack
end,
on_place = function(itemstack, user, pointed_thing)
minetest.add_item(pointed_thing.above, itemstack)
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
end
return itemstack
end,
tool_capabilities = {
full_punch_interval = 1.3,
max_drop_level=1,
groupcaps={
snappy = {times={[3]=0.2, [2]=0.2, [1]=0.2}, uses=toughness, maxlevel=1},
},
damage_groups = {fleshy=eq},
}
})
SPEAR_ENTITY=spears_set_entity(kind, eq, toughness)
minetest.register_entity("nssm:spear_" .. kind .. "_entity", SPEAR_ENTITY)
minetest.register_craft({
output = 'nssm:spear_' .. kind,
recipe = {
{'group:wood', 'group:wood', material},
}
})
minetest.register_craft({
output = 'nssm:spear_' .. kind,
recipe = {
{material, 'group:wood', 'group:wood'},
}
})
end
spears_register_spear('ant', 'Ant', 6, 25, 'nssm:ant_mandible')
spears_register_spear('mantis', 'Mantis', 6, 10, 'nssm:mantis_claw')
spears_register_spear('manticore', 'Manticore', 8, 8, 'nssm:manticore_spine')
spears_register_spear('ice_tooth', 'Ice Tooth', 16, 200, 'nssm:ice_tooth')
spears_register_spear('little_ice_tooth', 'Little Ice Tooth', 7, 10, 'nssm:little_ice_tooth')
spears_register_spear('duck_beak', 'Duck Beak', 5, 6, 'nssm:duck_beak')

53
octopus.lua Normal file
View File

@ -0,0 +1,53 @@
nssm:register_mob("nssm:octopus", {
type = "monster",
hp_max = 22,
hp_min = 15,
collisionbox = {-0.9, -0.5, -0.9, 0.9, 0.92, 0.9},
visual = "mesh",
mesh = "octopus.x",
textures = {{"octopus.png"}},
visual_size = {x=4, y=4},
view_range = 25,
fly = true,
fly_in = "default:water_source",
fall_speed = -20,
walk_velocity = 1.5,
run_velocity = 3,
damage = 3,
rotate = 270,
jump = false,
jump_chance = 0,
jump_height = 0,
sounds = {
random = "octopus",
},
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 2,
max = 3,},
{name = "nssm:tentacle",
chance = 1,
min = 1,
max = 8,},
},
armor = 100,
drawtype = "front",
water_damage = 0,
lava_damage = 10,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 25,
speed_run = 35,
stand_start = 1,
stand_end = 50,
walk_start = 60,
walk_end = 100,
run_start = 60,
run_end = 100,
punch_start = 120,
punch_end = 160,
}
})

67
phoenix.lua Normal file
View File

@ -0,0 +1,67 @@
nssm:register_mob("nssm:phoenix", {
type = "monster",
hp_max = 60,
hp_min = 60,
collisionbox = {-0.65, -0.4, -0.65, 0.65, 0.4, 0.65},
visual = "mesh",
mesh = "phoenix.x",
textures = {{"phoenix.png"}},
visual_size = {x=18, y=18},
view_range = 40,
lifetimer = 500,
floats=1,
rotate = 270,
walk_velocity = 2,
run_velocity = 2.5,
fall_speed = 0,
stepheight = 3,
sounds = {
random = "phoenix",
distance = 45,
},
damage = 2,
jump = false,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 7,
max = 8,},
{name = "nssm:sun_feather",
chance = 1,
min = 1,
max = 1,},
{name = "nssm:phoenix_tear",
chance = 1,
min = 5,
max = 6,},
{name = "nssm:phoenix_nuggets",
chance = 6,
min = 10,
max = 20,},
},
armor = 60,
drawtype = "front",
water_damage = 5,
lava_damage = 0,
light_damage = 0,
on_rightclick = nil,
fly = true,
attack_type = "shoot",
arrow = "nssm:phoenix_arrow",
reach = 1,
shoot_interval = 4,
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 220,
stand_end = 280,
walk_start = 140,
walk_end = 180,
run_start = 190,
run_end = 210,
punch_start = 80,
punch_end = 110,
dattack_start = 80,
dattack_end = 110,
}
})

140
pumpboom.lua Normal file
View File

@ -0,0 +1,140 @@
nssm:register_mob("nssm:pumpboom_small", {
type = "monster",
hp_max = 15,
hp_min = 14,
collisionbox = {-0.80, -0.3, -0.80, 0.80, 0.80, 0.80},
visual = "mesh",
mesh = "pumpboom.x",
rotate = 270,
textures = {{"pumpboom.png"}},
visual_size = {x=3, y=3},
explosion_radius = 4,
makes_footstep_sound = true,
view_range = 20,
walk_velocity = 2,
run_velocity = 2.5,
sounds = {
explode = "tnt_explode"
},
damage = 1.5,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2,}
},
armor = 100,
drawtype = "front",
water_damage = 2,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
attack_type = "explode",
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 1,
stand_end = 30,
walk_start = 81,
walk_end = 97,
run_start = 81,
run_end = 97,
punch_start = 70,
punch_end = 80,
}
})
nssm:register_mob("nssm:pumpboom_medium", {
type = "monster",
hp_max = 18,
hp_min = 17,
collisionbox = {-0.80, -0.3, -0.80, 0.80, 0.80, 0.80},
visual = "mesh",
mesh = "pumpboom.x",
rotate = 270,
textures = {{"pumpboom.png"}},
visual_size = {x=5, y=5},
makes_footstep_sound = true,
view_range = 25,
walk_velocity = 2,
explosion_radius = 6,
run_velocity = 2.5,
sounds = {
explode = "tnt_explode"
},
damage = 1.5,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 2,
max = 3,}
},
armor = 100,
drawtype = "front",
water_damage = 2,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
attack_type = "explode",
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 1,
stand_end = 30,
walk_start = 81,
walk_end = 97,
run_start = 81,
run_end = 97,
punch_start = 70,
punch_end = 80,
}
})
nssm:register_mob("nssm:pumpboom_large", {
type = "monster",
hp_max = 20,
hp_min = 19,
collisionbox = {-0.80, -0.3, -0.80, 0.80, 0.80, 0.80},
visual = "mesh",
mesh = "pumpboom.x",
rotate = 270,
explosion_radius = 8,
textures = {{"pumpboom.png"}},
visual_size = {x=8, y=8},
makes_footstep_sound = true,
view_range = 30,
walk_velocity = 2,
run_velocity = 3,
sounds = {
explode = "tnt_explode"
},
damage = 1.5,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 3,
max = 4,}
},
armor = 100,
drawtype = "front",
water_damage = 2,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
attack_type = "explode",
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 1,
stand_end = 30,
walk_start = 81,
walk_end = 97,
run_start = 81,
run_end = 97,
punch_start = 70,
punch_end = 80,
}
})

47
pumpking.lua Normal file
View File

@ -0,0 +1,47 @@
nssm:register_mob("nssm:pumpking", {
type = "monster",
hp_max = 100,
hp_min = 100,
collisionbox = {-0.4, 0.00, -0.4, 0.4, 3.2, 0.4},
visual = "mesh",
mesh = "pumpking.x",
textures = {{"pumpking.png"}},
visual_size = {x=2.5, y=2.5},
makes_footstep_sound = true,
lifetimer=500,
rotate=270,
view_range = 35,
walk_velocity = 2,
run_velocity = 4,
sounds = {
random = "king",
explode = "tnt_explode",
},
damage = 9,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 7,
max = 9,},
},
armor =50,
drawtype = "front",
water_damage = 2,
lava_damage = 5,
light_damage = 0,
pump_putter = true,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
stand_start = 165, stand_end = 210,
walk_start = 220, walk_end = 260,
run_start = 220, run_end = 260,
punch_start = 1, punch_end = 30,
punch1_start = 270, punch1_end = 295,
speed_normal = 15, speed_run = 15,
},
on_die=function(self,pos)
nssm:explosion(pos, 3, 0, 1, self.sounds.explode)
end
})

31
rainbow_staff.lua Normal file
View File

@ -0,0 +1,31 @@
--rainbow!
minetest.register_entity("nssm:rainbow", {
textures = {"transparent.png"},
velocity = 10,
on_step = function (self, pos, node, dtime)
local pos = self.object:getpos()
local n = minetest.env:get_node(pos).name
if n ~= "default:nyancat_rainbow" then
if n=="air" then
minetest.env:set_node(pos, {name="default:nyancat_rainbow"})
else
minetest.env:set_node(pos, {name="default:nyancat"})
self.object:remove()
end
end
end
})
minetest.register_tool("nssm:rainbow_staff", {
description = "Rainbow Staff",
inventory_image = "rainbow_staff.png",
on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir();
local playerpos = placer:getpos();
local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:rainbow")
local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6}
obj:setvelocity(vec)
return itemstack
end,
groups = {not_in_creative_inventory=1,}
})

47
sandworm.lua Normal file
View File

@ -0,0 +1,47 @@
nssm:register_mob("nssm:sandworm", {
type = "monster",
hp_max = 30,
hp_min = 25,
collisionbox = {-0.6, -0.2, -0.6, 0.6, 1.90, 0.6},
visual = "mesh",
mesh = "sandworm.x",
textures = {{"sandworm.png"}},
visual_size = {x=10, y=10},
makes_footstep_sound = false,
view_range = 17,
rotate = 270,
worm = true,
walk_velocity = 2,
run_velocity = 2,
damage = 4,
jump = false,
drops = {
{name = "nssm:worm_flesh",
chance = 2,
min = 1,
max = 3,},
{name = "nssm:life_energy",
chance = 1,
min = 2,
max = 3,},
},
armor = 90,
drawtype = "front",
water_damage = 5,
lava_damage = 10,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 25,
speed_run = 40,
stand_start = 1,
stand_end = 30,
walk_start = 30,
walk_end = 70,
run_start = 30,
run_end = 70,
punch_start = 70,
punch_end = 90,
}
})

54
scrausics.lua Normal file
View File

@ -0,0 +1,54 @@
nssm:spawn_specific("nssm:scrausics", {"air"}, {"air"}, 10, 20, 100, 750000, 1, 10, 40)
nssm:register_mob("nssm:scrausics", {
type = "monster",
hp_max = 23,
hp_min = 22,
collisionbox = {-0.4, -0.3, -0.4, 0.4, 0.3, 0.4},
visual = "mesh",
mesh = "scrausics.x",
textures = {{"scrausics.png"}},
visual_size = {x=10, y=10},
view_range = 35,
rotate = 270,
walk_velocity = 2,
run_velocity = 3,
fall_speed = 0,
stepheight = 3,
floats=1,
sounds = {
random = "scrausic",
distance = 40,
},
damage = 3,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 3,
max = 4,},
{name = "nssm:raw_scrausics_wing",
chance = 1,
min = 1,
max = 2,},
},
armor = 100,
drawtype = "front",
water_damage = 5,
lava_damage = 5,
light_damage = 0,
on_rightclick = nil,
fly = true,
attack_type = "dogfight",
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 220,
stand_end = 280,
walk_start = 140,
walk_end = 180,
run_start = 190,
run_end = 210,
punch_start = 20,
punch_end = 50,
}
})

43
signosigno.lua Normal file
View File

@ -0,0 +1,43 @@
nssm:register_mob("nssm:signosigno", {
type = "monster",
hp_max = 10,
hp_min = 8,
collisionbox = {-0.2, 0.00, -0.2, 0.2, 1.6, 0.2},
visual = "mesh",
mesh = "signosigno.x",
textures = {{"signosigno.png"}, {"signosigno2.png"}},
visual_size = {x=6, y=6},
makes_footstep_sound = false,
view_range = 15,
walk_velocity = 1.5,
run_velocity = 2.5,
rotate = 270,
damage = 3,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2,},
},
armor = 70,
drawtype = "front",
water_damage = 1,
lava_damage = 2,
light_damage = 1,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 20,
speed_run = 20,
stand_start = 20,
stand_end = 80,
walk_start = 100,
walk_end = 140,
run_start = 200,
run_end = 220,
punch_start = 160,
punch_end = 190,
}
})

59
snow_biter.lua Normal file
View File

@ -0,0 +1,59 @@
nssm:spawn_specific("nssm:snow_biter", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, 0, 20, 30, 5000, 1, -31000, 31000)
nssm:register_mob("nssm:snow_biter", {
type = "monster",
hp_max = 20,
hp_min = 15,
collisionbox = {-0.5, 0, -0.5, 0.5, 0.60, 0.5},
visual = "mesh",
mesh = "snow_biter.x",
textures = {{"snow_biter.png"}},
visual_size = {x=6, y=6},
makes_footstep_sound = true,
view_range = 18,
rotate = 270,
froster = true,
mele_number = 2,
reach = 1.5,
walk_velocity = 0.8,
run_velocity = 3,
sounds = {
random = "snow_biter",
},
damage = 5,
jump = true,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 2,
max = 3},
{name = "nssm:frosted_amphibian_heart",
chance = 1,
min = 1,
max = 1},
{name = "nssm:little_ice_tooth",
chance = 2,
min = 0,
max = 4},
},
armor = 100,
drawtype = "front",
water_damage = 0,
lava_damage = 30,
light_damage = 0,
on_rightclick = nil,
attack_type = "dogfight",
animation = {
speed_normal = 20,
speed_run = 25,
stand_start = 0,
stand_end = 80,
walk_start = 110,
walk_end = 150,
run_start = 80,
run_end = 100,
punch_start = 175,
punch_end = 190,
punch1_start = 200,
punch1_end = 215
}
})

BIN
sounds/ant.ogg Normal file

Binary file not shown.

BIN
sounds/black_widow.ogg Normal file

Binary file not shown.

BIN
sounds/bloco.ogg Normal file

Binary file not shown.

BIN
sounds/boom.ogg Normal file

Binary file not shown.

BIN
sounds/crab.ogg Normal file

Binary file not shown.

BIN
sounds/crocod.ogg Normal file

Binary file not shown.

BIN
sounds/daddy.ogg Normal file

Binary file not shown.

BIN
sounds/dahaka.ogg Normal file

Binary file not shown.

BIN
sounds/die.ogg Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More