diff --git a/README.md b/README.md index 719b923..56730a4 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,6 @@ Thanks to TenPlus1, blert2112, and taikedz +* 2019-07-28 : + * some little bugs corrected + * great dragons now need a gold block nest diff --git a/depends.txt b/depends.txt index 35729e0..5b6e05b 100644 --- a/depends.txt +++ b/depends.txt @@ -1,4 +1,6 @@ default mobs wool -farming? \ No newline at end of file +farming? +ethereal? +caverealms? diff --git a/dragons.md b/dragons.md index b8fdb50..061bca5 100644 --- a/dragons.md +++ b/dragons.md @@ -2,12 +2,26 @@ D00Med's Mobs How to Dragon -By defeating dragons you will get eggs. Place them in their ideal environment and feed them a gem to create an elemental egg. +By defeating dragons you will get eggs. Place them in their ideal environment and feed them a dragon gem (the violet one) to create an +elemental egg. + +Environements : +* Fire : lava source +* Lightning : obsidian +* Poison : cactus +* Ice : ice +* Great : gold block By defeating special dragons, you can obtain elemental gems. -Feed the right elemental gem to the elemental egg to hatch a dragon. +Feed the right elemental gem to the elemental egg to hatch a dragon: +* Fire : fire gem +* Lightning : lightning gem +* Poison : poison gem +* Ice : ice gem +* Great : dragon gem Use the Use key to shoot fireballs when riding your new pet dragon. +Press the forward key to fly to the direction you're looking -ENjoy +Enjoy ! diff --git a/dragons/dragon1.lua b/dragons/dragon1.lua index b1fed81..6adec82 100644 --- a/dragons/dragon1.lua +++ b/dragons/dragon1.lua @@ -1,3 +1,5 @@ +-- Fire dragon + local dragondef = { type = "monster", passive = false, @@ -64,13 +66,15 @@ local dragondef = { on_rightclick = dmobs.dragon.on_rc } -mobs:register_mob("dmobs:dragon", dmobs.deepclone(dragondef) ) +-- The wild dragon is registered +mobs:register_mob("dmobs:dragon1", dmobs.deepclone(dragondef) ) + +-- The def is modified to make it tamed and rideable dragondef.type = "npc" dragondef.attacks_monsters = true - dragondef.on_rightclick = dmobs.dragon.ride - dragondef.do_custom = dmobs.dragon.do_custom +-- The tamed version is registered mobs:register_mob("dmobs:dragon_red", dmobs.deepclone(dragondef) ) diff --git a/dragons/dragon2.lua b/dragons/dragon2.lua index a90f104..f6b27e3 100644 --- a/dragons/dragon2.lua +++ b/dragons/dragon2.lua @@ -1,3 +1,5 @@ +-- Lightning dragon + local dragondef = { type = "monster", passive = false, diff --git a/dragons/dragon3.lua b/dragons/dragon3.lua index a21553e..12b9383 100644 --- a/dragons/dragon3.lua +++ b/dragons/dragon3.lua @@ -1,3 +1,5 @@ +-- Poison dragon + local dragondef = { type = "monster", passive = false, diff --git a/dragons/dragon4.lua b/dragons/dragon4.lua index 204d589..53f5dff 100644 --- a/dragons/dragon4.lua +++ b/dragons/dragon4.lua @@ -1,3 +1,5 @@ +-- Ice dragon + local dragondef = { type = "monster", passive = false, @@ -64,14 +66,12 @@ local dragondef = { on_rightclick = dmobs.dragon.on_rc } - mobs:register_mob("dmobs:dragon4", dmobs.deepclone(dragondef) ) dragondef.type = "npc" dragondef.attacks_monsters = true dragondef.on_rightclick = dmobs.dragon.ride - dragondef.do_custom = dmobs.dragon.do_custom mobs:register_mob("dmobs:dragon_blue", dmobs.deepclone(dragondef) ) diff --git a/dragons/dragon_normal.lua b/dragons/dragon_normal.lua index 1b88958..6ad7e46 100644 --- a/dragons/dragon_normal.lua +++ b/dragons/dragon_normal.lua @@ -1,4 +1,4 @@ ---dragon +-- 'Generic' dragon dofile(minetest.get_modpath("dmobs").."/dragons/piloting.lua") @@ -15,8 +15,8 @@ mobs:register_mob("dmobs:dragon", { dogshoot_count_max =5, arrow = "dmobs:fire", shoot_offset = 1, - hp_min = 70, - hp_max = 100, + hp_min = 50, + hp_max = 80, armor = 100, collisionbox = {-0.6, -1.2, -0.6, 0.6, 0.6, 0.6}, visual = "mesh", @@ -68,9 +68,3 @@ mobs:register_mob("dmobs:dragon", { do_custom = dmobs.dragon.step_custom, on_rightclick = dmobs.dragon.on_rc }) - - - -mobs:spawn_specific("dmobs:dragon", {"air"}, {"default:stone"}, 20, 10, 300, 15000, 2, -100, 11000) - -mobs:register_egg("dmobs:dragon", "Dragon", "default_apple.png", 1) diff --git a/dragons/eggs.lua b/dragons/eggs.lua index 22f6290..eb13481 100644 --- a/dragons/eggs.lua +++ b/dragons/eggs.lua @@ -4,8 +4,8 @@ local dragonpairs = { fire = {colour="red",nest="default:lava_source"}, lightning = {colour="black",nest="default:obsidian"}, poison = {colour="green",nest="default:cactus"}, - ice = {colour="black",nest="default:ice"}, - great = {colour="great",nest=""}, + ice = {colour="blue",nest="default:ice"}, + great = {colour="great",nest="default:diamond_block"}, -- You've to deserve greatness !' } local function egg_transform(pos, node, clicker, item, _) @@ -78,7 +78,7 @@ local function egghatch(pos, node, clicker, item, _) local thedragon = "dmobs:dragon_"..details.colour if eggnode == "dmobs:dragon_egg_great" then - thedragon = "dmobs:dragon_great" + thedragon = "dmobs:dragon_great_tame" end local ent = minetest.add_entity(pos, thedragon) @@ -102,7 +102,10 @@ local function egghatch(pos, node, clicker, item, _) end -- for loop end --- Egg form dfinitions ----------------------------------------- + +---------------------- --- +-- Egg form definitions -- +-------------------------- local base_egg = { -- base template for all dragon eggs description = "Dragon Egg", @@ -120,21 +123,25 @@ local base_egg = { -- base template for all dragon eggs minetest.register_node("dmobs:egg", dmobs.deepclone(base_egg) ) -- clone, to not affect the base template +-- Fire egg base_egg.groups.not_in_creative_inventory=1 base_egg.on_rightclick = egghatch - base_egg.tiles = {"dmobs_egg1.png"} minetest.register_node("dmobs:dragon_egg_fire", dmobs.deepclone(base_egg) ) +-- Lightning egg base_egg.tiles = {"dmobs_egg2.png"} minetest.register_node("dmobs:dragon_egg_lightning", dmobs.deepclone(base_egg) ) +-- Poison egg base_egg.tiles = {"dmobs_egg3.png"} minetest.register_node("dmobs:dragon_egg_poison", dmobs.deepclone(base_egg) ) +-- Ice egg base_egg.tiles = {"dmobs_egg4.png"} minetest.register_node("dmobs:dragon_egg_ice", dmobs.deepclone(base_egg) ) +-- Great dragon egg base_egg.groups.not_in_creative_inventory=nil base_egg.tiles = {"default_sandstone.png"} base_egg.description = "Great Dragon Egg" diff --git a/dragons/great_dragon.lua b/dragons/great_dragon.lua index 22a5ab2..4c17b34 100644 --- a/dragons/great_dragon.lua +++ b/dragons/great_dragon.lua @@ -11,8 +11,8 @@ local gdragon_base = { dogshoot_count_max =5, arrow = "dmobs:lightning", shoot_offset = 1, - hp_min = 140, - hp_max = 180, + hp_min = 150, + hp_max = 250, armor = 220, collisionbox = {-0.6, -1.4, -0.6, 0.6, 0.6, 0.6}, visual = "mesh", @@ -67,11 +67,7 @@ gdragon_base.type = "npc" gdragon_base.attacks_monsters = true gdragon_base.on_rightclick = dmobs.dragon.ride - + gdragon_base.do_custom = dmobs.dragon.do_custom mobs:register_mob("dmobs:dragon_great_tame", dmobs.deepclone(gdragon_base) ) - - -mobs:register_egg("dmobs:dragon_great", "Boss Dragon", "dmobs_egg1.png", 1) -mobs:register_egg("dmobs:dragon_great_tame", "Great Dragon", "default_lava_source_animated.png", 1) diff --git a/dragons/main.lua b/dragons/main.lua index 19a2400..30491c2 100644 --- a/dragons/main.lua +++ b/dragons/main.lua @@ -31,21 +31,24 @@ minetest.register_craftitem("dmobs:dragon_gem", { }) ---spawns and eggs +---------- +-- Eggs -- +---------- --- mobs:spawn_specific("dmobs:dragon", {"air"}, {"default:stone"}, 20, 10, 300, 15000, 2, -100, 11000) --- mobs:spawn_specific("dmobs:dragon2", {"air"}, {"default:stone"}, 20, 10, 300, 15000, 2, -100, 11000) --- mobs:spawn_specific("dmobs:dragon3", {"air"}, {"default:stone"}, 20, 10, 300, 15000, 2, -100, 11000) --- mobs:spawn_specific("dmobs:dragon4", {"air"}, {"default:stone"}, 20, 10, 300, 15000, 2, -100, 11000) - - -mobs:register_egg("dmobs:dragon", "Wild Fire Dragon", "default_apple.png", 1) +-- Wild dragons +mobs:register_egg("dmobs:dragon", "Minor Dragon", "default_apple.png", 1) +mobs:register_egg("dmobs:dragon1", "Wild Fire Dragon", "default_apple.png", 1) mobs:register_egg("dmobs:dragon2", "Wild Lightning Dragon", "default_mese_crystal.png", 1) mobs:register_egg("dmobs:dragon3", "Wild Poison Dragon", "dmobs_poison.png", 1) mobs:register_egg("dmobs:dragon4", "Wild Ice Dragon", "default_ice.png", 1) +mobs:register_egg("dmobs:dragon_great", "Boss Dragon", "dmobs_egg1.png", 1) +mobs:register_egg("dmobs:waterdragon", "Boss Waterdragon", "dmobs_egg4.png", 1) +mobs:register_egg("dmobs:wyvern", "Boss Wyvern", "dmobs_egg3.png", 1) -mobs:register_egg("dmobs:dragon_red", "Tame Fire Dragon", "default_apple.png", 1) -mobs:register_egg("dmobs:dragon_black", "Tame Lightning Dragon", "default_mese_crystal.png", 1) -mobs:register_egg("dmobs:dragon_green", "Tame Poison Dragon", "dmobs_poison.png", 1) -mobs:register_egg("dmobs:dragon_blue", "Tame Ice Dragon", "default_ice.png", 1) +-- Tamed dragons +mobs:register_egg("dmobs:dragon_red", "Tamed Fire Dragon", "default_apple.png", 1) +mobs:register_egg("dmobs:dragon_black", "Tamed Lightning Dragon", "default_mese_crystal.png", 1) +mobs:register_egg("dmobs:dragon_green", "Tamed Poison Dragon", "dmobs_poison.png", 1) +mobs:register_egg("dmobs:dragon_blue", "Tamed Ice Dragon", "default_ice.png", 1) +mobs:register_egg("dmobs:dragon_great_tame", "Tamed Great Dragon", "default_lava_source_animated.png", 1) diff --git a/dragons/water_dragon.lua b/dragons/water_dragon.lua index 16f3806..cda4802 100644 --- a/dragons/water_dragon.lua +++ b/dragons/water_dragon.lua @@ -1,3 +1,5 @@ +-- Hydra + mobs:register_mob("dmobs:waterdragon", { type = "monster", passive = false, @@ -130,6 +132,3 @@ mobs:register_mob("dmobs:waterdragon_2", { shoot_end = 40, }, }) - - -mobs:register_egg("dmobs:waterdragon", "Boss Waterdragon", "dmobs_egg4.png", 1) diff --git a/dragons/wyvern.lua b/dragons/wyvern.lua index 773b550..d034f48 100644 --- a/dragons/wyvern.lua +++ b/dragons/wyvern.lua @@ -58,6 +58,3 @@ mobs:register_mob("dmobs:wyvern", { }, knock_back = 2, }) - - -mobs:register_egg("dmobs:wyvern", "Boss Wyvern", "dmobs_egg3.png", 1) diff --git a/init.lua b/init.lua index 26a9fcd..c1f8c68 100644 --- a/init.lua +++ b/init.lua @@ -83,11 +83,12 @@ if dmobs.regulars then end end --- dragons!! +--------------- +-- dragons!! -- +--------------- -if not dmobs.dragons then - loadmob("dragon_normal","/dragons/") -else +loadmob("dragon_normal","/dragons/") +if dmobs.dragons then loadmob("main","/dragons/") loadmob("dragon1","/dragons/") loadmob("dragon2","/dragons/") diff --git a/spawn.lua b/spawn.lua index 13a32eb..2dabb28 100644 --- a/spawn.lua +++ b/spawn.lua @@ -1,52 +1,54 @@ if dmobs.regulars then -- friendlies - mobs:register_spawn("dmobs:nyan", {"default:pine_needles","default:leaves"}, 20, 10, 50000, 2, 31000) - mobs:register_spawn("dmobs:nyan", {"nyanland:meseleaves"}, 20, 10, 15000, 2, 31000) + mobs:register_spawn("dmobs:nyan", {"default:pine_needles","default:leaves"}, 20, 10, 50000, 2, 800) + mobs:register_spawn("dmobs:nyan", {"nyanland:meseleaves"}, 20, 10, 15000, 2, 800) - mobs:register_spawn("dmobs:hedgehog", {"default:dirt_with_grass","default:pine_needles"}, 20, 10, 15000, 2, 31000) + mobs:register_spawn("dmobs:hedgehog", {"default:dirt_with_grass","default:pine_needles"}, 20, 10, 15000, 2, 800) mobs:register_spawn("dmobs:whale", {"default:water_source"}, 20, 10, 15000, -20, 1000) - mobs:register_spawn("dmobs:owl", {"default:leaves","default:tree"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:gnorm", {"default:dirt_with_grass","default:wood"}, 20, 10, 32000, 2, 31000) - mobs:register_spawn("dmobs:tortoise", {"default:clay","default:sand"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:elephant", {"default:dirt_with_dry_grass","default:desert_sand"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:badger", {"default:dirt_with_grass","default:dirt"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:pig", {"default:pine_needles","default:leaves", "nyanland:cloudstone"}, 20, 10, 32000, 2, 31000) - mobs:register_spawn("dmobs:panda", {"default:dirt_with_grass","ethereal:bamboo_dirt"}, 20, 10, 15000, 2, 31000) + mobs:register_spawn("dmobs:owl", {"default:leaves","default:tree"}, 20, 10, 15000, 2, 800) + mobs:register_spawn("dmobs:gnorm", {"default:dirt_with_grass","default:wood"}, 20, 10, 32000, 2, 800) + mobs:register_spawn("dmobs:tortoise", {"default:clay","default:sand"}, 20, 10, 15000, 2, 800) + mobs:register_spawn("dmobs:elephant", {"default:dirt_with_dry_grass","default:desert_sand"}, 20, 10, 15000, 2, 800) + mobs:register_spawn("dmobs:badger", {"default:dirt_with_grass","default:dirt"}, 20, 10, 15000, 2, 800) + mobs:register_spawn("dmobs:pig", {"default:pine_needles","default:leaves", "nyanland:cloudstone"}, 20, 10, 32000, 2, 800) + mobs:register_spawn("dmobs:panda", {"default:dirt_with_grass","ethereal:bamboo_dirt"}, 20, 10, 15000, 2, 800) -- baddies - mobs:register_spawn("dmobs:wasp", {"default:dirt_with_grass"}, 20, 10, 32000, 2, 31000) - mobs:register_spawn("dmobs:wasp", {"dmobs:hive"}, 20, 10, 16000, 2, 31000) - mobs:register_spawn("dmobs:wasp_leader", {"default:dirt_with_grass","dmobs:hive"}, 20, 10, 64000, 2, 31000) + mobs:register_spawn("dmobs:wasp", {"default:dirt_with_grass"}, 20, 10, 32000, 2, 800) + mobs:register_spawn("dmobs:wasp", {"dmobs:hive"}, 20, 10, 16000, 2, 800) + mobs:register_spawn("dmobs:wasp_leader", {"default:dirt_with_grass","dmobs:hive"}, 20, 10, 64000, 2, 800) - mobs:register_spawn("dmobs:golem", {"default:stone"}, 7, 0, 16000, 2, 31000) - mobs:register_spawn("dmobs:pig_evil", {"default:pine_needles","default:leaves"}, 20, 10, 32000, 2, 31000) - mobs:register_spawn("dmobs:fox", {"default:dirt_with_grass","default:dirt"}, 20, 10, 32000, 2, 31000) + mobs:register_spawn("dmobs:golem", {"default:stone"}, 7, 0, 16000, 2, 800) + mobs:register_spawn("dmobs:pig_evil", {"default:pine_needles","default:leaves"}, 20, 10, 32000, 2, 800) + mobs:register_spawn("dmobs:fox", {"default:dirt_with_grass","default:dirt"}, 20, 10, 32000, 2, 800) if not dmobs.dragons then - mobs:register_spawn("dmobs:orc", {"default:snow","default:snow_block", "default:desert_sand"}, 20, 10, 15000, 2, 31000) - mobs:register_spawn("dmobs:ogre", {"default:snow","default:dirt_with_dry_grass", "default:desert_sand"}, 20, 10, 15000, 2, 31000) + mobs:register_spawn("dmobs:orc", {"default:snow","default:snow_block", "default:desert_sand"}, 20, 10, 15000, 2, 800) + mobs:register_spawn("dmobs:ogre", {"default:snow","default:dirt_with_dry_grass", "default:desert_sand"}, 20, 10, 15000, 2, 800) else - mobs:register_spawn("dmobs:orc", {"default:snow","default:snow_block", "default:desert_sand"}, 20, 10, 3500, 2, 31000) - mobs:register_spawn("dmobs:ogre", {"default:snow","default:dirt_with_dry_grass", "default:desert_sand"}, 20, 10, 350, 2, 31000) + mobs:register_spawn("dmobs:orc", {"default:snow","default:snow_block", "default:desert_sand"}, 20, 10, 3500, 2, 800) + mobs:register_spawn("dmobs:ogre", {"default:snow","default:dirt_with_dry_grass", "default:desert_sand"}, 20, 10, 350, 2, 800) end - mobs:register_spawn("dmobs:rat", {"default:stone","default:sand"}, 20, 0, 32000, 2, 31000) - mobs:register_spawn("dmobs:treeman", {"default:leaves", "default:pine_needles"}, 7, 0, 16000, 2, 31000) - mobs:register_spawn("dmobs:skeleton", {"default:stone"}, 7, 0, 16000, 2, 31000) + mobs:register_spawn("dmobs:rat", {"default:stone","default:sand"}, 20, 0, 32000, 2, 800) + mobs:register_spawn("dmobs:treeman", {"default:leaves", "default:pine_needles"}, 7, 0, 16000, 2, 800) + mobs:register_spawn("dmobs:skeleton", {"default:stone"}, 7, 0, 16000, 2, 800) end -- dragons -mobs:register_spawn("dmobs:dragon", {"default:leaves","default:dirt_with_grass"}, 20, 10, 64000, 2, 31000) +-- Generic dragon always spawn, the others only if enabled +mobs:register_spawn("dmobs:dragon", {"default:leaves","default:dirt_with_grass"}, 20, 10, 32000, 2, 800) if dmobs.dragons then - mobs:register_spawn("dmobs:dragon2", {"default:pine_needles"}, 20, 10, 64000, 2, 31000) - mobs:register_spawn("dmobs:dragon3", {"default:acacia_leaves","default:dirt_with_dry_grass"}, 20, 10, 64000, 2, 31000) - mobs:register_spawn("dmobs:dragon4", {"default:jungleleaves"}, 20, 10, 64000, 2, 31000) - mobs:register_spawn("dmobs:waterdragon", {"default:water_source"}, 20, 10, 32000, 1, 31000, false) - mobs:register_spawn("dmobs:wyvern", {"default:leaves"}, 20, 10, 32000, 1, 31000, false) + mobs:register_spawn("dmobs:dragon1", {"default:leaves"}, 20, 10, 64000, 2, 800) + mobs:register_spawn("dmobs:dragon2", {"default:pine_needles"}, 20, 10, 64000, 2, 800) + mobs:register_spawn("dmobs:dragon3", {"default:acacia_leaves","default:dirt_with_dry_grass"}, 20, 10, 64000, 2, 800) + mobs:register_spawn("dmobs:dragon4", {"default:jungleleaves"}, 20, 10, 64000, 2, 800) + mobs:register_spawn("dmobs:waterdragon", {"default:water_source"}, 20, 10, 32000, 1, 800, false) + mobs:register_spawn("dmobs:wyvern", {"default:leaves"}, 20, 10, 32000, 1, 800, false) mobs:register_spawn("dmobs:dragon_great", {"default:lava_source"}, 20, 0, 64000, -21000, 1000, false) end