Added the project
This commit is contained in:
commit
cfef26b914
13
README.txt
Normal file
13
README.txt
Normal 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
62
ant_queen.lua
Normal 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
54
ant_soldier.lua
Normal 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
54
ant_worker.lua
Normal 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,
|
||||||
|
}
|
||||||
|
})
|
54
black_widow.lua
Normal file
54
black_widow.lua
Normal 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
49
bloco.lua
Normal 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
54
crab.lua
Normal 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
52
crocodile.lua
Normal 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
49
daddy_long_legs.lua
Normal 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
56
dahaka.lua
Normal 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
317
darts.lua
Normal 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
1
depends.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
default
|
50
dolidrosaurus.lua
Normal file
50
dolidrosaurus.lua
Normal 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
55
duck.lua
Normal 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
67
duckking.lua
Normal 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
57
echidna.lua
Normal 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
54
enderduck.lua
Normal 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
54
flying_duck.lua
Normal 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
64
icelamander.lua
Normal 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
54
icesnake.lua
Normal 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
57
init.lua
Normal 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
120
kamehameha.lua
Normal 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
72
kienzan.lua
Normal 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
60
kraken.lua
Normal 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
47
larva.lua
Normal 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
81
lava_titan.lua
Normal 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
56
manticore.lua
Normal 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
51
mantis.lua
Normal 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
48
mantis_beast.lua
Normal 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
80
masticone.lua
Normal 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
63
mese_dragon.lua
Normal 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
42969
models/ant_queen.x
Normal file
File diff suppressed because it is too large
Load Diff
38561
models/ant_soldier.x
Normal file
38561
models/ant_soldier.x
Normal file
File diff suppressed because it is too large
Load Diff
36771
models/ant_worker.x
Normal file
36771
models/ant_worker.x
Normal file
File diff suppressed because it is too large
Load Diff
37672
models/black_widow.x
Normal file
37672
models/black_widow.x
Normal file
File diff suppressed because it is too large
Load Diff
20168
models/bloco.x
Normal file
20168
models/bloco.x
Normal file
File diff suppressed because it is too large
Load Diff
47024
models/crab.x
Normal file
47024
models/crab.x
Normal file
File diff suppressed because it is too large
Load Diff
23586
models/crocodile.x
Normal file
23586
models/crocodile.x
Normal file
File diff suppressed because it is too large
Load Diff
36818
models/daddy_long_legs.x
Normal file
36818
models/daddy_long_legs.x
Normal file
File diff suppressed because it is too large
Load Diff
46487
models/dahaka.x
Normal file
46487
models/dahaka.x
Normal file
File diff suppressed because it is too large
Load Diff
20438
models/dolidrosaurus.x
Normal file
20438
models/dolidrosaurus.x
Normal file
File diff suppressed because it is too large
Load Diff
4693
models/duck.x
Normal file
4693
models/duck.x
Normal file
File diff suppressed because it is too large
Load Diff
47811
models/echidna.x
Normal file
47811
models/echidna.x
Normal file
File diff suppressed because it is too large
Load Diff
28930
models/enderduck.x
Normal file
28930
models/enderduck.x
Normal file
File diff suppressed because it is too large
Load Diff
61734
models/icelamander.x
Normal file
61734
models/icelamander.x
Normal file
File diff suppressed because it is too large
Load Diff
15449
models/icesnake.x
Normal file
15449
models/icesnake.x
Normal file
File diff suppressed because it is too large
Load Diff
31278
models/king_duck.x
Normal file
31278
models/king_duck.x
Normal file
File diff suppressed because it is too large
Load Diff
35203
models/kraken.x
Normal file
35203
models/kraken.x
Normal file
File diff suppressed because it is too large
Load Diff
16468
models/larva.x
Normal file
16468
models/larva.x
Normal file
File diff suppressed because it is too large
Load Diff
53459
models/lava_titan.x
Normal file
53459
models/lava_titan.x
Normal file
File diff suppressed because it is too large
Load Diff
49697
models/manticore.x
Normal file
49697
models/manticore.x
Normal file
File diff suppressed because it is too large
Load Diff
25478
models/mantis.x
Normal file
25478
models/mantis.x
Normal file
File diff suppressed because it is too large
Load Diff
22523
models/mantis_beast.x
Normal file
22523
models/mantis_beast.x
Normal file
File diff suppressed because it is too large
Load Diff
25433
models/masticone.x
Normal file
25433
models/masticone.x
Normal file
File diff suppressed because it is too large
Load Diff
84070
models/mese_dragon.x
Normal file
84070
models/mese_dragon.x
Normal file
File diff suppressed because it is too large
Load Diff
44778
models/moonheron.x
Normal file
44778
models/moonheron.x
Normal file
File diff suppressed because it is too large
Load Diff
61288
models/moonherontrio.x
Normal file
61288
models/moonherontrio.x
Normal file
File diff suppressed because it is too large
Load Diff
41587
models/nathan_petrelli.x
Normal file
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
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
53048
models/night_master_2.x
Normal file
File diff suppressed because it is too large
Load Diff
35202
models/octopus.x
Normal file
35202
models/octopus.x
Normal file
File diff suppressed because it is too large
Load Diff
84888
models/phoenix.x
Normal file
84888
models/phoenix.x
Normal file
File diff suppressed because it is too large
Load Diff
14743
models/pumpboom.x
Normal file
14743
models/pumpboom.x
Normal file
File diff suppressed because it is too large
Load Diff
65402
models/pumpking.x
Normal file
65402
models/pumpking.x
Normal file
File diff suppressed because it is too large
Load Diff
30634
models/sandworm.x
Normal file
30634
models/sandworm.x
Normal file
File diff suppressed because it is too large
Load Diff
65798
models/scrausics.x
Normal file
65798
models/scrausics.x
Normal file
File diff suppressed because it is too large
Load Diff
25119
models/signosigno.x
Normal file
25119
models/signosigno.x
Normal file
File diff suppressed because it is too large
Load Diff
38662
models/snow_biter.x
Normal file
38662
models/snow_biter.x
Normal file
File diff suppressed because it is too large
Load Diff
36559
models/spiderduck.x
Normal file
36559
models/spiderduck.x
Normal file
File diff suppressed because it is too large
Load Diff
29749
models/stone_eater.back.x
Normal file
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
29749
models/stone_eater.x
Normal file
File diff suppressed because it is too large
Load Diff
17563
models/swimming_duck.x
Normal file
17563
models/swimming_duck.x
Normal file
File diff suppressed because it is too large
Load Diff
37588
models/tarantula.x
Normal file
37588
models/tarantula.x
Normal file
File diff suppressed because it is too large
Load Diff
37588
models/tarantula_propower.x
Normal file
37588
models/tarantula_propower.x
Normal file
File diff suppressed because it is too large
Load Diff
37696
models/uloboros.x
Normal file
37696
models/uloboros.x
Normal file
File diff suppressed because it is too large
Load Diff
23397
models/werewolf.x
Normal file
23397
models/werewolf.x
Normal file
File diff suppressed because it is too large
Load Diff
23397
models/white_werewolf.x
Normal file
23397
models/white_werewolf.x
Normal file
File diff suppressed because it is too large
Load Diff
53
moonheron.lua
Normal file
53
moonheron.lua
Normal 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
189
night_master.lua
Normal 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
1642
nssm_materials.lua
Normal file
File diff suppressed because it is too large
Load Diff
144
nssm_spears.lua
Normal file
144
nssm_spears.lua
Normal 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
53
octopus.lua
Normal 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
67
phoenix.lua
Normal 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
140
pumpboom.lua
Normal 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
47
pumpking.lua
Normal 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
31
rainbow_staff.lua
Normal 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
47
sandworm.lua
Normal 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
54
scrausics.lua
Normal 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
43
signosigno.lua
Normal 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
59
snow_biter.lua
Normal 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
BIN
sounds/ant.ogg
Normal file
Binary file not shown.
BIN
sounds/black_widow.ogg
Normal file
BIN
sounds/black_widow.ogg
Normal file
Binary file not shown.
BIN
sounds/bloco.ogg
Normal file
BIN
sounds/bloco.ogg
Normal file
Binary file not shown.
BIN
sounds/boom.ogg
Normal file
BIN
sounds/boom.ogg
Normal file
Binary file not shown.
BIN
sounds/crab.ogg
Normal file
BIN
sounds/crab.ogg
Normal file
Binary file not shown.
BIN
sounds/crocod.ogg
Normal file
BIN
sounds/crocod.ogg
Normal file
Binary file not shown.
BIN
sounds/daddy.ogg
Normal file
BIN
sounds/daddy.ogg
Normal file
Binary file not shown.
BIN
sounds/dahaka.ogg
Normal file
BIN
sounds/dahaka.ogg
Normal file
Binary file not shown.
BIN
sounds/die.ogg
Normal file
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
Loading…
x
Reference in New Issue
Block a user