From dec3cf95e7dfae4b31edbb65a427e937e425b4dd Mon Sep 17 00:00:00 2001 From: Tai Kedzierski Date: Tue, 25 Dec 2018 23:25:30 +0000 Subject: [PATCH] clarify spawning code, reinstate mantises, move cooking, make energy more useful --- README.md | 4 +- guide/extra_notes.md | 8 + materials/craft_items.lua | 31 ++++ materials/eggs.lua | 2 +- materials/energy_globes.lua | 64 +++++++- materials/materials.lua | 85 ++++------ mobs/spawn.lua | 306 +++++++++++++++++++++++++++--------- 7 files changed, 359 insertions(+), 141 deletions(-) create mode 100644 guide/extra_notes.md diff --git a/README.md b/README.md index 8181003..7c648b3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# Not So Simple Mobs by NPX team +# Not So Simple Mobs + +(C) 2016 NPX Team and Contributors , LGPLv2.1 NSSM adds a wide variety of very hostile mobs, as well as new weapons, armours and foods. diff --git a/guide/extra_notes.md b/guide/extra_notes.md new file mode 100644 index 0000000..e3371bc --- /dev/null +++ b/guide/extra_notes.md @@ -0,0 +1,8 @@ +# NSSM Extra notes + +by DuCake, for the post-3.0 adjustments + +* Life Energy can be eaten for a speed stats boost + * reach further platforms, run away faster! +* Life Energy can be placed as lights + * it may feel like a waste, until you've run out of torches... diff --git a/materials/craft_items.lua b/materials/craft_items.lua index 0b43cfd..7b6648c 100644 --- a/materials/craft_items.lua +++ b/materials/craft_items.lua @@ -14,6 +14,15 @@ function nssm:register_eatcraftitems (name, descr, gnam) }) end +function nssm_register_recipe (ingredient, dish, tictac) + minetest.register_craft({ + type = "cooking", + output = "nssm:"..dish, + recipe = "nssm:"..ingredient, + cooktime = tictac, + }) +end + -- Materials nssm:register_noneatcraftitems ('sky_feather','Sky Feather') @@ -119,3 +128,25 @@ nssm:register_eatcraftitems ('silk_gland','Silk Gland',-1) nssm:register_eatcraftitems ('roasted_silk_gland','Roasted Silk Gland',3) nssm:register_eatcraftitems ('super_silk_gland','Super Silk Gland',-8) nssm:register_eatcraftitems ('roasted_super_silk_gland','Roasted Super Silk Gland',2) + +-- Cooking + +nssm_register_recipe ('worm_flesh', 'roasted_worm_flesh', 12) +nssm_register_recipe ('duck_legs', 'roasted_duck_legs', 6) +nssm_register_recipe ('spider_leg', 'roasted_spider_leg', 6) +nssm_register_recipe ('felucco_steak', 'roasted_felucco_steak', 10) +nssm_register_recipe ('werewolf_leg', 'roasted_werewolf_leg', 10) +nssm_register_recipe ('brain', 'roasted_brain', 6) +nssm_register_recipe ('amphibian_heart', 'roasted_amphibian_heart', 6) +nssm_register_recipe ('tentacle', 'roasted_tentacle', 6) +nssm_register_recipe ('frosted_amphibian_heart', 'amphibian_heart', 8) +nssm_register_recipe ('heron_leg', 'chichibios_heron_leg', 20) +nssm_register_recipe ('raw_scrausics_wing', 'spicy_scrausics_wing', 12) +nssm_register_recipe ('ant_leg', 'roasted_ant_leg', 6) +nssm_register_recipe ('crocodile_tail', 'roasted_crocodile_tail', 16) +nssm_register_recipe ('dolidrosaurus_fin', 'roasted_dolidrosaurus_fin', 8) +nssm_register_recipe ('amphibian_ribs', 'roasted_amphibian_ribs', 12) +nssm_register_recipe ('mantis_meat', 'roasted_mantis_meat', 6) +nssm_register_recipe ('spider_meat', 'roasted_spider_meat', 6) +nssm_register_recipe ('silk_gland', 'roasted_silk_gland', 4) +nssm_register_recipe ('larva_juice', 'larva_soup', 20) diff --git a/materials/eggs.lua b/materials/eggs.lua index 2ad2327..e1be87f 100644 --- a/materials/eggs.lua +++ b/materials/eggs.lua @@ -1,4 +1,4 @@ --- Eggs recipes +-- Craft eggs recipes -- To be deprecated with drops minetest.register_craft({ diff --git a/materials/energy_globes.lua b/materials/energy_globes.lua index ae9421b..b1342c3 100644 --- a/materials/energy_globes.lua +++ b/materials/energy_globes.lua @@ -61,7 +61,6 @@ minetest.register_globalstep(function(dtime) -- Power down players with boosts whose time is run out for playername, data in pairs(players_boosted) do - -- FIXME this is not powering down players, because the draining does not seem to be taking effect remaining = drain_boost(playername, reduce_time) if remaining <= 0 then local player = minetest.get_player_by_name(playername) @@ -90,14 +89,66 @@ end -- Define energies -local function register_energy(name, descr, nutrition, duration) +local function register_energy(name, descr, nodesize, nutrition, duration) life_energy_ratings["nssm:"..name] = {nutrition = nutrition, duration = duration} + local ns = nodesize + local div = 64 + --[[ minetest.register_craftitem("nssm:"..name, { description = descr, image = name..".png", on_use = eat_energy, }) + --]] + + minetest.register_node("nssm:"..name, { + description = descr, + tiles = { + { + name="venomous_gas_animated2.png", + animation={ + type="vertical_frames", + aspect_w=64, + aspect_h=64, + length=3.0 + } + } + }, + --[[ + tiles = { + { + name = "default_water_source_animated.png^[colorize:yellow:100", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, --]] + + wield_image = name..".png", + inventory_image = name..".png", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-ns / div, -ns / div, -ns / div, ns / div, ns / div, ns / div}, + }, + }, + paramtype = "light", + light_source = nodesize, + sunlight_propagates = true, + is_ground_content = false, + groups = {dig_immediate = 3}, + pointable = false, + drop = "", + buildable_to = true, + on_use = eat_energy, + walkable = false, + -- TODO add node timer so it disappears after N seconds ... + }) end local function register_energy_craft(smaller,bigger) @@ -117,12 +168,11 @@ local function register_energy_craft(smaller,bigger) }) end -register_energy('life_energy', 'Life Energy', 2, 1) -register_energy('energy_globe', 'Energy Sphere', 5, 2.5) -register_energy('great_energy_globe', 'Great Energy Sphere', 12, 5) -register_energy('superior_energy_globe', 'Awesome Energy Sphere', 18, 10) +register_energy('life_energy', 'Life Energy', 6, 2, 1) +register_energy('energy_globe', 'Energy Sphere', 9, 5, 2.5) +register_energy('great_energy_globe', 'Great Energy Sphere', 12, 12, 5) +register_energy('superior_energy_globe', 'Awesome Energy Sphere', 15, 18, 10) register_energy_craft("nssm:life_energy", "nssm:energy_globe") register_energy_craft("nssm:energy_globe", "nssm:great_energy_globe") register_energy_craft("nssm:great_energy_globe", "nssm:superior_energy_globe") - diff --git a/materials/materials.lua b/materials/materials.lua index 2e510e2..753d69c 100644 --- a/materials/materials.lua +++ b/materials/materials.lua @@ -439,37 +439,37 @@ minetest.register_tool("nssm:felucco_knife", { if minetest.get_modpath("farming") then -farming.register_hoe(":farming:felucco_hoe", { - description = "Felucco Hoe", - inventory_image = "felucco_hoe.png", - max_uses = 290, - material = "nssm:felucco_horn" -}) + farming.register_hoe(":farming:felucco_hoe", { + description = "Felucco Hoe", + inventory_image = "felucco_hoe.png", + max_uses = 290, + material = "nssm:felucco_horn" + }) -farming.register_hoe(":farming:ant_hoe", { - description = "Ant Hoe", - inventory_image = "ant_hoe.png", - max_uses = 350, - material = "nssm:ant_mandible" -}) + farming.register_hoe(":farming:ant_hoe", { + description = "Ant Hoe", + inventory_image = "ant_hoe.png", + max_uses = 350, + material = "nssm:ant_mandible" + }) -minetest.register_craft({ - output = 'nssm:ant_hoe', - recipe = { - {'nssm:ant_mandible', 'nssm:ant_mandible'}, - {'', 'group:stick'}, - {'', 'group:stick'}, - } -}) + minetest.register_craft({ + output = 'nssm:ant_hoe', + recipe = { + {'nssm:ant_mandible', 'nssm:ant_mandible'}, + {'', 'group:stick'}, + {'', 'group:stick'}, + } + }) -minetest.register_craft({ - output = 'nssm:felucco_hoe', - recipe = { - {'nssm:felucco_horn', 'nssm:felucco_horn'}, - {'', 'group:stick'}, - {'', 'group:stick'}, - } -}) + minetest.register_craft({ + output = 'nssm:felucco_hoe', + recipe = { + {'nssm:felucco_horn', 'nssm:felucco_horn'}, + {'', 'group:stick'}, + {'', 'group:stick'}, + } + }) end @@ -1293,35 +1293,6 @@ minetest.register_craft({ } }) -function nssm_register_recip (ingredient, dish, tictac) - minetest.register_craft({ - type = "cooking", - output = "nssm:"..dish, - recipe = "nssm:"..ingredient, - cooktime = tictac, - }) -end - -nssm_register_recip ('worm_flesh', 'roasted_worm_flesh', 12) -nssm_register_recip ('duck_legs', 'roasted_duck_legs', 6) -nssm_register_recip ('spider_leg', 'roasted_spider_leg', 6) -nssm_register_recip ('felucco_steak', 'roasted_felucco_steak', 10) -nssm_register_recip ('werewolf_leg', 'roasted_werewolf_leg', 10) ---nssm_register_recip ('brain', 'roasted_brain', 6) -nssm_register_recip ('amphibian_heart', 'roasted_amphibian_heart', 6) -nssm_register_recip ('tentacle', 'roasted_tentacle', 6) -nssm_register_recip ('frosted_amphibian_heart', 'amphibian_heart', 8) -nssm_register_recip ('heron_leg', 'chichibios_heron_leg', 20) -nssm_register_recip ('raw_scrausics_wing', 'spicy_scrausics_wing', 12) -nssm_register_recip ('ant_leg', 'roasted_ant_leg', 6) -nssm_register_recip ('crocodile_tail', 'roasted_crocodile_tail', 16) -nssm_register_recip ('dolidrosaurus_fin', 'roasted_dolidrosaurus_fin', 8) -nssm_register_recip ('amphibian_ribs', 'roasted_amphibian_ribs', 12) -nssm_register_recip ('mantis_meat', 'roasted_mantis_meat', 6) -nssm_register_recip ('spider_meat', 'roasted_spider_meat', 6) -nssm_register_recip ('silk_gland', 'roasted_silk_gland', 4) -nssm_register_recip ('larva_juice', 'larva_soup', 20) - minetest.register_craft({ diff --git a/mobs/spawn.lua b/mobs/spawn.lua index ab1434c..03ce41b 100644 --- a/mobs/spawn.lua +++ b/mobs/spawn.lua @@ -12,123 +12,279 @@ if mm ~= 0 then if mymapgenis == 6 then -- ANTS - mobs:spawn_specific("nssm:ant_queen", {"nssm:ant_dirt"}, {"air"}, 0, 20, 60, 200000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:ant_soldier", {"nssm:ant_dirt"}, {"air"}, 0, 20, 7, 30000/mm, 4, -31000, 31000) - mobs:spawn_specific("nssm:ant_worker", {"nssm:ant_dirt"}, {"air"}, 0, 20, 5, 10000/mm, 5, -31000, 31000) + + mobs:spawn_specific("nssm:ant_queen", {"nssm:ant_dirt"}, {"air"}, + 0, 20, 60, 200000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:ant_soldier", {"nssm:ant_dirt"}, {"air"}, + 0, 20, 7, 30000/mm, 4, -31000, 31000) + + mobs:spawn_specific("nssm:ant_worker", {"nssm:ant_dirt"}, {"air"}, + 0, 20, 5, 10000/mm, 5, -31000, 31000) -- SPIDERS - mobs:spawn_specific("nssm:black_widow", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 20, 20, 1200000/mm, 2, -31000, 31000) - mobs:spawn_specific("nssm:daddy_long_legs", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 20, 10, 1200000/mm, 2, -31000, 31000) - mobs:spawn_specific("nssm:tarantula", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 14, 120, 5000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:uloboros", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 20, 20, 1200000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:black_widow", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, + 0, 20, 20, 1200000/mm, 2, -31000, 31000) + + mobs:spawn_specific("nssm:daddy_long_legs", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, + 0, 20, 10, 1200000/mm, 2, -31000, 31000) + + mobs:spawn_specific("nssm:tarantula", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, + 0, 14, 120, 5000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:uloboros", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, + 0, 20, 20, 1200000/mm, 1, -31000, 31000) -- DUCKS - mobs:spawn_specific("nssm:duck", {"default:dirt_with_grass"}, {"group:flora"}, 10, 20, 20, 350000/mm, 1, -31000, 20) - mobs:spawn_specific("nssm:duckking", {"default:dirt_with_grass"}, {"group:flora"}, 10, 20, 300, 5000000/mm, 1, -31000, 20) - mobs:spawn_specific("nssm:enderduck", {"default:dirt_with_grass"}, {"group:flora"}, 0, 10, 45, 900000/mm, 1, -31000, 20) - mobs:spawn_specific("nssm:flying_duck", {"air"}, {"group:leaves"}, 10, 20, 120, 24000000/mm, 1, 1, 25) - mobs:spawn_specific("nssm:flying_duck", {"air"}, {"group:flora"}, 10, 20, 120, 6000000/mm, 1, 1, 25) - mobs:spawn_specific("nssm:spiderduck", {"default:dirt_with_grass"}, {"group:flora"}, 0, 10, 45, 850000/mm, 1, -31000, 20) - mobs:spawn_specific("nssm:swimming_duck", {"default:water_source"}, {"default:water_source"}, 0, 20, 60, 45000000/mm, 1, -31000, 20) + + mobs:spawn_specific("nssm:duck", {"default:dirt_with_grass"}, {"group:flora"}, + 10, 20, 20, 350000/mm, 1, -31000, 20) + + mobs:spawn_specific("nssm:duckking", {"default:dirt_with_grass"}, {"group:flora"}, + 10, 20, 300, 5000000/mm, 1, -31000, 20) + + mobs:spawn_specific("nssm:enderduck", {"default:dirt_with_grass"}, {"group:flora"}, + 0, 10, 45, 900000/mm, 1, -31000, 20) + + mobs:spawn_specific("nssm:flying_duck", {"air"}, {"group:leaves"}, + 10, 20, 120, 24000000/mm, 1, 1, 25) + + mobs:spawn_specific("nssm:flying_duck", {"air"}, {"group:flora"}, + 10, 20, 120, 6000000/mm, 1, 1, 25) + + mobs:spawn_specific("nssm:spiderduck", {"default:dirt_with_grass"}, {"group:flora"}, + 0, 10, 45, 850000/mm, 1, -31000, 20) + + mobs:spawn_specific("nssm:swimming_duck", {"default:water_source"}, {"default:water_source"}, + 0, 20, 60, 45000000/mm, 1, -31000, 20) -- MOUNTAINS - mobs:spawn_specific("nssm:echidna", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, 0, 20, 200, 100000000/mm, 1, 22, 31000) - mobs:spawn_specific("nssm:manticore", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, 10, 20, 60, 12000000/mm, 1, 20, 31000) - mobs:spawn_specific("nssm:werewolf", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, 0, 10, 60, 12000000/mm, 1, 20, 31000) + + mobs:spawn_specific("nssm:echidna", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, + 0, 20, 200, 100000000/mm, 1, 22, 31000) + + mobs:spawn_specific("nssm:manticore", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, + 10, 20, 60, 12000000/mm, 1, 20, 31000) + + mobs:spawn_specific("nssm:werewolf", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, + 0, 10, 60, 12000000/mm, 1, 20, 31000) -- ICE - mobs:spawn_specific("nssm:icelamander", {"default:snowblock", "default:ice"}, {"default:snowblock", "default:ice"}, 0, 20, 120, 25000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:icesnake", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, 0, 20, 30, 6000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:white_werewolf", {"default:dirt_with_snow","default:snowblock"}, {"air"}, 0, 20, 60, 9000000/mm, 1, 20, 31000) - mobs:spawn_specific("nssm:snow_biter", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, 0, 20, 30, 6000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:icelamander", {"default:snowblock", "default:ice"}, {"default:snowblock", "default:ice"}, + 0, 20, 120, 25000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:icesnake", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, + 0, 20, 30, 6000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:white_werewolf", {"default:dirt_with_snow","default:snowblock"}, {"air"}, + 0, 20, 60, 9000000/mm, 1, 20, 31000) + + mobs:spawn_specific("nssm:snow_biter", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, + 0, 20, 30, 6000000/mm, 1, -31000, 31000) -- FOREST - mobs:spawn_specific("nssm:larva", {"default:dirt_with_grass"}, {"default:tree","default:aspen_tree"}, 0, 20, 40, 200000/mm, 1, -31000, 140) - mobs:spawn_specific("nssm:masticone", {"default:dirt_with_grass"}, {"default:tree","default:aspen_tree"}, 0, 20, 120, 5000000/mm, 2, -31000, 140) + + mobs:spawn_specific("nssm:larva", {"default:dirt_with_grass"}, {"default:tree","default:aspen_tree"}, + 0, 20, 40, 200000/mm, 1, -31000, 140) + + mobs:spawn_specific("nssm:masticone", {"default:dirt_with_grass"}, {"default:tree","default:aspen_tree"}, + 0, 20, 120, 5000000/mm, 2, -31000, 140) -- PINE FOREST - mobs:spawn_specific("nssm:pumpboom_small", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, 0, 20, 30, 600000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:pumpboom_medium", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, 0, 20, 30, 800000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:pumpboom_large", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, 0, 20, 30, 1000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:pumpking", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_needles", "default:pine_tree"}, 0, 12, 120, 8000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:pumpboom_small", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, + 0, 20, 30, 600000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:pumpboom_medium", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, + 0, 20, 30, 800000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:pumpboom_large", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, + 0, 20, 30, 1000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:pumpking", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_needles", "default:pine_tree"}, + 0, 12, 120, 8000000/mm, 1, -31000, 31000) else -- ANTS - mobs:spawn_specific("nssm:ant_queen", {"nssm:ant_dirt"}, {"air"}, 0, 20, 60, 200000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:ant_soldier", {"nssm:ant_dirt"}, {"air"}, 0, 20, 7, 30000/mm, 4, -31000, 31000) - mobs:spawn_specific("nssm:ant_worker", {"nssm:ant_dirt"}, {"air"}, 0, 20, 5, 10000/mm, 5, -31000, 31000) + + mobs:spawn_specific("nssm:ant_queen", {"nssm:ant_dirt"}, {"air"}, + 0, 20, 60, 200000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:ant_soldier", {"nssm:ant_dirt"}, {"air"}, + 0, 20, 7, 30000/mm, 4, -31000, 31000) + + mobs:spawn_specific("nssm:ant_worker", {"nssm:ant_dirt"}, {"air"}, + 0, 20, 5, 10000/mm, 5, -31000, 31000) -- SPIDERS - mobs:spawn_specific("nssm:black_widow", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 20, 30, 4400000/mm, 2, -31000, 31000) - mobs:spawn_specific("nssm:daddy_long_legs", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 30, 10, 4400000/mm, 2, -31000, 31000) - mobs:spawn_specific("nssm:tarantula", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 14, 120, 50000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:uloboros", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 20, 30, 4400000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:black_widow", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, + 0, 20, 30, 4400000/mm, 2, -31000, 31000) + + mobs:spawn_specific("nssm:daddy_long_legs", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, + 0, 30, 10, 4400000/mm, 2, -31000, 31000) + + mobs:spawn_specific("nssm:tarantula", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, + 0, 14, 120, 50000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:uloboros", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, + 0, 20, 30, 4400000/mm, 1, -31000, 31000) -- DUCKS - mobs:spawn_specific("nssm:duck", {"default:dirt_with_grass"}, {"group:flora"}, 10, 20, 50, 1500000/mm, 1, -31000, 40) - mobs:spawn_specific("nssm:duckking", {"default:dirt_with_grass"}, {"group:flora"}, 10, 20, 400, 120000000/mm, 1, -31000, 40) - mobs:spawn_specific("nssm:enderduck", {"default:dirt_with_grass"}, {"group:flora"}, 0, 10, 120, 5000000/mm, 1, -31000, 40) - mobs:spawn_specific("nssm:flying_duck", {"air"}, {"group:leaves"}, 10, 20, 120, 8000000/mm, 1, 1, 40) - mobs:spawn_specific("nssm:flying_duck", {"air"}, {"group:flora"}, 10, 20, 120, 25000000/mm, 1, 1, 40) - mobs:spawn_specific("nssm:spiderduck", {"default:dirt_with_grass"}, {"group:flora"}, 0, 10, 120, 5000000/mm, 1, -31000, 45) - mobs:spawn_specific("nssm:swimming_duck", {"default:water_source"}, {"default:water_source"}, 0, 20, 60, 45000000/mm, 1, -31000, 40) - mobs:spawn_specific("nssm:swimming_duck", {"default:river_water_source"}, {"default:sand","default:river_water_source"}, 0, 20, 60, 3000000/mm, 1, -31000, 300) + + mobs:spawn_specific("nssm:duck", {"default:dirt_with_grass"}, {"group:flora"}, + 10, 20, 50, 1500000/mm, 1, -31000, 40) + + mobs:spawn_specific("nssm:duckking", {"default:dirt_with_grass"}, {"group:flora"}, + 10, 20, 400, 120000000/mm, 1, -31000, 40) + + mobs:spawn_specific("nssm:enderduck", {"default:dirt_with_grass"}, {"group:flora"}, + 0, 10, 120, 5000000/mm, 1, -31000, 40) + + mobs:spawn_specific("nssm:flying_duck", {"air"}, {"group:leaves"}, + 10, 20, 120, 8000000/mm, 1, 1, 40) + + mobs:spawn_specific("nssm:flying_duck", {"air"}, {"group:flora"}, + 10, 20, 120, 25000000/mm, 1, 1, 40) + + mobs:spawn_specific("nssm:spiderduck", {"default:dirt_with_grass"}, {"group:flora"}, + 0, 10, 120, 5000000/mm, 1, -31000, 45) + + mobs:spawn_specific("nssm:swimming_duck", {"default:water_source"}, {"default:water_source"}, + 0, 20, 60, 45000000/mm, 1, -31000, 40) + + mobs:spawn_specific("nssm:swimming_duck", {"default:river_water_source"}, {"default:sand","default:river_water_source"}, + 0, 20, 60, 3000000/mm, 1, -31000, 300) -- MOUNTAINS - mobs:spawn_specific("nssm:echidna", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, 0, 20, 200, 100000000/mm, 1, 50, 31000) - mobs:spawn_specific("nssm:manticore", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, 10, 20, 60, 13000000/mm, 1, 40, 31000) - mobs:spawn_specific("nssm:werewolf", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, 0, 10, 60, 13000000/mm, 1, 40, 31000) + + mobs:spawn_specific("nssm:echidna", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, + 0, 20, 200, 100000000/mm, 1, 50, 31000) + + mobs:spawn_specific("nssm:manticore", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, + 10, 20, 60, 13000000/mm, 1, 40, 31000) + + mobs:spawn_specific("nssm:werewolf", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, + 0, 10, 60, 13000000/mm, 1, 40, 31000) -- ICE - mobs:spawn_specific("nssm:icelamander", {"default:snowblock", "default:ice"}, {"default:snowblock", "default:ice"}, 0, 20, 180, 120000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:icesnake", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, 0, 20, 40, 20000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:white_werewolf", {"default:dirt_with_snow","default:snowblock"}, {"air"}, 0, 20, 35, 22000000/mm, 1, 50, 31000) - mobs:spawn_specific("nssm:snow_biter", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, 0, 20, 40, 20000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:icelamander", {"default:snowblock", "default:ice"}, {"default:snowblock", "default:ice"}, + 0, 20, 180, 120000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:icesnake", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, + 0, 20, 40, 20000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:white_werewolf", {"default:dirt_with_snow","default:snowblock"}, {"air"}, + 0, 20, 35, 22000000/mm, 1, 50, 31000) + + mobs:spawn_specific("nssm:snow_biter", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, + 0, 20, 40, 20000000/mm, 1, -31000, 31000) -- FOREST - mobs:spawn_specific("nssm:larva", {"default:dirt_with_grass"}, {"default:tree","default:aspen_tree"}, 0, 20, 40, 800000/mm, 1, -31000, 140) - mobs:spawn_specific("nssm:masticone", {"default:dirt_with_grass"}, {"default:tree","default:aspen_tree"}, 0, 20, 180, 6000000/mm, 2, -31000, 140) + + mobs:spawn_specific("nssm:larva", {"default:dirt_with_grass"}, {"default:tree","default:aspen_tree"}, + 0, 20, 40, 800000/mm, 1, -31000, 140) + + mobs:spawn_specific("nssm:masticone", {"default:dirt_with_grass"}, {"default:tree","default:aspen_tree"}, + 0, 20, 180, 6000000/mm, 2, -31000, 140) + + mobs:spawn_specific("nssm:mantis", {"default:dirt_with_grass"}, {"default:tree","default:aspen_tree"}, + 0, 20, 40, 1000000/mm, 1, -31000, 140) + + mobs:spawn_specific("nssm:mantis_beast", {"default:dirt_with_grass"}, {"default:tree","default:aspen_tree"}, + 0, 20, 40, 100000/mm, 1, -31000, 140) -- PINE FOREST - mobs:spawn_specific("nssm:pumpboom_small", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, 0, 20, 80, 1400000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:pumpboom_medium", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, 0, 20, 80, 1600000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:pumpboom_large", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, 0, 20, 80, 1800000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:pumpking", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_needles", "default:pine_tree"}, 0, 12, 120, 8000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:pumpboom_small", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, + 0, 20, 80, 1400000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:pumpboom_medium", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, + 0, 20, 80, 1600000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:pumpboom_large", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, + 0, 20, 80, 1800000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:pumpking", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_needles", "default:pine_tree"}, + 0, 12, 120, 8000000/mm, 1, -31000, 31000) -- SAVANNA - mobs:spawn_specific("nssm:felucco", {"default:dirt_with_dry_grass"}, {"default:dirt_with_dry_grass"}, 0, 20, 80, 20000000/mm, 1, -200, 31000) + + mobs:spawn_specific("nssm:felucco", {"default:dirt_with_dry_grass"}, {"default:dirt_with_dry_grass"}, + 0, 20, 80, 20000000/mm, 1, -200, 31000) end -- NSSB SPECIAL if minetest.get_modpath("nssb") then - mobs:spawn_specific("nssm:xgaloctopus", {"default:water_source"}, {"nssb:marine_brick"}, 0, 20, 20, 800000/mm, 1, -31000, 0) + + mobs:spawn_specific("nssm:xgaloctopus", {"default:water_source"}, {"nssb:marine_brick"}, + 0, 20, 20, 800000/mm, 1, -31000, 0) end -- CAVES - mobs:spawn_specific("nssm:bloco", {"default:stone", "default:desert_stone"}, {"default:stone", "default:desert_stone"}, 0, 20, 30, 500000/mm, 3, -31000, -20) - mobs:spawn_specific("nssm:lava_titan", {"default:stone", "default:desert_stone"}, {"air"}, 0, 120, 12, 22000000/mm, 1, -31000, -100) - mobs:spawn_specific("nssm:stone_eater", {"default:stone", "default:desert_stone"}, {"default:stone", "default:desert_stone"}, 0, 20, 40, 700000/mm, 2, -31000, -20) - mobs:spawn_specific("nssm:signosigno", {"default:stone", "default:desert_stone"}, {"default:stone", "default:desert_stone"}, 0, 10, 20, 400000/mm, 2, -31000, -20) - mobs:spawn_specific("nssm:signosigno", {"bones:bones"}, {"air"}, 0, 15, 20, 5000/mm, 5, -31000, 31000) + + mobs:spawn_specific("nssm:bloco", {"default:stone", "default:desert_stone"}, {"default:stone", "default:desert_stone"}, + 0, 20, 30, 500000/mm, 3, -31000, -20) + + mobs:spawn_specific("nssm:lava_titan", {"default:stone", "default:desert_stone"}, {"air"}, + 0, 120, 12, 22000000/mm, 1, -31000, -100) + + mobs:spawn_specific("nssm:stone_eater", {"default:stone", "default:desert_stone"}, {"default:stone", "default:desert_stone"}, + 0, 20, 40, 700000/mm, 2, -31000, -20) + + mobs:spawn_specific("nssm:signosigno", {"default:stone", "default:desert_stone"}, {"default:stone", "default:desert_stone"}, + 0, 10, 20, 400000/mm, 2, -31000, -20) + + mobs:spawn_specific("nssm:signosigno", {"bones:bones"}, {"air"}, + 0, 15, 20, 5000/mm, 5, -31000, 31000) -- SEA - mobs:spawn_specific("nssm:crab", {"default:sand"}, {"default:water_source"}, 0, 20, 60, 4000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:crocodile", {"default:sand","default:water_source"}, {"default:water_source"}, 0, 20, 100, 35000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:crocodile", {"default:sand","default:river_water_source"}, {"default:river_water_source"}, 0, 20, 60, 12000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:dolidrosaurus", {"default:water_source"}, {"default:water_source"}, 0, 20, 100, 35000000/mm, 1, -31000, -1) - mobs:spawn_specific("nssm:kraken", {"default:water_source"}, {"default:water_source"}, 0, 20, 400, 500000000/mm, 1, -31000, 0) - mobs:spawn_specific("nssm:octopus", {"default:water_source"}, {"default:water_source"}, 0, 20, 80, 38000000/mm, 1, -31000, 0) + + mobs:spawn_specific("nssm:crab", {"default:sand"}, {"default:water_source"}, + 0, 20, 60, 4000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:crocodile", {"default:sand","default:water_source"}, {"default:water_source"}, + 0, 20, 100, 35000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:crocodile", {"default:sand","default:river_water_source"}, {"default:river_water_source"}, + 0, 20, 60, 12000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:dolidrosaurus", {"default:water_source"}, {"default:water_source"}, + 0, 20, 100, 35000000/mm, 1, -31000, -1) + + mobs:spawn_specific("nssm:kraken", {"default:water_source"}, {"default:water_source"}, + 0, 20, 400, 500000000/mm, 1, -31000, 0) + + mobs:spawn_specific("nssm:octopus", {"default:water_source"}, {"default:water_source"}, + 0, 20, 80, 38000000/mm, 1, -31000, 0) -- DESERT - mobs:spawn_specific("nssm:sandworm", {"default:desert_sand", "default:desert_stone"}, {"air"}, 0, 20, 100, 28000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:giant_sandworm", {"default:desert_sand", "default:desert_stone"}, {"air"}, 0, 20, 400, 600000000/mm, 1, -31000, 31000) - mobs:spawn_specific("nssm:sand_bloco", {"default:desert_sand", "default:desert_stone"}, {"air"}, 0, 20, 90, 20000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:sandworm", {"default:desert_sand", "default:desert_stone"}, {"air"}, + 0, 20, 100, 28000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:giant_sandworm", {"default:desert_sand", "default:desert_stone"}, {"air"}, + 0, 20, 400, 600000000/mm, 1, -31000, 31000) + + mobs:spawn_specific("nssm:sand_bloco", {"default:desert_sand", "default:desert_stone"}, {"air"}, + 0, 20, 90, 20000000/mm, 1, -31000, 31000) -- SKY - mobs:spawn_specific("nssm:moonheron", {"air"}, {"air"}, 0, 10, 110, 950000000/mm, 1, 10, 180) - mobs:spawn_specific("nssm:night_master", {"air"}, {"air"}, 0, 7, 400, 4500000000/mm, 2, 10, 180) - mobs:spawn_specific("nssm:phoenix", {"air"}, {"air"}, 10, 20, 400, 10000000000/mm, 1, 10, 180) - mobs:spawn_specific("nssm:scrausics", {"air"}, {"air"}, 10, 20, 110, 950000000/mm, 1, 10, 180) + + mobs:spawn_specific("nssm:moonheron", {"air"}, {"air"}, + 0, 10, 110, 950000000/mm, 1, 10, 180) + + mobs:spawn_specific("nssm:night_master", {"air"}, {"air"}, + 0, 7, 400, 4500000000/mm, 2, 10, 180) + + mobs:spawn_specific("nssm:phoenix", {"air"}, {"air"}, + 10, 20, 400, 10000000000/mm, 1, 10, 180) + + mobs:spawn_specific("nssm:scrausics", {"air"}, {"air"}, + 10, 20, 110, 950000000/mm, 1, 10, 180) end