nssm/spawn.lua
2023-06-19 10:09:41 +01:00

492 lines
11 KiB
Lua

--Before starting a new game write 6 or 7 in order to regulate the spawns
-- (7 works also with flat and fractal).
local v6 = nssm.mymapgenis == 6 -- true if set to 6
local mm = nssm.multimobs
-- Spawning parameters
if mm ~= 0 then
-- V6 MAPGEN
if v6 then
-- ANTS (why only V6 mapgen ?)
mobs:spawn({
name = "nssm:ant_queen",
nodes = {"nssm:ant_dirt"},
interval = 60,
chance = (200000 / mm)
})
mobs:spawn({
name = "nssm:ant_soldier",
nodes = {"nssm:ant_dirt"},
interval = 7,
chance = (30000 / mm),
active_object_count = 4
})
mobs:spawn({
name = "nssm:ant_worker",
nodes = {"nssm:ant_dirt"},
interval = 5,
chance = (10000 / mm),
active_object_count = 5
})
else -- ALL OTHER MAPGENS
-- SWIMMING DUCK (river water only)
mobs:spawn({
name = "nssm:swimming_duck",
nodes = {"default:river_water_source"},
neighbors = {"default:sand","default:river_water_source"},
max_height = 300,
interval = 60,
chance = (3000000 / mm)
})
-- SAVANNA
mobs:spawn({
name = "nssm:felucco",
nodes = {"default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass"},
neighbors = {"default:dirt_with_dry_grass"},
min_height = -200,
interval = 80,
chance = (20000000 / mm)
})
end
-- NSSB SPECIAL
if minetest.get_modpath("nssb") then
mobs:spawn({
name = "nssm:xgaloctopus",
nodes = {"default:water_source"},
neighbors = {"nssb:marine_brick"},
max_height = 0,
interval = 20,
chance = (800000 / mm)
})
end
-- FOREST
mobs:spawn({
name = "nssm:larva",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:tree", "default:aspen_tree"},
max_height = 140,
interval = 40,
chance = v6 and (200000 / mm) or (800000 / mm)
})
mobs:spawn({
name = "nssm:masticone",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:tree", "default:aspen_tree"},
max_height = 140,
interval = v6 and 120 or 180,
chance = v6 and (5000000 / mm) or (6000000 / mm),
active_object_count = 2
})
-- PINE FOREST
mobs:spawn({
name = "nssm:pumpboom_small",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
interval = v6 and 30 or 80,
chance = v6 and (600000 / mm) or (1400000 / mm)
})
mobs:spawn({
name = "nssm:pumpboom_medium",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
interval = v6 and 30 or 80,
chance = v6 and (800000 / mm) or (1600000 / mm)
})
mobs:spawn({
name = "nssm:pumpboom_large",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_tree"},
interval = v6 and 30 or 80,
chance = v6 and (1000000 / mm) or (1800000 / mm)
})
mobs:spawn({
name = "nssm:pumpking",
nodes = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow",
"default:snowblock"
},
neighbors = {"default:pine_needles", "default:pine_tree"},
max_light = v6 and 15 or 12,
interval = 120,
chance = (8000000 / mm)
})
-- ICE
mobs:spawn({
name = "nssm:icelamander",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
interval = v6 and 120 or 180,
chance = v6 and (25000000 / mm) or (120000000 / mm)
})
mobs:spawn({
name = "nssm:icesnake",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
interval = v6 and 30 or 40,
chance = v6 and (6000000 / mm) or (20000000 / mm)
})
mobs:spawn({
name = "nssm:white_werewolf",
nodes = {"default:dirt_with_snow","default:snowblock"},
min_height = v6 and 20 or 31000,
interval = v6 and 60 or 40,
chance = v6 and (9000000 / mm) or (22000000 / mm)
})
mobs:spawn({
name = "nssm:snow_biter",
nodes = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
neighbors = {"default:snowblock", "default:ice", "default:dirt_with_snow"},
chance = v6 and (6000000 / mm) or (20000000 / mm)
})
-- MOUNTAINS
mobs:spawn({
name = "nssm:echidna",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
min_height = v6 and 22 or 50,
interval = 200,
chance = (100000000 / mm)
})
mobs:spawn({
name = "nssm:manticore",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
min_height = v6 and 20 or 50,
interval = 60,
chance = v6 and (12000000 / mm) or (13000000 / mm)
})
mobs:spawn({
name = "nssm:werewolf",
nodes = {"default:dirt_with_grass"},
neighbors = {"default:dirt_with_grass"},
max_light = 10,
min_height = v6 and 20 or 40,
interval = 60,
chance = v6 and (12000000 / mm) or (13000000 / mm)
})
-- DUCKS
mobs:spawn({
name = "nssm:duck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
min_light = 10,
max_height = 40,
interval = v6 and 20 or 50,
chance = v6 and (350000 / mm) or (1500000 / mm)
})
mobs:spawn({
name = "nssm:duckking",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
min_light = 10,
max_height = v6 and 20 or 40,
interval = v6 and 300 or 400,
chance = v6 and (5000000 / mm) or (120000000 / mm)
})
mobs:spawn({
name = "nssm:enderduck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
max_light = 10,
max_height = v6 and 20 or 40,
interval = v6 and 45 or 120,
chance = v6 and (900000 / mm) or (5000000 / mm)
})
mobs:spawn({
name = "nssm:flying_duck",
nodes = v6 and {"default:dirt_with_grass"} or {"air"},
neighbors = {"group:leaves"},
min_light = 10,
min_height = 1,
max_height = v6 and 25 or 40,
interval = 120,
chance = v6 and (24000000 / mm) or (8000000 / mm)
})
mobs:spawn({
name = "nssm:flying_duck",
nodes = v6 and {"default:dirt_with_grass"} or {"air"},
neighbors = {"group:flora"},
min_light = 10,
min_height = 1,
max_height = v6 and 25 or 40,
interval = 120,
chance = v6 and (6000000 / mm) or (25000000 / mm)
})
mobs:spawn({
name = "nssm:spiderduck",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:flora"},
max_light = 10,
max_height = 20,
interval = v6 and 45 or 120,
chance = v6 and (850000 / mm) or (5000000 / mm)
})
mobs:spawn({
name = "nssm:swimming_duck",
nodes = {"default:water_source"},
neighbors = {"default:water_source"},
max_height = v6 and 20 or 40,
interval = 60,
chance = (45000000 / mm)
})
-- SPIDERS
mobs:spawn({
name = "nssm:black_widow",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
interval = v6 and 20 or 30,
chance = v6 and (1200000 / mm) or (4400000 / mm),
active_object_count = 2
})
mobs:spawn({
name = "nssm:daddy_long_legs",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
interval = 10,
chance = v6 and (1200000 / mm) or (4400000 / mm),
active_object_count = 2
})
mobs:spawn({
name = "nssm:tarantula",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
max_light = 14,
interval = 120,
chance = v6 and (5000000 / mm) or (50000000 / mm)
})
mobs:spawn({
name = "nssm:ulboros",
nodes = {
"default:dirt_with_rainforest_litter",
"default:jungletree", "nssm:web"
},
interval = v6 and 20 or 30,
chance = v6 and (1200000 / mm) or (4400000 / mm)
})
-- CAVES
mobs:spawn({
name = "nssm:bloco",
nodes = {"default:stone", "default:desert_stone", "default:sandstone"},
max_height = -20,
chance = (500000 / mm)
})
mobs:spawn({
name = "nssm:lava_titan",
nodes = {"default:stone", "default:desert_stone", "default:sandstone"},
max_height = -100,
max_light = 12,
interval = 120,
chance = (22000000 / mm)
})
mobs:spawn({
name = "nssm:stone_eater",
nodes = {"default:stone", "default:desert_stone", "default:sandstone"},
max_height = -20,
interval = 40,
chance = (700000 / mm),
active_object_count = 2
})
mobs:spawn({
name = "nssm:signosigno",
nodes = {"default:stone", "default:desert_stone", "default:sandstone"},
max_height = -20,
max_light = 10,
interval = 20,
chance = (400000 / mm),
active_object_count = 2
})
mobs:spawn({
name = "nssm:signosigno",
nodes = {"bones:bones"},
max_light = 15,
interval = 20,
chance = (5000 / mm),
active_object_count = 5
})
-- SEA
mobs:spawn({
name = "nssm:crab",
nodes = {"default:sand"},
neighbors = {"default:water_source"},
interval = 60,
chance = (4000000 / mm)
})
mobs:spawn({
name = "nssm:crocodile",
nodes = {"default:sand","default:water_source"},
neighbors = {"default:water_source"},
interval = 100,
chance = (35000000 / mm)
})
mobs:spawn({
name = "nssm:crocodile",
nodes = {"default:sand","default:river_water_source"},
neighbors = {"default:river_water_source"},
interval = 60,
chance = (12000000 / mm)
})
mobs:spawn({
name = "nssm:dolidrosaurus",
nodes = {"default:water_source"},
neighbors = {"default:water_source"},
max_height = -1,
interval = 100,
chance = (35000000 / mm)
})
mobs:spawn({
name = "nssm:kraken",
nodes = {"default:water_source"},
neighbors = {"default:water_source"},
max_height = 0,
interval = 400,
chance = (500000000 / mm)
})
mobs:spawn({
name = "nssm:octopus",
nodes = {"default:water_source"},
neighbors = {"default:water_source"},
max_height = 0,
interval = 80,
chance = (38000000 / mm)
})
-- DESERT
mobs:spawn({
name = "nssm:sandworm",
nodes = {"default:desert_sand", "default:desert_stone"},
interval = 100,
chance = (28000000 / mm)
})
mobs:spawn({
name = "nssm:giant_sandworm",
nodes = {"default:desert_sand", "default:desert_stone"},
interval = 400,
chance = (600000000 / mm)
})
mobs:spawn({
name = "nssm:sand_bloco",
nodes = {"default:desert_sand", "default:desert_stone"},
interval = 90,
chance = (20000000 / mm)
})
-- SKY
mobs:spawn({
name = "nssm:moonheron",
nodes = {"air"},
max_light = 10,
min_height = 10,
max_height = 180,
interval = 110,
chance = (950000000 / mm)
})
mobs:spawn({
name = "nssm:night_master",
nodes = {"air"},
max_light = 7,
min_height = 10,
max_height = 180,
interval = 400,
chance = (4500000000 / mm)
})
mobs:spawn({
name = "nssm:phoenix",
nodes = {"air"},
max_light = 10,
min_height = 10,
max_height = 180,
interval = 400,
chance = (10000000000 / mm)
})
mobs:spawn({
name = "nssm:scrausics",
nodes = {"air"},
max_light = 10,
min_height = 10,
max_height = 180,
interval = 110,
chance = (950000000 / mm)
})
end