Compare commits
No commits in common. "main-namespace_mobs" and "master" have entirely different histories.
main-names
...
master
12
CHANGELOG.md
12
CHANGELOG.md
@ -1,15 +1,3 @@
|
||||
* 2023-06-04 : mckaygerhard
|
||||
* dont relly on the legacy layer of default mod, detect if player api is present
|
||||
* remove any conflicts with lib_mount
|
||||
* fix fox behaviour, fix water dragon aim
|
||||
* fix wrong local non local variable for function scope only
|
||||
* sync with tenplus1 last changes, backport fixeds
|
||||
* 2022-01-23 : mckaygerhard
|
||||
* change namespace from dmobs to mobs_doomed
|
||||
* fixed depends
|
||||
* fixed damage by fire
|
||||
* improvements over readme and information, added screenshot
|
||||
* Fixed a few nil error bugs from tenplus1 and more checks
|
||||
* 2021-03-30 : Poikilos
|
||||
* Add more details to the panda texture (Change every pixel give or take a few) while reducing the number of pixels.
|
||||
* 2019-07-31 : Grossam
|
||||
|
128
README.md
128
README.md
@ -1,128 +1,6 @@
|
||||
minetest mod mobs D00Med
|
||||
=========================
|
||||
|
||||
MOBS for dragons, pandas, orcs, ogres, fox, owl, and many more animals that can be loved or enemies!
|
||||
|
||||
Information
|
||||
-----------
|
||||
|
||||
Some of those mobs are already in others mods.. like Dragon (nether), wasp (nssm/mobs_monster)
|
||||
|
||||
Dragon gems are dropped by the "boss" dragons ie: the wyvern, the water dragon, and the great dragon(red+black).
|
||||
|
||||
If you see a wasp, bee careful because it wasp probably spawned by the "king of sting", a huge wasp that will make nests and spawn more wasps. Golems sometimes drop their heads. you can use these to make a friendly golem, if you place one on top of two stone blocks. Foxes are sneaky, they will dig through fences if you try to trap them.
|
||||
|
||||

|
||||
|
||||
You must first place an egg in a "nest" made of lava, obsidian, cactus, or ice.
|
||||
Then you can right click the egg with a gem(the purple one), and after a while the egg will change color. Then you have to right click it with the gem that matches the type of dragon in the egg.
|
||||
|
||||
* Red dragon - Lava nest - Fire gem
|
||||
* Green dragon - Cactus nest - Poison gem
|
||||
* Blue dragon - Ice nest - Ice gem
|
||||
* Black dragon - Obsidian nest - Lightning gem
|
||||
|
||||
The nests are just the nodes above, surrounding the egg on all sides and underneath.
|
||||
|
||||
To get tame dragons you need to hatch them from eggs.
|
||||
|
||||
Technical info
|
||||
--------------
|
||||
|
||||
This mod is named `mobs_doomed` in this branch, and includes all the changes from the tenplus1 fork and
|
||||
some improvements fixeds from mckaygerhard namespaced changes. Its the same from `dmobs` but plus all the
|
||||
recent changes and also fixeds, with renamed namespace to be named as `mobs_doomed`.
|
||||
|
||||
This means its compatible with all engine releases of minetest since 0.4 to 5.5
|
||||
and maybe latest.
|
||||
|
||||
> **Warning** **This mod will added 10 megs of more media to yuor server game so clients on mobile may sufering**
|
||||
|
||||
Please for more technical info about dragons read the [dragons.md](dragons.md) file.
|
||||
|
||||
There's an api for vehicles and mount, it forked little **lib_mount lua** api so can be outdated in future.
|
||||
|
||||
Models sources are in [projects](projects) directory of course in GIMP format.
|
||||
|
||||
### Depends
|
||||
|
||||
* default
|
||||
* mobs
|
||||
* wool
|
||||
* farming
|
||||
* bones
|
||||
* mobs_animal (optional)
|
||||
* ethereal (optional)
|
||||
* caverealms (optional)
|
||||
* player_api (this depends if you use older game base)
|
||||
|
||||
### Download
|
||||
|
||||
This is a fork that tries to rename the namespace to `mobs_doomed` from `dmobs` o be in sync with mobs api from tenplus1.
|
||||
to use the older named mod just download it but before commit https://codeberg.org/minenux/minetest-mod-mobs_doomed/commit/7910cbf5dd9ce97c72c056ee656966b32cc1b574 .
|
||||
|
||||
To use the `mobs_doomed` (that is same as tenplus1 dmobs and includes the compatiblity from original one) just
|
||||
download this current branch and be sure to named the directory mod as `mobs_doomed`.
|
||||
|
||||
It also try to be compatible with both 0.4 and 5.2 engines of minetest for minenux games. This fork can be downloaded
|
||||
from https://codeberg.org/minenux/minetest-mod-mobs_doomed the original one is at https://github.com/minetest-mobs-mods/dmobs
|
||||
|
||||
### Configurations
|
||||
|
||||
| Configuration variable | Description | type | default |
|
||||
| ----------------------- | ------------------------------ | ----- | ----- |
|
||||
| mobs_doomed.regulars | Enable most common new animals | bool | true |
|
||||
| mobs_doomed.eggtimer | Timer for the egg mechanics | int | 100 |
|
||||
| mobs_doomed.destructive | Fire balls will be destructive | bool | true |
|
||||
| mobs_doomed.dragons | If disabled only a common dragon will be spawned | bool | true |
|
||||
| mobs_doomed.allow_nyanc | Enable the stupid NyanCat mob fliying pig | bool | false |
|
||||
|
||||
### mobs nodes and names
|
||||
|
||||
Whit more chance, more rare.
|
||||
|
||||
There's some settings, if `mobs_doomed.regulars` are enabled then those monster will be available:
|
||||
|
||||
| tech name | type | chance | notes | spawn nodes |
|
||||
| -------------- | ----- | ------- | ---------- | --------------------------- |
|
||||
| mobs_doomed:nyan | mobs | 300 | friendly | air or ethereal:mushroom/nyanland:meseleaves |
|
||||
| mobs_doomed:hedgehog | mobs | 8000 | friendly | group:flora, ethereal:prairie_dirt |
|
||||
| mobs_doomed:whale | mobs | 16000 | friendly | default:water_source |
|
||||
| mobs_doomed:owl | mobs | 16000 | friendly | group:tree |
|
||||
| mobs_doomed:gnorm | npc | 16000 | friendly | default:dirt_with_grass, ethereal:bamboo_dirt |
|
||||
| mobs_doomed:tortoise | mobs | 8000 | friendly | default:water_source, group:sand |
|
||||
| mobs_doomed:elephan | mobs | 16000 | friendly | default:dirt_with_dry_grass, ethereal:grove_dirt |
|
||||
| mobs_doomed:pig | mobs | 32000 | friendly | default:dirt_with_grass, ethereal:prairie_dirt, nyanland:cloudstone |
|
||||
| mobs_doomed:panda | mobs | 32000 | friendly | default:dirt_with_grass, ethereal:bamboo_dirt |
|
||||
| mobs_doomed:waps | mobs | 16000 | baddly | air/leaves or mobs_doomed:hive |
|
||||
| mobs_doomed:waps_leader | mobs | 64000 | baddly | air/leaves or mobs_doomed:hive |
|
||||
| mobs_doomed:golem | mobs | 16000 | baddly | group:stone |
|
||||
| mobs_doomed:pig_evil | mobs | 64000 | baddly | group:leave, ethereal:bamboo_leaves |
|
||||
| mobs_doomed:fox | mobs | 32000 | baddly | group:leaves |
|
||||
| mobs_doomed:rat | mobs | 32000 | baddly | group:stone, group:sand |
|
||||
| mobs_doomed:treeman | mobs | 16000 | baddly | group:leaves |
|
||||
| mobs_doomed:skeleton | mobs | 16000 | baddly | group:stone, caverealms:stone_with_salt, default:desert_sand |
|
||||
| mobs_doomed:badger | mobs | 8000 | friendly | |
|
||||
|
||||
There's some settings, if `mobs_doomed.dragon`, orcs and ogres spawn more often when dragons are disabled:
|
||||
|
||||
| tech name | type | chance | notes | spawn nodes |
|
||||
| -------------- | ----- | ------- | ---------- | --------------------------- |
|
||||
| mobs_doomed:orc | mobs | 8000/2000 | baddly | default:snow_block, default:permafrost_with_moss, default:permafrost_with_stone, ethereal:cold_dirt |
|
||||
| mobs_doomed:ogre | mobs | 16000/32000 | baddly | default:snow_block, default:permafrost_with_moss, default:permafrost_with_stone, ethereal:cold_dirt |
|
||||
| mobs_doomed:dragon_great_tame | npc | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby
|
||||
| mobs_doomed:dragon | mobs | 16000 | always enabled | group:leaves |
|
||||
| mobs_doomed:waterdragon | mobs | 24000 | rare, ice/water | default:water_source |
|
||||
| mobs_doomed:dragon1 | mobs | 24000 | rare, fire | ethereal:fiery_dirt, default:desert_sand |
|
||||
| mobs_doomed:dragon2 | mobs | 24000 | rare, thunder/fire | ethereal:cristal_dirt, default:dirt_with_dry_grass |
|
||||
| mobs_doomed:dragon3 | mobs | 30000 | rare, poison | ethereal:jungle_dirt, default:jungleleaves |
|
||||
| mobs_doomed:dragon4 | mobs | 24000 | rare, ice/water | default:snow_block, default:permafrost_with_moss, default:permafrost_with_stone, ethereal:cold_dirt |
|
||||
| mobs_doomed:wyvern | mobs | 32000 | rare, dog attack | group:leaves |
|
||||
| mobs_doomed:dragon_great | mobs | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby |
|
||||
|
||||
|
||||
## Authors & License
|
||||
# D00Med's Mobs
|
||||
|
||||
Thanks to D00Med, TenPlus1, blert2112, Grossam and taikedz
|
||||
|
||||
See [license.txt](license.txt)
|
||||
## Authors & License
|
||||
- See license.txt.
|
||||
|
209
api.lua
209
api.lua
@ -23,7 +23,7 @@
|
||||
|
||||
--from lib_mount (required by new functions)
|
||||
|
||||
local p_api = minetest.get_modpath("player_api")
|
||||
|
||||
local mobs_redo = false
|
||||
if mobs.mod and mobs.mod == "redo" then
|
||||
mobs_redo = true
|
||||
@ -43,12 +43,11 @@ local function force_detach(player)
|
||||
end
|
||||
player:set_detach()
|
||||
end
|
||||
if p_api then player_api.player_attached[player:get_player_name()] = false
|
||||
else default.player_attached[player:get_player_name()] = false end
|
||||
default.player_attached[player:get_player_name()] = false
|
||||
player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
|
||||
end
|
||||
|
||||
function mobs_doomed.object_attach(entity, player, attach_at, eye_offset)
|
||||
function object_attach(entity, player, attach_at, eye_offset)
|
||||
eye_offset = eye_offset or {x=0, y=0, z=0}
|
||||
force_detach(player)
|
||||
entity.driver = player
|
||||
@ -57,27 +56,18 @@ function mobs_doomed.object_attach(entity, player, attach_at, eye_offset)
|
||||
player:set_properties({visual_size = {x=1, y=1}})
|
||||
|
||||
player:set_eye_offset(eye_offset, {x=0, y=0, z=0})
|
||||
if p_api then player_api.player_attached[player:get_player_name()] = true
|
||||
else default.player_attached[player:get_player_name()] = true end
|
||||
|
||||
default.player_attached[player:get_player_name()] = true
|
||||
minetest.after(0.2, function()
|
||||
if p_api then player_api.set_animation(player, "sit" , 30)
|
||||
else default.player_set_animation(player, "sit" , 30) end
|
||||
default.player_set_animation(player, "sit" , 30)
|
||||
end)
|
||||
--entity.object:set_yaw(player:get_look_yaw() - math.pi / 2)
|
||||
entity.object:set_yaw(player:get_look_horizontal() - (math.pi/2))
|
||||
entity.object:set_yaw(player:get_look_yaw() - math.pi / 2)
|
||||
end
|
||||
|
||||
function mobs_doomed.object_detach(entity, player, offset)
|
||||
function object_detach(entity, player, offset)
|
||||
entity.driver = nil
|
||||
player:set_detach()
|
||||
if p_api then
|
||||
player_api.player_attached[player:get_player_name()] = false
|
||||
player_api.set_animation(player, "stand" , 30)
|
||||
else
|
||||
default.player_attached[player:get_player_name()] = false
|
||||
default.player_set_animation(player, "stand" , 30)
|
||||
end
|
||||
default.player_attached[player:get_player_name()] = false
|
||||
default.player_set_animation(player, "stand" , 30)
|
||||
player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
|
||||
local pos = player:get_pos()
|
||||
pos = {x = pos.x + offset.x, y = pos.y + 0.2 + offset.y, z = pos.z + offset.z}
|
||||
@ -89,60 +79,48 @@ end
|
||||
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
if player then
|
||||
force_detach(player)
|
||||
end
|
||||
force_detach(player)
|
||||
end)
|
||||
|
||||
minetest.register_on_shutdown(function()
|
||||
local playerc
|
||||
local players = minetest.get_connected_players()
|
||||
local players = minetest.get_connected_players()
|
||||
for i = 1,#players do
|
||||
playerc = players[i]
|
||||
if playerc then
|
||||
force_detach(players[i])
|
||||
end
|
||||
playerc = nil
|
||||
force_detach(players[i])
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
minetest.register_on_dieplayer(function(player)
|
||||
if player then
|
||||
force_detach(player)
|
||||
return true
|
||||
end
|
||||
force_detach(player)
|
||||
return true
|
||||
end)
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
--mixed code(from this mod and lib_mount)
|
||||
local rotview = math.pi / 2
|
||||
|
||||
function mobs_doomed.object_drive(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim, jumps)
|
||||
function object_drive(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim, jumps)
|
||||
local ctrl = entity.driver:get_player_control()
|
||||
local dir = entity.driver:get_look_dir();
|
||||
local vec_forward = {x=dir.x*speed,y=-2,z=dir.z*speed}
|
||||
local vec_backward = {x=-dir.x*speed,y=-2,z=-dir.z*speed}
|
||||
local vec_stop = {x=0,y=0,z=0}
|
||||
--local yaw = entity.driver:get_look_yaw()
|
||||
local yaw = entity.driver:get_look_horizontal()
|
||||
local yaw = entity.driver:get_look_yaw();
|
||||
if ctrl.up then
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2)
|
||||
entity.object:set_velocity(vec_forward)
|
||||
elseif ctrl.down then
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2)
|
||||
entity.object:set_velocity(vec_backward)
|
||||
elseif not ctrl.down or ctrl.up then
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2)
|
||||
entity.object:set_velocity(vec_stop)
|
||||
end
|
||||
if ctrl.sneak and ctrl.LMB and shoots then
|
||||
local pos = entity.object:get_pos()
|
||||
local obj = minetest.add_entity({x=pos.x+0+dir.x*2,y=pos.y+1.5+dir.y,z=pos.z+0+dir.z*2}, arrow)
|
||||
local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6}
|
||||
local yaw = entity.driver:get_look_horizontal() + rotview -- we have math.pi/2 but later yaw sumarized again in next line
|
||||
obj:set_yaw(yaw+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
|
||||
local yaw = entity.driver:get_look_yaw();
|
||||
obj:set_yaw(yaw+math.pi/2)
|
||||
obj:set_velocity(vec)
|
||||
end
|
||||
--lib_mount animation
|
||||
@ -171,10 +149,7 @@ function mobs_doomed.object_drive(entity, dtime, speed, shoots, arrow, moving_an
|
||||
-- end
|
||||
end
|
||||
|
||||
function mobs_doomed.object_fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim)
|
||||
|
||||
if entity and not entity.driver:get_look_dir() then return end
|
||||
|
||||
function object_fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim)
|
||||
local ctrl = entity.driver:get_player_control()
|
||||
local velo = entity.object:get_velocity()
|
||||
local dir = entity.driver:get_look_dir();
|
||||
@ -182,7 +157,7 @@ function mobs_doomed.object_fly(entity, dtime, speed, shoots, arrow, moving_anim
|
||||
local vec_backward = {x=-dir.x*speed,y=dir.y*speed+2,z=-dir.z*speed}
|
||||
local vec_rise = {x=velo.x,y=velo.y+0.2,z=velo.z}
|
||||
local vec_stop = {x=0,y=-0.2,z=0}
|
||||
local yaw = entity.driver:get_look_horizontal() + rotview
|
||||
local yaw = entity.driver:get_look_yaw();
|
||||
local pos = entity.object:get_pos()
|
||||
local node = minetest.get_node(pos).name
|
||||
|
||||
@ -191,26 +166,25 @@ function mobs_doomed.object_fly(entity, dtime, speed, shoots, arrow, moving_anim
|
||||
-- entity.object:set_velocity({x=velo.x*0.5, y=velo.y*0.5, z=velo.z*0.5})
|
||||
-- end
|
||||
if ctrl.up then
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2)
|
||||
entity.object:set_velocity(vec_forward)
|
||||
elseif ctrl.down then
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2)
|
||||
entity.object:set_velocity(vec_backward)
|
||||
elseif ctrl.jump then
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2)
|
||||
entity.object:set_velocity(vec_rise)
|
||||
elseif not ctrl.down or ctrl.up or ctrl.jump then
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
|
||||
entity.object:set_yaw(yaw+math.pi+math.pi/2)
|
||||
entity.object:set_velocity(vec_stop)
|
||||
end
|
||||
if ctrl.aux1 and shoots and not entity.loaded then
|
||||
local pos = entity.object:get_pos()
|
||||
local obj = minetest.add_entity({x=pos.x+0+dir.x*2.5,y=pos.y+1.5+dir.y,z=pos.z+0+dir.z*2.5}, arrow)
|
||||
local vec = vector.multiply(dir, 12)
|
||||
--local yaw = entity.driver:get_look_yaw()
|
||||
local yaw = entity.driver:get_look_horizontal()
|
||||
local yaw = entity.driver:get_look_yaw();
|
||||
entity.loaded = true
|
||||
obj:set_yaw(yaw+math.pi/2) -- check math.pi+math.pi/2 check if the order of the signs is correct
|
||||
obj:set_yaw(yaw+math.pi/2)
|
||||
obj:set_velocity(vec)
|
||||
local object = obj:get_luaentity()
|
||||
object.launcher = entity.driver
|
||||
@ -258,3 +232,128 @@ local function get_v(v)
|
||||
return math.sqrt(v.x ^ 2 + v.z ^ 2)
|
||||
end
|
||||
|
||||
lib_mount = {}
|
||||
|
||||
function lib_mount.attach(entity, player, attach_at, eye_offset)
|
||||
eye_offset = eye_offset or {x=0, y=0, z=0}
|
||||
force_detach(player)
|
||||
entity.driver = player
|
||||
player:set_attach(entity.object, "", attach_at, {x=0, y=0, z=0})
|
||||
|
||||
player:set_properties({visual_size = {x=1, y=1}})
|
||||
|
||||
player:set_eye_offset(eye_offset, {x=0, y=0, z=0})
|
||||
default.player_attached[player:get_player_name()] = true
|
||||
minetest.after(0.2, function()
|
||||
default.player_set_animation(player, "sit" , 30)
|
||||
end)
|
||||
entity.object:set_yaw(player:get_look_yaw() - math.pi / 2)
|
||||
end
|
||||
|
||||
function lib_mount.detach(entity, player, offset)
|
||||
if entity ~= nil then entity.driver = nil end
|
||||
player:set_detach()
|
||||
default.player_attached[player:get_player_name()] = false
|
||||
default.player_set_animation(player, "stand" , 30)
|
||||
player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0})
|
||||
local pos = player:get_pos()
|
||||
pos = {x = pos.x + offset.x, y = pos.y + 0.2 + offset.y, z = pos.z + offset.z}
|
||||
minetest.after(0.1, function()
|
||||
player:set_pos(pos)
|
||||
end)
|
||||
end
|
||||
|
||||
function lib_mount.drive(entity, dtime, moving_anim, stand_anim, can_fly)
|
||||
entity.v = get_v(entity.object:get_velocity()) * get_sign(entity.v)
|
||||
|
||||
local ctrl = entity.driver:get_player_control()
|
||||
local yaw = entity.object:get_yaw()
|
||||
if ctrl.up then
|
||||
entity.v = entity.v + 0.1
|
||||
elseif ctrl.down then
|
||||
entity.v = entity.v - 0.1
|
||||
end
|
||||
if ctrl.left then
|
||||
if entity.v < 0 then
|
||||
entity.object:set_yaw(yaw - (1 + dtime) * 0.03)
|
||||
else
|
||||
entity.object:set_yaw(yaw + (1 + dtime) * 0.03)
|
||||
end
|
||||
elseif ctrl.right then
|
||||
if entity.v < 0 then
|
||||
entity.object:set_yaw(yaw + (1 + dtime) * 0.03)
|
||||
else
|
||||
entity.object:set_yaw(yaw - (1 + dtime) * 0.03)
|
||||
end
|
||||
end
|
||||
|
||||
local velo = entity.object:get_velocity()
|
||||
if entity.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then
|
||||
if stand_anim and stand_anim ~= nil and mobs_redo == true then
|
||||
mobs:set_animation(entity, stand_anim)
|
||||
end
|
||||
entity.object:set_pos(entity.object:get_pos())
|
||||
return
|
||||
end
|
||||
if moving_anim and moving_anim ~= nil and mobs_redo == true then
|
||||
mobs:set_animation(entity, moving_anim)
|
||||
end
|
||||
local s = get_sign(entity.v)
|
||||
entity.v = entity.v - 0.02 * s
|
||||
if s ~= get_sign(entity.v) then
|
||||
entity.object:set_velocity({x = 0, y = 0, z = 0})
|
||||
entity.v = 0
|
||||
return
|
||||
end
|
||||
if math.abs(entity.v) > 5 then
|
||||
entity.v = 5 * get_sign(entity.v)
|
||||
end
|
||||
|
||||
local p = entity.object:get_pos()
|
||||
p.y = p.y - 0.5
|
||||
local new_velo = {x = 0, y = 0, z = 0}
|
||||
local new_acce = {x = 0, y = 0, z = 0}
|
||||
if not is_group(p, "crumbly") then
|
||||
local nodedef = minetest.registered_nodes[minetest.get_node(p).name]
|
||||
if (not nodedef) or nodedef.walkable then
|
||||
entity.v = 0
|
||||
new_acce = {x = 0, y = 1, z = 0}
|
||||
else
|
||||
new_acce = {x = 0, y = -9.8, z = 0}
|
||||
end
|
||||
new_velo = get_velocity(entity.v, entity.object:get_yaw(),
|
||||
entity.object:get_velocity().y)
|
||||
entity.object:set_pos(entity.object:get_pos())
|
||||
else
|
||||
p.y = p.y + 1
|
||||
if is_group(p, "crumbly") then
|
||||
local y = entity.object:get_velocity().y
|
||||
if y >= 5 then
|
||||
y = 5
|
||||
elseif y < 0 then
|
||||
new_acce = {x = 0, y = 20, z = 0}
|
||||
else
|
||||
new_acce = {x = 0, y = 5, z = 0}
|
||||
end
|
||||
new_velo = get_velocity(entity.v, entity.object:get_yaw(), y)
|
||||
entity.object:set_pos(entity.object:get_pos())
|
||||
else
|
||||
new_acce = {x = 0, y = 0, z = 0}
|
||||
if math.abs(entity.object:get_velocity().y) < 1 then
|
||||
local pos = entity.object:get_pos()
|
||||
pos.y = math.floor(pos.y) + 0.5
|
||||
entity.object:set_pos(pos)
|
||||
new_velo = get_velocity(entity.v, entity.object:get_yaw(), 0)
|
||||
else
|
||||
new_velo = get_velocity(entity.v, entity.object:get_yaw(),
|
||||
entity.object:get_velocity().y)
|
||||
entity.object:set_pos(entity.object:get_pos())
|
||||
end
|
||||
end
|
||||
end
|
||||
if can_fly and can_fly == true and ctrl.jump then
|
||||
new_velo.y = new_velo.y + 0.75
|
||||
end
|
||||
entity.object:set_velocity(new_velo)
|
||||
entity.object:set_acceleration(new_acce)
|
||||
end
|
||||
|
@ -29,6 +29,6 @@ local base_arrow = {
|
||||
|
||||
for _,arrowtype in pairs( {"ice","lightning","poison"} ) do
|
||||
base_arrow.textures = {"dmobs_"..arrowtype..".png"}
|
||||
name = "mobs_doomed:"..arrowtype
|
||||
mobs:register_arrow(name, mobs_doomed.deepclone(base_arrow) )
|
||||
name = "dmobs:"..arrowtype
|
||||
mobs:register_arrow(name, dmobs.deepclone(base_arrow) )
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
--function to register tamed dragon attacks
|
||||
|
||||
function mobs_doomed.register_fire(fname, texture, dmg, replace_node, explode, ice, variance, size)
|
||||
function dmobs.register_fire(fname, texture, dmg, replace_node, explode, ice, variance, size)
|
||||
minetest.register_entity(fname, {
|
||||
textures = {texture},
|
||||
velocity = 0.1,
|
||||
@ -14,7 +14,7 @@ minetest.register_entity(fname, {
|
||||
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
|
||||
for k, obj in pairs(objs) do
|
||||
if obj:get_luaentity() ~= nil then
|
||||
if obj:get_luaentity().name ~= fname and obj:get_luaentity().name ~= "mobs_doomed:dragon_red" and obj:get_luaentity().name ~= "mobs_doomed:dragon_blue" and obj:get_luaentity().name ~= "mobs_doomed:dragon_black" and obj:get_luaentity().name ~= "mobs_doomed:dragon_green" and obj:get_luaentity().name ~= "mobs_doomed:dragon_great_tame" and obj:get_luaentity().name ~= "__builtin:item" then
|
||||
if obj:get_luaentity().name ~= fname and obj:get_luaentity().name ~= "dmobs:dragon_red" and obj:get_luaentity().name ~= "dmobs:dragon_blue" and obj:get_luaentity().name ~= "dmobs:dragon_black" and obj:get_luaentity().name ~= "dmobs:dragon_green" and obj:get_luaentity().name ~= "dmobs:dragon_great_tame" and obj:get_luaentity().name ~= "__builtin:item" then
|
||||
obj:punch(self.launcher, 1.0, {
|
||||
full_punch_interval=1.0,
|
||||
damage_groups={fleshy=3},
|
||||
@ -43,7 +43,7 @@ minetest.register_entity(fname, {
|
||||
end
|
||||
end
|
||||
end
|
||||
local apos = self.object:get_pos(); if not apos then return end
|
||||
local apos = self.object:get_pos()
|
||||
local part = minetest.add_particlespawner(
|
||||
6, --amount
|
||||
0.3, --time
|
||||
@ -65,7 +65,7 @@ minetest.register_entity(fname, {
|
||||
})
|
||||
end
|
||||
|
||||
mobs_doomed.register_fire("mobs_doomed:fire_plyr", "dmobs_fire.png", 2, "fire:basic_flame", true, false, 0.3, 1)
|
||||
mobs_doomed.register_fire("mobs_doomed:ice_plyr", "dmobs_ice.png", 2, "default:ice", false, true, 0.5, 10)
|
||||
mobs_doomed.register_fire("mobs_doomed:poison_plyr", "dmobs_poison.png", 2, "air", false, false, 0.3, 1)
|
||||
mobs_doomed.register_fire("mobs_doomed:lightning_plyr", "dmobs_lightning.png", 2, "air", true, false, 0, 0.5)
|
||||
dmobs.register_fire("dmobs:fire_plyr", "dmobs_fire.png", 2, "fire:basic_flame", true, false, 0.3, 1)
|
||||
dmobs.register_fire("dmobs:ice_plyr", "dmobs_ice.png", 2, "default:ice", false, true, 0.5, 10)
|
||||
dmobs.register_fire("dmobs:poison_plyr", "dmobs_poison.png", 2, "air", false, false, 0.3, 1)
|
||||
dmobs.register_fire("dmobs:lightning_plyr", "dmobs_lightning.png", 2, "air", true, false, 0, 0.5)
|
||||
|
@ -1,5 +1,5 @@
|
||||
--Thanks to Tenplus1
|
||||
mobs:register_arrow("mobs_doomed:fire", {
|
||||
mobs:register_arrow("dmobs:fire", {
|
||||
visual = "sprite",
|
||||
visual_size = {x = 0.5, y = 0.5},
|
||||
textures = {"dmobs_fire.png"},
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
mobs:register_arrow("mobs_doomed:fire", {
|
||||
mobs:register_arrow("dmobs:fire", {
|
||||
visual = "sprite",
|
||||
visual_size = {x = 0.5, y = 0.5},
|
||||
textures = {"dmobs_fire.png"},
|
||||
|
@ -1,4 +1,4 @@
|
||||
mobs:register_arrow("mobs_doomed:sting", {
|
||||
mobs:register_arrow("dmobs:sting", {
|
||||
visual = "sprite",
|
||||
visual_size = {x = 0.5, y = 0.5},
|
||||
textures = {"dmobs_sting.png"},
|
||||
|
@ -1,9 +1,6 @@
|
||||
default
|
||||
mobs
|
||||
wool
|
||||
farming
|
||||
bones?
|
||||
farming?
|
||||
ethereal?
|
||||
caverealms?
|
||||
mobs_animal?
|
||||
player_api?
|
@ -1 +0,0 @@
|
||||
MOBS for more monsters like dragons, orcs, ogres, elephans, etc
|
45
dragons.md
45
dragons.md
@ -1,43 +1,11 @@
|
||||
minetest mod mobs_doomed
|
||||
======================
|
||||
D00Med's Mobs
|
||||
|
||||
MOBS for dragons.. Main info at [Readme.md](README.md)
|
||||
|
||||
## Dragns and orcs/ogres
|
||||
|
||||
When dragons are disabled orcs will spawm more frecuently,
|
||||
about 16000 chance and 32000 (very rare) chance if dragons are disabled,
|
||||
same for ogres, about 6000 with disabled dragons and 8000 then.
|
||||
|
||||
## Dragons names
|
||||
|
||||
|
||||
Generic dragon always spawn, the others only if enabled in settings by `mobs_doomed.dragons` set to true (default):
|
||||
|
||||
| tech name | type | chance | notes | spawn nodes |
|
||||
| ------------- | ---- | ------ | ------------------ | ---------------------- |
|
||||
| mobs_doomed:dragon | mob | 16000 | always enabled | group:leaves |
|
||||
| mobs_doomed:waterdragon | mob | 24000 | rare, ice/water | default:water_source |
|
||||
| mobs_doomed:dragon1 | mob | 24000 | rare, fire | ethereal:fiery_dirt, default:desert_sand |
|
||||
| mobs_doomed:dragon2 | mob | 24000 | rare, thunder/fire | ethereal:cristal_dirt, default:dirt_with_dry_grass |
|
||||
| mobs_doomed:dragon3 | mob | 30000 | rare, poison | ethereal:jungle_dirt, default:jungleleaves |
|
||||
| mobs_doomed:dragon4 | mob | 24000 | rare, ice/water | default:snow_block, default:permafrost_with_moss, default:permafrost_with_stone, ethereal:cold_dirt |
|
||||
| mobs_doomed:wyvern | mob | 32000 | rare, dog attack | group:leaves |
|
||||
| mobs_doomed:dragon_great | mob | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby |
|
||||
| mobs_doomed:dragon_great_tame | npc | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby |
|
||||
|
||||
Dragon D00Med's Mobs
|
||||
-------------
|
||||
|
||||

|
||||
|
||||
## How to Dragon
|
||||
How to Dragon
|
||||
|
||||
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
|
||||
@ -56,13 +24,4 @@ Feed the right elemental gem to the elemental egg to hatch a dragon:
|
||||
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
|
||||
|
||||
## Configurations
|
||||
|
||||
there's a variable named `mobs_doomed.dragons` by default set to true, if disabled or false will spawn more orcs
|
||||
and only let the `mobs_doomed:dragon` available for spawn. This can be set using the
|
||||
config file (server) or using the gui configure advanced part from the client (single player)
|
||||
|
||||
Enjoy !
|
||||
|
||||
Main info at [Readme.md](README.md)
|
||||
|
||||
|
@ -1,61 +0,0 @@
|
||||
minetest mod mobs_doomed
|
||||
======================
|
||||
|
||||
Main info at [../Readme.md](../README.md)
|
||||
|
||||
## Dragns and orcs/ogres
|
||||
|
||||
When dragons are disabled orcs will spawm more frecuently,
|
||||
about 16000 chance and 32000 (very rare) chance if dragons are disabled,
|
||||
same for ogres, about 6000 with disabled dragons and 8000 then.
|
||||
|
||||
## Dragons names
|
||||
|
||||
|
||||
Generic dragon always spawn, the others only if enabled in settings by `dmobs.dragons` set to true (default):
|
||||
|
||||
| tech name | type | chance | notes | spawn nodes |
|
||||
| ------------- | ---- | ------ | ------------------ | ---------------------- |
|
||||
| mobs_doomed:dragon | mob | 16000 | always enabled | group:leaves |
|
||||
| mobs_doomed:waterdragon | mob | 24000 | rare, ice/water | default:water_source |
|
||||
| mobs_doomed:dragon1 | mob | 24000 | rare, fire | ethereal:fiery_dirt, default:desert_sand |
|
||||
| mobs_doomed:dragon2 | mob | 24000 | rare, thunder/fire | ethereal:cristal_dirt, default:dirt_with_dry_grass |
|
||||
| mobs_doomed:dragon3 | mob | 30000 | rare, poison | ethereal:jungle_dirt, default:jungleleaves |
|
||||
| mobs_doomed:dragon4 | mob | 24000 | rare, ice/water | default:snow_block, default:permafrost_with_moss, default:permafrost_with_stone, ethereal:cold_dirt |
|
||||
| mobs_doomed:wyvern | mob | 32000 | rare, dog attack | group:leaves |
|
||||
| mobs_doomed:dragon_great | mob | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby |
|
||||
| mobs_doomed:dragon_great_tame | npc | 30000 | very rare, fire/lava | ethereal:jungle_dirt,default:jungleleaves,default:lava_source,caverealms:glow_mese, caverealms:glow_amethyst,caverealms:glow_crystal,caverealms:glow_emerald,cavereals:glow_ruby |
|
||||
|
||||
Dragon D00Med's Mobs
|
||||
-------------
|
||||
|
||||

|
||||
|
||||
## How to Dragon
|
||||
|
||||
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 : diamond block
|
||||
|
||||
By defeating special dragons, you can obtain elemental gems.
|
||||
|
||||
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 !
|
||||
|
||||
Main info at [../Readme.md](../README.md)
|
||||
|
@ -11,7 +11,7 @@ local dragondef = {
|
||||
dogshoot_switch = 2,
|
||||
dogshoot_count = 0,
|
||||
dogshoot_count_max =5,
|
||||
arrow = "mobs_doomed:fire",
|
||||
arrow = "dmobs:fire",
|
||||
shoot_offset = 1,
|
||||
hp_min = 70,
|
||||
hp_max = 100,
|
||||
@ -29,7 +29,7 @@ local dragondef = {
|
||||
jump_chance = 30,
|
||||
walk_chance = 80,
|
||||
fall_speed = 0,
|
||||
follow = {"mobs_doomed:dragon_gem"},
|
||||
follow = {"dmobs:dragon_gem"},
|
||||
pathfinding = true,
|
||||
fall_damage = 0,
|
||||
sounds = {
|
||||
@ -41,14 +41,13 @@ local dragondef = {
|
||||
fly = true,
|
||||
fly_in = {"air","default:water_source", "default:water_flowing", "default:lava_source", "default:lava_flowing"},
|
||||
drops = {
|
||||
{name = "mobs_doomed:egg", chance = 1, min = 1, max = 1},
|
||||
{name = "mobs_doomed:dragon_gem", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:egg", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:dragon_gem", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
fall_speed = 0,
|
||||
stepheight = 10,
|
||||
water_damage = 3,
|
||||
lava_damage = 1,
|
||||
fire_damage = 1,
|
||||
light_damage = 0,
|
||||
view_range = 20,
|
||||
animation = {
|
||||
@ -64,19 +63,19 @@ local dragondef = {
|
||||
punch_end = 47,
|
||||
},
|
||||
knock_back = 2,
|
||||
do_custom = mobs_doomed.dragon.step_custom,
|
||||
on_rightclick = mobs_doomed.dragon.on_rc
|
||||
do_custom = dmobs.dragon.step_custom,
|
||||
on_rightclick = dmobs.dragon.on_rc
|
||||
}
|
||||
|
||||
|
||||
-- The wild dragon is registered
|
||||
mobs:register_mob("mobs_doomed:dragon1", mobs_doomed.deepclone(dragondef) )
|
||||
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 = mobs_doomed.dragon.ride
|
||||
dragondef.do_custom = mobs_doomed.dragon.do_custom
|
||||
dragondef.on_rightclick = dmobs.dragon.ride
|
||||
dragondef.do_custom = dmobs.dragon.do_custom
|
||||
|
||||
-- The tamed version is registered
|
||||
mobs:register_mob("mobs_doomed:dragon_red", mobs_doomed.deepclone(dragondef) )
|
||||
mobs:register_mob("dmobs:dragon_red", dmobs.deepclone(dragondef) )
|
||||
|
@ -11,7 +11,7 @@ local dragondef = {
|
||||
dogshoot_switch = 2,
|
||||
dogshoot_count = 0,
|
||||
dogshoot_count_max =5,
|
||||
arrow = "mobs_doomed:lightning",
|
||||
arrow = "dmobs:lightning",
|
||||
shoot_offset = 1,
|
||||
hp_min = 70,
|
||||
hp_max = 100,
|
||||
@ -29,7 +29,7 @@ local dragondef = {
|
||||
jump_chance = 30,
|
||||
walk_chance = 80,
|
||||
fall_speed = 0,
|
||||
follow = {"mobs_doomed:dragon_gem"},
|
||||
follow = {"dmobs:dragon_gem"},
|
||||
pathfinding = true,
|
||||
fall_damage = 0,
|
||||
sounds = {
|
||||
@ -41,14 +41,13 @@ local dragondef = {
|
||||
fly = true,
|
||||
fly_in = {"air","default:water_source","default:water_flowing"},
|
||||
drops = {
|
||||
{name = "mobs_doomed:egg", chance = 1, min = 1, max = 1},
|
||||
{name = "mobs_doomed:dragon_gem", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:egg", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:dragon_gem", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
fall_speed = 0,
|
||||
stepheight = 10,
|
||||
water_damage = 2,
|
||||
lava_damage = 0,
|
||||
fire_damage = 0,
|
||||
light_damage = 0,
|
||||
view_range = 20,
|
||||
animation = {
|
||||
@ -64,18 +63,18 @@ local dragondef = {
|
||||
punch_end = 47,
|
||||
},
|
||||
knock_back = 2,
|
||||
do_custom = mobs_doomed.dragon.step_custom,
|
||||
on_rightclick = mobs_doomed.dragon.on_rc
|
||||
do_custom = dmobs.dragon.step_custom,
|
||||
on_rightclick = dmobs.dragon.on_rc
|
||||
}
|
||||
|
||||
|
||||
mobs:register_mob("mobs_doomed:dragon2", mobs_doomed.deepclone(dragondef) )
|
||||
mobs:register_mob("dmobs:dragon2", dmobs.deepclone(dragondef) )
|
||||
|
||||
dragondef.type = "npc"
|
||||
dragondef.attacks_monsters = true
|
||||
|
||||
dragondef.on_rightclick = mobs_doomed.dragon.ride
|
||||
dragondef.on_rightclick = dmobs.dragon.ride
|
||||
|
||||
dragondef.do_custom = mobs_doomed.dragon.do_custom
|
||||
dragondef.do_custom = dmobs.dragon.do_custom
|
||||
|
||||
mobs:register_mob("mobs_doomed:dragon_black", mobs_doomed.deepclone(dragondef) )
|
||||
mobs:register_mob("dmobs:dragon_black", dmobs.deepclone(dragondef) )
|
||||
|
@ -11,7 +11,7 @@ local dragondef = {
|
||||
dogshoot_switch = 2,
|
||||
dogshoot_count = 0,
|
||||
dogshoot_count_max =5,
|
||||
arrow = "mobs_doomed:poison",
|
||||
arrow = "dmobs:poison",
|
||||
shoot_offset = 1,
|
||||
hp_min = 70,
|
||||
hp_max = 100,
|
||||
@ -29,7 +29,7 @@ local dragondef = {
|
||||
jump_chance = 30,
|
||||
walk_chance = 80,
|
||||
fall_speed = 0,
|
||||
follow = {"mobs_doomed:dragon_gem"},
|
||||
follow = {"dmobs:dragon_gem"},
|
||||
pathfinding = true,
|
||||
fall_damage = 0,
|
||||
sounds = {
|
||||
@ -41,14 +41,13 @@ local dragondef = {
|
||||
fly = true,
|
||||
fly_in = {"air","default:water_source","default:water_flowing"},
|
||||
drops = {
|
||||
{name = "mobs_doomed:egg", chance = 1, min = 1, max = 1},
|
||||
{name = "mobs_doomed:dragon_gem", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:egg", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:dragon_gem", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
fall_speed = 0,
|
||||
stepheight = 10,
|
||||
water_damage = 2,
|
||||
lava_damage = 0,
|
||||
fire_damage = 0,
|
||||
light_damage = 0,
|
||||
view_range = 20,
|
||||
animation = {
|
||||
@ -64,18 +63,18 @@ local dragondef = {
|
||||
punch_end = 47,
|
||||
},
|
||||
knock_back = 2,
|
||||
do_custom = mobs_doomed.dragon.step_custom,
|
||||
on_rightclick = mobs_doomed.dragon.on_rc
|
||||
do_custom = dmobs.dragon.step_custom,
|
||||
on_rightclick = dmobs.dragon.on_rc
|
||||
}
|
||||
|
||||
|
||||
mobs:register_mob("mobs_doomed:dragon3", mobs_doomed.deepclone(dragondef) )
|
||||
mobs:register_mob("dmobs:dragon3", dmobs.deepclone(dragondef) )
|
||||
|
||||
dragondef.type = "npc"
|
||||
dragondef.attacks_monsters = true
|
||||
|
||||
dragondef.on_rightclick = mobs_doomed.dragon.ride
|
||||
dragondef.on_rightclick = dmobs.dragon.ride
|
||||
|
||||
dragondef.do_custom = mobs_doomed.dragon.do_custom
|
||||
dragondef.do_custom = dmobs.dragon.do_custom
|
||||
|
||||
mobs:register_mob("mobs_doomed:dragon_green", mobs_doomed.deepclone(dragondef) )
|
||||
mobs:register_mob("dmobs:dragon_green", dmobs.deepclone(dragondef) )
|
||||
|
@ -11,7 +11,7 @@ local dragondef = {
|
||||
dogshoot_switch = 2,
|
||||
dogshoot_count = 0,
|
||||
dogshoot_count_max =5,
|
||||
arrow = "mobs_doomed:ice",
|
||||
arrow = "dmobs:ice",
|
||||
shoot_offset = 1,
|
||||
hp_min = 70,
|
||||
hp_max = 100,
|
||||
@ -29,7 +29,7 @@ local dragondef = {
|
||||
jump_chance = 30,
|
||||
walk_chance = 80,
|
||||
fall_speed = 0,
|
||||
follow = {"mobs_doomed:dragon_gem"},
|
||||
follow = {"dmobs:dragon_gem"},
|
||||
pathfinding = true,
|
||||
fall_damage = 0,
|
||||
sounds = {
|
||||
@ -41,14 +41,13 @@ local dragondef = {
|
||||
fly = true,
|
||||
fly_in = {"air","default:water_source","default:water_flowing"},
|
||||
drops = {
|
||||
{name = "mobs_doomed:egg", chance = 1, min = 1, max = 1},
|
||||
{name = "mobs_doomed:dragon_gem", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:egg", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:dragon_gem", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
fall_speed = 0,
|
||||
stepheight = 10,
|
||||
water_damage = 1,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
view_range = 20,
|
||||
animation = {
|
||||
@ -64,16 +63,16 @@ local dragondef = {
|
||||
punch_end = 47,
|
||||
},
|
||||
knock_back = 2,
|
||||
do_custom = mobs_doomed.dragon.step_custom,
|
||||
on_rightclick = mobs_doomed.dragon.on_rc
|
||||
do_custom = dmobs.dragon.step_custom,
|
||||
on_rightclick = dmobs.dragon.on_rc
|
||||
}
|
||||
|
||||
mobs:register_mob("mobs_doomed:dragon4", mobs_doomed.deepclone(dragondef) )
|
||||
mobs:register_mob("dmobs:dragon4", dmobs.deepclone(dragondef) )
|
||||
|
||||
dragondef.type = "npc"
|
||||
dragondef.attacks_monsters = true
|
||||
|
||||
dragondef.on_rightclick = mobs_doomed.dragon.ride
|
||||
dragondef.do_custom = mobs_doomed.dragon.do_custom
|
||||
dragondef.on_rightclick = dmobs.dragon.ride
|
||||
dragondef.do_custom = dmobs.dragon.do_custom
|
||||
|
||||
mobs:register_mob("mobs_doomed:dragon_blue", mobs_doomed.deepclone(dragondef) )
|
||||
mobs:register_mob("dmobs:dragon_blue", dmobs.deepclone(dragondef) )
|
||||
|
@ -1,7 +1,8 @@
|
||||
-- 'Generic' dragon
|
||||
|
||||
dofile(minetest.get_modpath("dmobs").."/dragons/piloting.lua")
|
||||
|
||||
mobs:register_mob("mobs_doomed:dragon", {
|
||||
mobs:register_mob("dmobs:dragon", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
attacks_monsters = true,
|
||||
@ -12,7 +13,7 @@ mobs:register_mob("mobs_doomed:dragon", {
|
||||
dogshoot_switch = 2,
|
||||
dogshoot_count = 0,
|
||||
dogshoot_count_max =5,
|
||||
arrow = "mobs_doomed:fire",
|
||||
arrow = "dmobs:fire",
|
||||
shoot_offset = 1,
|
||||
hp_min = 50,
|
||||
hp_max = 80,
|
||||
@ -49,7 +50,6 @@ mobs:register_mob("mobs_doomed:dragon", {
|
||||
stepheight = 10,
|
||||
water_damage = 2,
|
||||
lava_damage = 0,
|
||||
fire_damage = 0,
|
||||
light_damage = 0,
|
||||
view_range = 20,
|
||||
animation = {
|
||||
@ -65,6 +65,6 @@ mobs:register_mob("mobs_doomed:dragon", {
|
||||
punch_end = 47,
|
||||
},
|
||||
knock_back = 2,
|
||||
do_custom = mobs_doomed.dragon.step_custom,
|
||||
on_rightclick = mobs_doomed.dragon.on_rc
|
||||
do_custom = dmobs.dragon.step_custom,
|
||||
on_rightclick = dmobs.dragon.on_rc
|
||||
})
|
||||
|
@ -10,7 +10,7 @@ local dragonpairs = {
|
||||
|
||||
local function egg_transform(pos, node, clicker, item, _)
|
||||
local wield_item = clicker:get_wielded_item():get_name()
|
||||
if wield_item == "mobs_doomed:dragon_gem" then
|
||||
if wield_item == "dmobs:dragon_gem" then
|
||||
|
||||
local p = {x = pos.x, y = pos.y - 1, z = pos.z}
|
||||
local corner_name
|
||||
@ -48,9 +48,9 @@ local function egg_transform(pos, node, clicker, item, _)
|
||||
|
||||
minetest.chat_send_player(clicker:get_player_name()," ... something seems to be happening .... come back later?")
|
||||
|
||||
minetest.after(mobs_doomed.eggtimer,
|
||||
minetest.after(dmobs.eggtimer,
|
||||
function(pos, dragon, pname)
|
||||
minetest.set_node(pos, {name="mobs_doomed:dragon_egg_"..dragon_type})
|
||||
minetest.set_node(pos, {name="dmobs:dragon_egg_"..dragon_type})
|
||||
end,
|
||||
pos
|
||||
)
|
||||
@ -64,28 +64,28 @@ local function egghatch(pos, node, clicker, item, _)
|
||||
local eggnode = minetest.get_node(pos).name
|
||||
|
||||
for nature,details in pairs(dragonpairs) do
|
||||
if ( wield_item == "mobs_doomed:dragon_gem_"..nature and eggnode:find(nature) ) or
|
||||
( wield_item == "mobs_doomed:dragon_gem" and eggnode == "mobs_doomed:dragon_egg_great" ) then -- special case... because inconsiderate/inconsistent naming
|
||||
if ( wield_item == "dmobs:dragon_gem_"..nature and eggnode:find(nature) ) or
|
||||
( wield_item == "dmobs:dragon_gem" and eggnode == "dmobs:dragon_egg_great" ) then -- special case... because inconsiderate/inconsistent naming
|
||||
|
||||
minetest.chat_send_player(clicker:get_player_name(), " ... it ... swallowed the gem...")
|
||||
|
||||
minetest.after(mobs_doomed.eggtimer,
|
||||
minetest.after(dmobs.eggtimer,
|
||||
function(pos, dragon, pname)
|
||||
local neweggnode = minetest.get_node(pos).name
|
||||
if eggnode ~= neweggnode then return end -- prevent infinite hatchings
|
||||
|
||||
minetest.remove_node(pos)
|
||||
|
||||
local thedragon = "mobs_doomed:dragon_"..details.colour
|
||||
if eggnode == "mobs_doomed:dragon_egg_great" then
|
||||
thedragon = "mobs_doomed:dragon_great_tame"
|
||||
local thedragon = "dmobs:dragon_"..details.colour
|
||||
if eggnode == "dmobs:dragon_egg_great" then
|
||||
thedragon = "dmobs:dragon_great_tame"
|
||||
end
|
||||
|
||||
local ent = minetest.add_entity(pos, thedragon)
|
||||
minetest.sound_play("dmobs_chirrup",{pos=pos,max_hear_distance=20})
|
||||
|
||||
local obj = ent:get_luaentity()
|
||||
if eggnode ~= "mobs_doomed:dragon_egg_great" then
|
||||
if eggnode ~= "dmobs:dragon_egg_great" then
|
||||
ent:set_properties({
|
||||
textures = {"dmobs_dragon_young.png"},
|
||||
visual_size = {x=1, y=1},
|
||||
@ -121,28 +121,28 @@ local base_egg = { -- base template for all dragon eggs
|
||||
}
|
||||
|
||||
|
||||
minetest.register_node("mobs_doomed:egg", mobs_doomed.deepclone(base_egg) ) -- clone, to not affect the base template
|
||||
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("mobs_doomed:dragon_egg_fire", mobs_doomed.deepclone(base_egg) )
|
||||
minetest.register_node("dmobs:dragon_egg_fire", dmobs.deepclone(base_egg) )
|
||||
|
||||
-- Lightning egg
|
||||
base_egg.tiles = {"dmobs_egg2.png"}
|
||||
minetest.register_node("mobs_doomed:dragon_egg_lightning", mobs_doomed.deepclone(base_egg) )
|
||||
minetest.register_node("dmobs:dragon_egg_lightning", dmobs.deepclone(base_egg) )
|
||||
|
||||
-- Poison egg
|
||||
base_egg.tiles = {"dmobs_egg3.png"}
|
||||
minetest.register_node("mobs_doomed:dragon_egg_poison", mobs_doomed.deepclone(base_egg) )
|
||||
minetest.register_node("dmobs:dragon_egg_poison", dmobs.deepclone(base_egg) )
|
||||
|
||||
-- Ice egg
|
||||
base_egg.tiles = {"dmobs_egg4.png"}
|
||||
minetest.register_node("mobs_doomed:dragon_egg_ice", mobs_doomed.deepclone(base_egg) )
|
||||
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"
|
||||
minetest.register_node("mobs_doomed:dragon_egg_great", mobs_doomed.deepclone(base_egg) )
|
||||
minetest.register_node("dmobs:dragon_egg_great", dmobs.deepclone(base_egg) )
|
||||
|
@ -9,7 +9,7 @@ local gdragon_base = {
|
||||
dogshoot_switch = 2,
|
||||
dogshoot_count = 0,
|
||||
dogshoot_count_max =5,
|
||||
arrow = "mobs_doomed:lightning",
|
||||
arrow = "dmobs:lightning",
|
||||
shoot_offset = 1,
|
||||
hp_min = 150,
|
||||
hp_max = 250,
|
||||
@ -39,13 +39,12 @@ local gdragon_base = {
|
||||
fly = true,
|
||||
fly_in = {"air","default:water_source","default:water_flowing", "default:lava_source","default:lava_flowing"},
|
||||
drops = {
|
||||
{name = "mobs_doomed:dragon_egg_great", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:dragon_egg_great", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
fall_speed = 0,
|
||||
stepheight = 10,
|
||||
water_damage = 2,
|
||||
lava_damage = 0,
|
||||
fire_damage = 0,
|
||||
light_damage = 0,
|
||||
view_range = 20,
|
||||
animation = {
|
||||
@ -63,13 +62,13 @@ local gdragon_base = {
|
||||
knock_back = 2,
|
||||
}
|
||||
|
||||
mobs:register_mob("mobs_doomed:dragon_great", mobs_doomed.deepclone(gdragon_base) )
|
||||
mobs:register_mob("dmobs:dragon_great", dmobs.deepclone(gdragon_base) )
|
||||
|
||||
gdragon_base.type = "npc"
|
||||
gdragon_base.attacks_monsters = true
|
||||
|
||||
gdragon_base.on_rightclick = mobs_doomed.dragon.ride
|
||||
gdragon_base.on_rightclick = dmobs.dragon.ride
|
||||
|
||||
gdragon_base.do_custom = mobs_doomed.dragon.do_custom
|
||||
gdragon_base.do_custom = dmobs.dragon.do_custom
|
||||
|
||||
mobs:register_mob("mobs_doomed:dragon_great_tame", mobs_doomed.deepclone(gdragon_base) )
|
||||
mobs:register_mob("dmobs:dragon_great_tame", dmobs.deepclone(gdragon_base) )
|
||||
|
@ -1,31 +1,31 @@
|
||||
--thanks to diriel, blert2112 and taikedz
|
||||
|
||||
if not mobs_doomed.dragon then
|
||||
mobs_doomed.dragon = {}
|
||||
end
|
||||
dmobs.dragon = {}
|
||||
|
||||
dofile(minetest.get_modpath("dmobs").."/dragons/piloting.lua")
|
||||
|
||||
local tamed_dragons = {}
|
||||
|
||||
--items and tools
|
||||
|
||||
minetest.register_craftitem("mobs_doomed:dragon_gem_lightning", {
|
||||
minetest.register_craftitem("dmobs:dragon_gem_lightning", {
|
||||
description = "Lightning Gem",
|
||||
inventory_image = "dmobs_gem_lightning.png"
|
||||
})
|
||||
minetest.register_craftitem("mobs_doomed:dragon_gem_ice", {
|
||||
minetest.register_craftitem("dmobs:dragon_gem_ice", {
|
||||
description = "Ice Gem",
|
||||
inventory_image = "dmobs_gem_ice.png"
|
||||
})
|
||||
minetest.register_craftitem("mobs_doomed:dragon_gem_fire", {
|
||||
minetest.register_craftitem("dmobs:dragon_gem_fire", {
|
||||
description = "Fire Gem",
|
||||
inventory_image = "dmobs_gem_fire.png"
|
||||
})
|
||||
minetest.register_craftitem("mobs_doomed:dragon_gem_poison", {
|
||||
minetest.register_craftitem("dmobs:dragon_gem_poison", {
|
||||
description = "Poison Gem",
|
||||
inventory_image = "dmobs_gem_poison.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mobs_doomed:dragon_gem", {
|
||||
minetest.register_craftitem("dmobs:dragon_gem", {
|
||||
description = "Dragon Gem",
|
||||
inventory_image = "dmobs_gem.png"
|
||||
})
|
||||
@ -36,19 +36,19 @@ minetest.register_craftitem("mobs_doomed:dragon_gem", {
|
||||
----------
|
||||
|
||||
-- Wild dragons
|
||||
mobs:register_egg("mobs_doomed:dragon", "Minor Dragon", "default_apple.png", 1)
|
||||
mobs:register_egg("mobs_doomed:dragon1", "Wild Fire Dragon", "default_apple.png", 1)
|
||||
mobs:register_egg("mobs_doomed:dragon2", "Wild Lightning Dragon", "dmobs_lightning.png", 1)
|
||||
mobs:register_egg("mobs_doomed:dragon3", "Wild Poison Dragon", "dmobs_poison.png", 1)
|
||||
mobs:register_egg("mobs_doomed:dragon4", "Wild Ice Dragon", "default_ice.png", 1)
|
||||
mobs:register_egg("mobs_doomed:dragon_great", "Boss Dragon", "dmobs_egg1.png", 1)
|
||||
mobs:register_egg("mobs_doomed:waterdragon", "Boss Waterdragon", "dmobs_egg4.png", 1)
|
||||
mobs:register_egg("mobs_doomed:wyvern", "Boss Wyvern", "dmobs_egg3.png", 1)
|
||||
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", "dmobs_lightning.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)
|
||||
|
||||
-- Tamed dragons
|
||||
mobs:register_egg("mobs_doomed:dragon_red", "Tamed Fire Dragon", "default_apple.png", 1)
|
||||
mobs:register_egg("mobs_doomed:dragon_black", "Tamed Lightning Dragon", "dmobs_lightning.png", 1)
|
||||
mobs:register_egg("mobs_doomed:dragon_green", "Tamed Poison Dragon", "dmobs_poison.png", 1)
|
||||
mobs:register_egg("mobs_doomed:dragon_blue", "Tamed Ice Dragon", "default_ice.png", 1)
|
||||
mobs:register_egg("mobs_doomed:dragon_great_tame", "Tamed Great Dragon", "default_lava_source_animated.png", 1)
|
||||
mobs:register_egg("dmobs:dragon_red", "Tamed Fire Dragon", "default_apple.png", 1)
|
||||
mobs:register_egg("dmobs:dragon_black", "Tamed Lightning Dragon", "dmobs_lightning.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)
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
|
||||
if not mobs_doomed.dragon then
|
||||
mobs_doomed.dragon = {}
|
||||
if not dmobs.dragon then
|
||||
dmobs.dragon = {}
|
||||
end
|
||||
|
||||
mobs_doomed.dragon.step_custom = function(self, dtime)
|
||||
dmobs.dragon.step_custom = function(self, dtime)
|
||||
if self.driver then
|
||||
mobs_doomed.object_fly(self, dtime, 10, true, "mobs_doomed:fire_plyr", "walk", "stand")
|
||||
object_fly(self, dtime, 10, true, "dmobs:fire_plyr", "walk", "stand")
|
||||
if self.state == "attack" then
|
||||
self.state = nil
|
||||
end
|
||||
@ -14,12 +14,12 @@ mobs_doomed.dragon.step_custom = function(self, dtime)
|
||||
return true
|
||||
end
|
||||
|
||||
mobs_doomed.dragon.ride = function(self, clicker)
|
||||
dmobs.dragon.ride = function(self, clicker)
|
||||
if self.tamed and self.owner == clicker:get_player_name() then
|
||||
local inv = clicker:get_inventory()
|
||||
|
||||
if self.driver and clicker == self.driver then
|
||||
mobs_doomed.object_detach(self, clicker, {x=1, y=0, z=1})
|
||||
object_detach(self, clicker, {x=1, y=0, z=1})
|
||||
|
||||
if inv:room_for_item("main", "mobs:saddle") then
|
||||
inv:add_item("main", "mobs:saddle")
|
||||
@ -29,7 +29,7 @@ mobs_doomed.dragon.ride = function(self, clicker)
|
||||
|
||||
elseif not self.driver then
|
||||
if clicker:get_wielded_item():get_name() == "mobs:saddle" then
|
||||
mobs_doomed.object_attach(self, clicker, {x=0, y=12, z=4}, {x=0, y=0, z=4})
|
||||
object_attach(self, clicker, {x=0, y=12, z=4}, {x=0, y=0, z=4})
|
||||
inv:remove_item("main", "mobs:saddle")
|
||||
end
|
||||
end
|
||||
@ -37,19 +37,19 @@ mobs_doomed.dragon.ride = function(self, clicker)
|
||||
end
|
||||
|
||||
|
||||
mobs_doomed.dragon.on_rc = function(self, clicker)
|
||||
dmobs.dragon.on_rc = function(self, clicker)
|
||||
if not clicker or not clicker:is_player() then
|
||||
return
|
||||
end
|
||||
if mobs:feed_tame(self, clicker, 1, false, false) then
|
||||
return
|
||||
end
|
||||
mobs_doomed.dragon.ride(self, clicker)
|
||||
dmobs.dragon.ride(self, clicker)
|
||||
end
|
||||
|
||||
mobs_doomed.dragon.do_custom = function(self, dtime)
|
||||
dmobs.dragon.do_custom = function(self, dtime)
|
||||
if self.driver then
|
||||
mobs_doomed.object_fly(self, dtime, 10, true, "mobs_doomed:fire_plyr", "walk", "stand")
|
||||
object_fly(self, dtime, 10, true, "dmobs:fire_plyr", "walk", "stand")
|
||||
|
||||
if self.state == "attack" then
|
||||
self.state = "idle"
|
||||
|
@ -1,6 +1,6 @@
|
||||
-- Waterdragon (Hydra)
|
||||
|
||||
mobs:register_mob("mobs_doomed:waterdragon", {
|
||||
mobs:register_mob("dmobs:waterdragon", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
attack_type = "dogshoot",
|
||||
@ -8,7 +8,7 @@ mobs:register_mob("mobs_doomed:waterdragon", {
|
||||
dogshoot_count = 0,
|
||||
dogshoot_count_max =5,
|
||||
shoot_interval = 2.5,
|
||||
arrow = "mobs_doomed:ice",
|
||||
arrow = "dmobs:ice",
|
||||
shoot_offset = 0,
|
||||
pathfinding = false,
|
||||
reach = 5,
|
||||
@ -35,8 +35,8 @@ mobs:register_mob("mobs_doomed:waterdragon", {
|
||||
run_velocity = 0.01,
|
||||
jump = false,
|
||||
drops = {
|
||||
{name = "mobs_doomed:dragon_gem_ice", chance = 1, min = 1, max = 1},
|
||||
{name = "mobs_doomed:dragon_gem_fire", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:dragon_gem_ice", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:dragon_gem_fire", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
@ -66,12 +66,12 @@ mobs:register_mob("mobs_doomed:waterdragon", {
|
||||
local obj, obj2, ent
|
||||
|
||||
-- add body and make it follow head
|
||||
obj = minetest.add_entity({x=pos.x+1, y=pos.y, z=pos.z}, "mobs_doomed:waterdragon_2")
|
||||
obj = minetest.add_entity({x=pos.x+1, y=pos.y, z=pos.z}, "dmobs:waterdragon_2")
|
||||
ent = obj:get_luaentity()
|
||||
ent.following = self.object
|
||||
|
||||
-- add body and make it follow previous body segment
|
||||
obj2 = minetest.add_entity({x=pos.x-1, y=pos.y, z=pos.z}, "mobs_doomed:waterdragon_2")
|
||||
obj2 = minetest.add_entity({x=pos.x-1, y=pos.y, z=pos.z}, "dmobs:waterdragon_2")
|
||||
ent = obj2:get_luaentity()
|
||||
ent.following = self.object
|
||||
end
|
||||
@ -80,7 +80,7 @@ mobs:register_mob("mobs_doomed:waterdragon", {
|
||||
|
||||
|
||||
|
||||
mobs:register_mob("mobs_doomed:waterdragon_2", {
|
||||
mobs:register_mob("dmobs:waterdragon_2", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
attack_type = "shoot",
|
||||
@ -88,8 +88,8 @@ mobs:register_mob("mobs_doomed:waterdragon_2", {
|
||||
dogshoot_count = 0,
|
||||
dogshoot_count_max =5,
|
||||
shoot_interval = 3,
|
||||
arrow = "mobs_doomed:ice",
|
||||
shoot_offset = -1,
|
||||
arrow = "dmobs:ice",
|
||||
shoot_offset = 0,
|
||||
pathfinding = false,
|
||||
reach = 5,
|
||||
damage = 2,
|
||||
@ -117,7 +117,6 @@ mobs:register_mob("mobs_doomed:waterdragon_2", {
|
||||
jump = false,
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
fire_damage = 4,
|
||||
light_damage = 0,
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
|
@ -1,4 +1,4 @@
|
||||
mobs:register_mob("mobs_doomed:wyvern", {
|
||||
mobs:register_mob("dmobs:wyvern", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
attacks_monsters = false,
|
||||
@ -9,7 +9,7 @@ mobs:register_mob("mobs_doomed:wyvern", {
|
||||
dogshoot_switch = 2,
|
||||
dogshoot_count = 0,
|
||||
dogshoot_count_max =5,
|
||||
arrow = "mobs_doomed:poison",
|
||||
arrow = "dmobs:poison",
|
||||
shoot_offset = 0.5,
|
||||
hp_min = 100,
|
||||
hp_max = 150,
|
||||
@ -33,8 +33,8 @@ mobs:register_mob("mobs_doomed:wyvern", {
|
||||
jump = true,
|
||||
fly = false,
|
||||
drops = {
|
||||
{name = "mobs_doomed:dragon_gem_poison", chance = 1, min = 1, max = 1},
|
||||
{name = "mobs_doomed:dragon_gem_lightning", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:dragon_gem_poison", chance = 1, min = 1, max = 1},
|
||||
{name = "dmobs:dragon_gem_lightning", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
sounds = {
|
||||
shoot_attack = "dmobs_poison",
|
||||
@ -42,7 +42,6 @@ mobs:register_mob("mobs_doomed:wyvern", {
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
view_range = 20,
|
||||
animation = {
|
||||
|
69
init.lua
69
init.lua
@ -1,42 +1,39 @@
|
||||
mobs_doomed = {}
|
||||
dmobs = {}
|
||||
|
||||
-- dmobs by D00Med
|
||||
|
||||
-- mounts api by D00Med and lib_mount api by blert2112
|
||||
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/api.lua")
|
||||
dofile(minetest.get_modpath("dmobs").."/api.lua")
|
||||
|
||||
-- Enable dragons (disable to remove tamed dragons and dragon bosses)
|
||||
mobs_doomed.dragons = minetest.settings:get_bool("mobs_doomed.dragons")
|
||||
if mobs_doomed.dragons == nil then mobs_doomed.dragons = true end
|
||||
dmobs.dragons = minetest.settings:get_bool("dmobs.dragons")
|
||||
if dmobs.dragons == nil then
|
||||
dmobs.dragons = true
|
||||
end
|
||||
dmobs.regulars = minetest.settings:get_bool("dmobs.regulars")
|
||||
if dmobs.regulars == nil then
|
||||
dmobs.regulars = true
|
||||
end
|
||||
|
||||
-- Enable regular mobs independient of dragons (if all disabled one dragon and some orcs will be enabled)
|
||||
mobs_doomed.regulars = minetest.settings:get_bool("mobs_doomed.regulars")
|
||||
if mobs_doomed.regulars == nil then mobs_doomed.regulars = true end
|
||||
|
||||
-- Enabling of NyanCat
|
||||
mobs_doomed.allow_nyanc = minetest.settings:get_bool("mobs_doomed.allow_nyanc")
|
||||
if mobs_doomed.allow_nyanc == nil then mobs_doomed.allow_nyanc = false end
|
||||
|
||||
-- Enable fireballs/explosions
|
||||
mobs_doomed.destructive = minetest.settings:get_bool("mobs_doomed.destructive")
|
||||
if mobs_doomed.destructive == nil then mobs_doomed.destructive = true end
|
||||
dmobs.destructive = minetest.settings:get_bool("dmobs.destructive") or false
|
||||
|
||||
-- Timer for the egg mechanics
|
||||
mobs_doomed.eggtimer = tonumber(minetest.settings:get("mobs_doomed.eggtimer") )
|
||||
if mobs_doomed.eggtimer == nil then mobs_doomed.eggtimer = 100 end
|
||||
dmobs.eggtimer = tonumber(minetest.settings:get("dmobs.eggtimer") ) or 100
|
||||
|
||||
|
||||
|
||||
-- Table cloning to reduce code repetition
|
||||
mobs_doomed.deepclone = function(t) -- deep-copy a table -- from https://gist.github.com/MihailJP/3931841
|
||||
dmobs.deepclone = function(t) -- deep-copy a table -- from https://gist.github.com/MihailJP/3931841
|
||||
if type(t) ~= "table" then return t end
|
||||
|
||||
local target = {}
|
||||
|
||||
for k, v in pairs(t) do
|
||||
if k ~= "__index" and type(v) == "table" then -- omit circular reference
|
||||
target[k] = mobs_doomed.deepclone(v)
|
||||
target[k] = dmobs.deepclone(v)
|
||||
else
|
||||
target[k] = v
|
||||
end
|
||||
@ -48,7 +45,7 @@ end
|
||||
|
||||
local function loadmob(mobname,dir)
|
||||
dir = dir or "/mobs/"
|
||||
dofile(minetest.get_modpath("mobs_doomed")..dir..mobname..".lua")
|
||||
dofile(minetest.get_modpath("dmobs")..dir..mobname..".lua")
|
||||
end
|
||||
|
||||
-- regular mobs
|
||||
@ -59,6 +56,7 @@ local mobslist = {
|
||||
"panda",
|
||||
"tortoise",
|
||||
"golem_friendly",
|
||||
"nyan",
|
||||
"gnorm",
|
||||
"hedgehog",
|
||||
"owl",
|
||||
@ -79,27 +77,18 @@ local mobslist = {
|
||||
"ogre",
|
||||
}
|
||||
|
||||
minetest.log("action","[mobs_doomed] nyancat enabled "..tostring(mobs_doomed.allow_nyanc))
|
||||
minetest.log("action","[mobs_doomed] dragons enabled "..tostring(mobs_doomed.dragons))
|
||||
minetest.log("action","[mobs_doomed] more animals "..tostring(mobs_doomed.regulars))
|
||||
minetest.log("action","[mobs_doomed] enable destructive fire "..tostring(mobs_doomed.destructive))
|
||||
minetest.log("action","[mobs_doomed] configured egg timer "..tostring(mobs_doomed.eggtimer))
|
||||
if mobs_doomed.regulars then
|
||||
if dmobs.regulars then
|
||||
for _,mobname in pairs(mobslist) do
|
||||
loadmob(mobname)
|
||||
end
|
||||
if mobs_doomed.allow_nyanc then
|
||||
loadmob("nyan")
|
||||
end
|
||||
end
|
||||
|
||||
---------------
|
||||
-- dragons!! --
|
||||
---------------
|
||||
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/dragons/piloting.lua")
|
||||
loadmob("dragon_normal","/dragons/")
|
||||
if mobs_doomed.dragons then
|
||||
if dmobs.dragons then
|
||||
loadmob("main","/dragons/")
|
||||
loadmob("dragon1","/dragons/")
|
||||
loadmob("dragon2","/dragons/")
|
||||
@ -109,26 +98,24 @@ if mobs_doomed.dragons then
|
||||
loadmob("water_dragon","/dragons/")
|
||||
loadmob("wyvern","/dragons/")
|
||||
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/dragons/eggs.lua")
|
||||
dofile(minetest.get_modpath("dmobs").."/dragons/eggs.lua")
|
||||
end
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/arrows/dragonfire.lua")
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/arrows/dragonarrows.lua")
|
||||
dofile(minetest.get_modpath("dmobs").."/arrows/dragonfire.lua")
|
||||
dofile(minetest.get_modpath("dmobs").."/arrows/dragonarrows.lua")
|
||||
|
||||
-- General arrow definitions
|
||||
|
||||
if mobs_doomed.destructive == true then
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/arrows/fire_explosive.lua")
|
||||
if dmobs.destructive == true then
|
||||
dofile(minetest.get_modpath("dmobs").."/arrows/fire_explosive.lua")
|
||||
else
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/arrows/fire.lua")
|
||||
dofile(minetest.get_modpath("dmobs").."/arrows/fire.lua")
|
||||
end
|
||||
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/nodes.lua")
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/arrows/sting.lua")
|
||||
dofile(minetest.get_modpath("dmobs").."/nodes.lua")
|
||||
dofile(minetest.get_modpath("dmobs").."/arrows/sting.lua")
|
||||
|
||||
-- Spawning
|
||||
|
||||
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/spawn.lua")
|
||||
dofile(minetest.get_modpath("mobs_doomed").."/saddle.lua")
|
||||
|
||||
print("[MOD] mobs_doomed loaded")
|
||||
dofile(minetest.get_modpath("dmobs").."/spawn.lua")
|
||||
dofile(minetest.get_modpath("dmobs").."/saddle.lua")
|
||||
|
@ -1,4 +1,4 @@
|
||||
mobs:register_mob("mobs_doomed:badger", {
|
||||
mobs:register_mob("dmobs:badger", {
|
||||
type = "animal",
|
||||
passive = false,
|
||||
reach = 1,
|
||||
@ -25,7 +25,6 @@ mobs:register_mob("mobs_doomed:badger", {
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
light_damage = 0,
|
||||
fire_damage = 2,
|
||||
fall_damage = 1,
|
||||
fall_speed = -8,
|
||||
fear_height = 4,
|
||||
@ -42,6 +41,7 @@ mobs:register_mob("mobs_doomed:badger", {
|
||||
run_end = 58,
|
||||
punch_start = 60,
|
||||
punch_end = 80,
|
||||
|
||||
},
|
||||
on_rightclick = function(self, clicker)
|
||||
|
||||
@ -54,4 +54,4 @@ mobs:register_mob("mobs_doomed:badger", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:badger", "Badger", "default_obsidian.png", 1)
|
||||
mobs:register_egg("dmobs:badger", "Badger", "default_obsidian.png", 1)
|
||||
|
@ -5,21 +5,21 @@ minetest.register_abm({
|
||||
nodenames = {"flowers:flower_rose", "flowers:flower_tulip",
|
||||
"flowers:flower_dandelion_yellow", "flowers:flower_viola",
|
||||
"flowers:flower_dandelion_white", "flowers:flower_geranium"},
|
||||
interval = 10,
|
||||
interval = 10.0,
|
||||
chance = 10,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
minetest.add_entity({x=pos.x,y=pos.y+0.3,z=pos.z}, "mobs_doomed:butterfly")
|
||||
minetest.add_entity({x=pos.x,y=pos.y+0.3,z=pos.z}, "dmobs:butterfly")
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_entity("mobs_doomed:butterfly", {
|
||||
minetest.register_entity("dmobs:butterfly", {
|
||||
visual = "mesh",
|
||||
mesh = "butterfly.b3d",
|
||||
physical = true,
|
||||
textures = {"dmobs_butterfly.png",},
|
||||
visual_size = {x=0.3, y=0.3},
|
||||
on_activate = function(self)
|
||||
local num = math.random(1,4)
|
||||
num = math.random(1,4)
|
||||
self.object:set_properties({textures = {"dmobs_butterfly"..num..".png",},})
|
||||
self.object:set_animation({x=1, y=10}, 20, 0)
|
||||
self.object:set_yaw(math.pi+num)
|
||||
|
@ -1,12 +1,4 @@
|
||||
local followf = {}
|
||||
|
||||
-- detect common minetest famous mobs
|
||||
if minetest.get_modpath("farming") then
|
||||
table.insert(followf, "farming:wheat")
|
||||
table.insert(followf, "farming:seed_cotton")
|
||||
end
|
||||
|
||||
mobs:register_mob("mobs_doomed:elephant", {
|
||||
mobs:register_mob("dmobs:elephant", {
|
||||
type = "animal",
|
||||
passive = false,
|
||||
reach = 1,
|
||||
@ -29,7 +21,6 @@ mobs:register_mob("mobs_doomed:elephant", {
|
||||
jump = false,
|
||||
water_damage = 2,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
fall_damage = 1,
|
||||
fall_speed = -20, -- extra heavy!
|
||||
@ -37,10 +28,10 @@ mobs:register_mob("mobs_doomed:elephant", {
|
||||
replace_rate = 10,
|
||||
replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "ethereal:bamboo"},
|
||||
replace_with = "air",
|
||||
follow = followf,
|
||||
follow = {"farming:wheat"},
|
||||
view_range = 14,
|
||||
drops = {
|
||||
{name = "mobs:meat_raw", chance = 2, min = 1, max = 3},
|
||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
animation = {
|
||||
speed_normal = 5,
|
||||
@ -64,4 +55,4 @@ mobs:register_mob("mobs_doomed:elephant", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:elephant", "Elephant", "default_dry_grass.png", 1)
|
||||
mobs:register_egg("dmobs:elephant", "Elephant", "default_dry_grass.png", 1)
|
||||
|
19
mobs/fox.lua
19
mobs/fox.lua
@ -1,13 +1,5 @@
|
||||
local followf = {}
|
||||
|
||||
table.insert(followf, "mobs:meat_raw")
|
||||
|
||||
if minetest.get_modpath("mobs_animal") then
|
||||
table.insert(followf, "mobs_animal:muttom_raw")
|
||||
end
|
||||
|
||||
-- Fox
|
||||
mobs:register_mob("mobs_doomed:fox", {
|
||||
mobs:register_mob("dmobs:fox", {
|
||||
type = "monster",
|
||||
attacks_monsters = true,
|
||||
reach = 1,
|
||||
@ -17,8 +9,8 @@ mobs:register_mob("mobs_doomed:fox", {
|
||||
hp_max = 52,
|
||||
armor = 130,
|
||||
collisionbox = {-0.4, -0.6, -0.4, 0.3, 0.3, 0.3},
|
||||
-- runaway = true,
|
||||
-- pathfinding = true,
|
||||
runaway = true,
|
||||
pathfinding = true,
|
||||
visual = "mesh",
|
||||
mesh = "fox.b3d",
|
||||
textures = {
|
||||
@ -41,13 +33,12 @@ mobs:register_mob("mobs_doomed:fox", {
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
light_damage = 0,
|
||||
fire_damage = 2,
|
||||
fall_damage = 1,
|
||||
fear_height = 4,
|
||||
replace_rate = 10,
|
||||
replace_what = {"farming:wheat_5", "default:fence_wood", "default:grass_5", "default:dirt_with_grass"},
|
||||
replace_with = "air",
|
||||
follow = followf,
|
||||
follow = {"mobs:meat_raw"},
|
||||
view_range = 14,
|
||||
animation = {
|
||||
speed_normal = 6,
|
||||
@ -72,4 +63,4 @@ mobs:register_mob("mobs_doomed:fox", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:fox", "Fox", "wool_orange.png", 1)
|
||||
mobs:register_egg("dmobs:fox", "Fox", "wool_orange.png", 1)
|
||||
|
@ -1,4 +1,4 @@
|
||||
mobs:register_mob("mobs_doomed:gnorm", {
|
||||
mobs:register_mob("dmobs:gnorm", {
|
||||
type = "npc",
|
||||
can_dig = true,
|
||||
passive = true,
|
||||
@ -23,15 +23,10 @@ mobs:register_mob("mobs_doomed:gnorm", {
|
||||
jump = true,
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
fall_damage = 1,
|
||||
fall_speed = -6,
|
||||
fear_height = 4,
|
||||
drops = {
|
||||
{name = "default:wood", chance = 1, min = 1, max = 1},
|
||||
{name = "default:apple", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
replace_rate = 10,
|
||||
replace_what = {"default:apple", "default:stone", "default:stone_with_coal", "default:fence_wood"},
|
||||
replace_with = "air",
|
||||
@ -61,4 +56,4 @@ mobs:register_mob("mobs_doomed:gnorm", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:gnorm", "Gnorm", "default_dirt.png", 1)
|
||||
mobs:register_egg("dmobs:gnorm", "Gnorm", "default_dirt.png", 1)
|
||||
|
@ -1,7 +1,7 @@
|
||||
--stone golem
|
||||
|
||||
|
||||
mobs:register_mob("mobs_doomed:golem", {
|
||||
mobs:register_mob("dmobs:golem", {
|
||||
type = "monster",
|
||||
reach = 3,
|
||||
damage = 2,
|
||||
@ -22,12 +22,10 @@ mobs:register_mob("mobs_doomed:golem", {
|
||||
run_velocity = 2.5,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "default:stone", chance = 1, min = 1, max = 5},
|
||||
{name = "mobs_doomed:golemstone", chance = 30, min = 1, max = 1},
|
||||
{name = "dmobs:golemstone", chance = 30, min = 1, max = 1},
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 1,
|
||||
light_damage = 1,
|
||||
fall_damage = 0,
|
||||
fear_height = 10,
|
||||
@ -47,4 +45,4 @@ mobs:register_mob("mobs_doomed:golem", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:golem", "Stone Golem", "default_stone.png", 1)
|
||||
mobs:register_egg("dmobs:golem", "Stone Golem", "default_stone.png", 1)
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
mobs:register_mob("mobs_doomed:golem_friendly", {
|
||||
mobs:register_mob("dmobs:golem_friendly", {
|
||||
type = "npc",
|
||||
reach = 3,
|
||||
damage = 2,
|
||||
@ -15,9 +15,6 @@ mobs:register_mob("mobs_doomed:golem_friendly", {
|
||||
{"dmobs_golem.png"},
|
||||
},
|
||||
follow = "default:cobble",
|
||||
drops = {
|
||||
{name = "default:cobble", chance = 1, min = 1, max = 3},
|
||||
},
|
||||
blood_texture = "default_stone.png",
|
||||
visual_size = {x=1, y=1},
|
||||
makes_footstep_sound = true,
|
||||
@ -26,7 +23,6 @@ mobs:register_mob("mobs_doomed:golem_friendly", {
|
||||
jump = true,
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
fall_damage = 0,
|
||||
fear_height = 10,
|
||||
@ -45,4 +41,4 @@ mobs:register_mob("mobs_doomed:golem_friendly", {
|
||||
},
|
||||
})
|
||||
|
||||
mobs:register_egg("mobs_doomed:golem_friendly", "Stone Golem (friendly)", "default_stone.png", 1)
|
||||
mobs:register_egg("dmobs:golem_friendly", "Stone Golem (friendly)", "default_stone.png", 1)
|
||||
|
@ -1,14 +1,4 @@
|
||||
|
||||
local followf = {}
|
||||
|
||||
-- detect common minetest famous mobs
|
||||
if minetest.get_modpath("farming") then
|
||||
table.insert(followf, "farming:bread")
|
||||
table.insert(followf, "farming:wheat")
|
||||
table.insert(followf, "farming:seed_cotton")
|
||||
end
|
||||
|
||||
mobs:register_mob("mobs_doomed:hedgehog", {
|
||||
mobs:register_mob("dmobs:hedgehog", {
|
||||
type = "animal",
|
||||
passive = true,
|
||||
hp_min = 12,
|
||||
@ -29,16 +19,12 @@ mobs:register_mob("mobs_doomed:hedgehog", {
|
||||
jump_height = 0.6,
|
||||
water_damage = 2,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
fall_damage = 1,
|
||||
fall_speed = -6,
|
||||
fear_height = 4,
|
||||
view_range = 14,
|
||||
follow = followf,
|
||||
drops = {
|
||||
{name = "mobs:meat_raw", chance = 2, min = 1, max = 3},
|
||||
},
|
||||
follow = {"farming:bread"},
|
||||
animation = {
|
||||
speed_normal = 5,
|
||||
speed_run = 10,
|
||||
@ -61,4 +47,4 @@ mobs:register_mob("mobs_doomed:hedgehog", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:hedgehog", "Hedgehog", "wool_brown.png", 1)
|
||||
mobs:register_egg("dmobs:hedgehog", "Hedgehog", "wool_brown.png", 1)
|
||||
|
@ -1,4 +1,4 @@
|
||||
mobs:register_mob("mobs_doomed:nyan", {
|
||||
mobs:register_mob("dmobs:nyan", {
|
||||
type = "animal",
|
||||
passive = true,
|
||||
reach = 4,
|
||||
@ -12,7 +12,7 @@ mobs:register_mob("mobs_doomed:nyan", {
|
||||
textures = {
|
||||
{"dmobs_nyancat.png"},
|
||||
},
|
||||
jump = true,
|
||||
jump = true,
|
||||
fly = true,
|
||||
fall_speed = 0,
|
||||
stepheight = 1.5,
|
||||
@ -25,11 +25,10 @@ mobs:register_mob("mobs_doomed:nyan", {
|
||||
run_chance = 20,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
|
||||
{name = "default:nyan_cat", chance = 2, min = 1, max = 1},
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 1,
|
||||
light_damage = 0,
|
||||
follow = {"default:mese"},
|
||||
view_range = 14,
|
||||
@ -45,7 +44,7 @@ mobs:register_mob("mobs_doomed:nyan", {
|
||||
|
||||
},
|
||||
do_custom = function(self)
|
||||
local apos = self.object:get_pos(); if not apos then return end
|
||||
local apos = self.object:get_pos()
|
||||
local vec = self.object:get_velocity()
|
||||
local part = minetest.add_particlespawner({
|
||||
amount = 5,
|
||||
@ -76,4 +75,4 @@ mobs:register_mob("mobs_doomed:nyan", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:nyan", "Nyan Cat", "wool_pink.png", 1)
|
||||
mobs:register_egg("dmobs:nyan", "Nyan Cat", "wool_pink.png", 1)
|
||||
|
@ -1,5 +1,5 @@
|
||||
-- Ogre
|
||||
mobs:register_mob("mobs_doomed:ogre", {
|
||||
mobs:register_mob("dmobs:ogre", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
reach = 2,
|
||||
@ -26,7 +26,6 @@ mobs:register_mob("mobs_doomed:ogre", {
|
||||
rotate = 180,
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
fall_damage = 1,
|
||||
fall_speed = -14,
|
||||
@ -43,7 +42,8 @@ mobs:register_mob("mobs_doomed:ogre", {
|
||||
run_end = 38,
|
||||
punch_start = 70,
|
||||
punch_end = 100,
|
||||
|
||||
},
|
||||
})
|
||||
|
||||
mobs:register_egg("mobs_doomed:ogre", "Ogre", "default_desert_sand.png", 1)
|
||||
mobs:register_egg("dmobs:ogre", "Ogre", "default_desert_sand.png", 1)
|
||||
|
10
mobs/orc.lua
10
mobs/orc.lua
@ -1,6 +1,6 @@
|
||||
|
||||
-- Orc
|
||||
mobs:register_mob("mobs_doomed:orc", {
|
||||
mobs:register_mob("dmobs:orc", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
reach = 1,
|
||||
@ -26,7 +26,6 @@ mobs:register_mob("mobs_doomed:orc", {
|
||||
jump = true,
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
fall_damage = 1,
|
||||
fall_speed = -13,
|
||||
@ -43,11 +42,12 @@ mobs:register_mob("mobs_doomed:orc", {
|
||||
run_end = 18,
|
||||
punch_start = 20,
|
||||
punch_end = 30,
|
||||
|
||||
},
|
||||
})
|
||||
|
||||
-- Orc (Redesign)
|
||||
mobs:register_mob("mobs_doomed:orc2", {
|
||||
mobs:register_mob("dmobs:orc2", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
reach = 1,
|
||||
@ -94,5 +94,5 @@ mobs:register_mob("mobs_doomed:orc2", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:orc2", "Morgul Orc", "default_desert_sand.png", 1) -- new and improved, hey
|
||||
mobs:register_egg("mobs_doomed:orc", "Orc", "default_desert_sand.png", 1)
|
||||
mobs:register_egg("dmobs:orc2", "Morgul Orc", "default_desert_sand.png", 1) -- new and improved, hey
|
||||
mobs:register_egg("dmobs:orc", "Orc", "default_desert_sand.png", 1)
|
||||
|
58
mobs/owl.lua
58
mobs/owl.lua
@ -1,47 +1,4 @@
|
||||
local follow = {}
|
||||
|
||||
-- detect common minetest famous mobs
|
||||
if minetest.get_modpath("farming") then
|
||||
table.insert(follow, "farming:seed_wheat")
|
||||
table.insert(follow, "farming:seed_cotton")
|
||||
end
|
||||
if minetest.get_modpath("butterflies") then
|
||||
table.insert(follow, "butterflies:butterfly_red")
|
||||
table.insert(follow, "butterflies:butterfly_violet")
|
||||
table.insert(follow, "butterflies:butterfly_white")
|
||||
end
|
||||
if minetest.get_modpath("fireflies") then
|
||||
table.insert(follow, "fireflies:firefly")
|
||||
end
|
||||
if minetest.get_modpath("mobs_animal") then
|
||||
table.insert(follow, "mobs_animal:rat")
|
||||
table.insert(follow, "mobs_animal:bee")
|
||||
table.insert(follow, "mobs_animal:bunny")
|
||||
table.insert(follow, "mobs_animal:chicken")
|
||||
table.insert(follow, "mobs_animal:muttom_raw")
|
||||
end
|
||||
-- compatibility with those made specially for other games
|
||||
if minetest.get_modpath("mobs_bugslive") then
|
||||
table.insert(follow, "mobs_bugslive:bug")
|
||||
end
|
||||
if minetest.get_modpath("mobs_butterfly") then
|
||||
table.insert(follow, "mobs_butterfly:butterfly")
|
||||
end
|
||||
if minetest.get_modpath("mobs_fish") then
|
||||
table.insert(follow, "mobs_fish:tropical")
|
||||
table.insert(follow, "mobs_fish:clownfish")
|
||||
end
|
||||
if minetest.get_modpath("mobs_better_rat") then
|
||||
table.insert(follow, "mobs_better_rat:rat")
|
||||
end
|
||||
if minetest.get_modpath("mobs_bat") then
|
||||
table.insert(follow, "mobs_bat:bat")
|
||||
end
|
||||
if minetest.get_modpath("mobs_birds") then
|
||||
table.insert(follow, "mobs_birds:bird_sm")
|
||||
end
|
||||
|
||||
mobs:register_mob("mobs_doomed:owl", {
|
||||
mobs:register_mob("dmobs:owl", {
|
||||
type = "animal",
|
||||
passive = true,
|
||||
hp_min = 12,
|
||||
@ -59,15 +16,10 @@ mobs:register_mob("mobs_doomed:owl", {
|
||||
walk_velocity = 0,
|
||||
run_velocity = 0,
|
||||
jump = false,
|
||||
drops = {
|
||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
water_damage = 2,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
view_range = 1,
|
||||
follow=follow,
|
||||
do_custom = function(self)
|
||||
local daytime = minetest.get_timeofday()*24000
|
||||
if daytime <=6000 then
|
||||
@ -82,17 +34,13 @@ mobs:register_mob("mobs_doomed:owl", {
|
||||
})
|
||||
end
|
||||
end,
|
||||
on_rightclick = function(self, clicker)
|
||||
if mobs:feed_tame(self, clicker, 8, true, true) then return end
|
||||
if mobs:protect(self, clicker) then return end
|
||||
mobs:capture_mob(self, clicker, 0, 50, 5, false, nil)
|
||||
end,
|
||||
animation = {
|
||||
speed_normal = 1,
|
||||
walk_start = 1,
|
||||
walk_end = 50,
|
||||
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:owl", "Owl", "default_tree.png", 1)
|
||||
mobs:register_egg("dmobs:owl", "Owl", "default_tree.png", 1)
|
||||
|
@ -1,6 +1,6 @@
|
||||
|
||||
|
||||
mobs:register_mob("mobs_doomed:panda", {
|
||||
mobs:register_mob("dmobs:panda", {
|
||||
type = "animal",
|
||||
passive = false,
|
||||
reach = 1,
|
||||
@ -26,7 +26,6 @@ mobs:register_mob("mobs_doomed:panda", {
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
fall_damage = 1,
|
||||
fall_speed = -10,
|
||||
@ -35,10 +34,7 @@ mobs:register_mob("mobs_doomed:panda", {
|
||||
replace_rate = 10,
|
||||
replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "ethereal:bamboo"},
|
||||
replace_with = "air",
|
||||
follow = {
|
||||
{"default:papyrus"},
|
||||
{"default:apple"}
|
||||
},
|
||||
follow = {"default:papyrus"},
|
||||
view_range = 14,
|
||||
animation = {
|
||||
speed_normal = 6,
|
||||
@ -64,4 +60,4 @@ mobs:register_mob("mobs_doomed:panda", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:panda", "Panda", "default_papyrus.png", 1)
|
||||
mobs:register_egg("dmobs:panda", "Panda", "default_papyrus.png", 1)
|
||||
|
11
mobs/pig.lua
11
mobs/pig.lua
@ -1,4 +1,4 @@
|
||||
mobs:register_mob("mobs_doomed:pig", {
|
||||
mobs:register_mob("dmobs:pig", {
|
||||
type = "animal",
|
||||
passive = true,
|
||||
reach = 4,
|
||||
@ -41,13 +41,8 @@ mobs:register_mob("mobs_doomed:pig", {
|
||||
end,
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
follow = {
|
||||
{"default:apple"},
|
||||
{"default:leaves"},
|
||||
{"mobs:meat_raw"},
|
||||
},
|
||||
follow = {"default:apple"},
|
||||
view_range = 14,
|
||||
animation = {
|
||||
speed_normal = 10,
|
||||
@ -71,4 +66,4 @@ mobs:register_mob("mobs_doomed:pig", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:pig", "flying Pig", "wool_pink.png", 1)
|
||||
mobs:register_egg("dmobs:pig", "flying Pig", "wool_pink.png", 1)
|
||||
|
@ -40,12 +40,8 @@ local pigdef = {
|
||||
end,
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
follow = {
|
||||
{"default:apple"},
|
||||
{"default:leaves"},
|
||||
},
|
||||
follow = {"default:apple"},
|
||||
view_range = 14,
|
||||
animation = {
|
||||
speed_normal = 10,
|
||||
@ -68,12 +64,12 @@ local pigdef = {
|
||||
end,
|
||||
}
|
||||
|
||||
if mobs_doomed.destructive then
|
||||
if dmobs.destructive then
|
||||
pigdef.sounds.explode = "tnt_explode"
|
||||
pigdef.attack_type = "explode"
|
||||
end
|
||||
|
||||
mobs:register_mob("mobs_doomed:pig_evil", pigdef)
|
||||
mobs:register_mob("dmobs:pig_evil", pigdef)
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:pig_evil", "Kamikaze Pig", "wool_pink.png", 1)
|
||||
mobs:register_egg("dmobs:pig_evil", "Kamikaze Pig", "wool_pink.png", 1)
|
||||
|
20
mobs/rat.lua
20
mobs/rat.lua
@ -1,19 +1,6 @@
|
||||
--Rat
|
||||
|
||||
local followf = {}
|
||||
|
||||
table.insert(followf, "group:food_cheese")
|
||||
|
||||
-- detect common minetest famous mobs
|
||||
if minetest.get_modpath("farming") then
|
||||
table.insert(followf, "farming:wheat")
|
||||
end
|
||||
if minetest.get_modpath("mobs_animal") then
|
||||
table.insert(followf, "mobs_animal:muttom_raw")
|
||||
table.insert(followf, "mobs:meat_raw")
|
||||
end
|
||||
|
||||
mobs:register_mob("mobs_doomed:rat", {
|
||||
mobs:register_mob("dmobs:rat", {
|
||||
type = "monster",
|
||||
reach = 2,
|
||||
damage = 2,
|
||||
@ -39,14 +26,13 @@ mobs:register_mob("mobs_doomed:rat", {
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
fall_damage = 1,
|
||||
fear_height = 5,
|
||||
replace_rate = 10,
|
||||
replace_what = {"farming:wheat_5", "farming:wheat_4", "farming:wheat_2", "farming:wheat_3"},
|
||||
replace_with = "air",
|
||||
follow = followf,
|
||||
follow = {"mobs_animal:cheese"},
|
||||
view_range = 14,
|
||||
animation = {
|
||||
speed_normal = 10,
|
||||
@ -63,4 +49,4 @@ mobs:register_mob("mobs_doomed:rat", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:rat", "Giant Rat", "wool_grey.png", 1)
|
||||
mobs:register_egg("dmobs:rat", "Giant Rat", "wool_grey.png", 1)
|
||||
|
@ -1,13 +1,7 @@
|
||||
--skeleton
|
||||
|
||||
local dropsf = {}
|
||||
|
||||
-- detect common minetest famous mobs
|
||||
if minetest.get_modpath("bones") then
|
||||
dropsf = {name = "bones:bones", chance = 5, min = 3, max = 6}
|
||||
end
|
||||
|
||||
mobs:register_mob("mobs_doomed:skeleton", {
|
||||
mobs:register_mob("dmobs:skeleton", {
|
||||
type = "monster",
|
||||
reach = 3,
|
||||
damage = 2,
|
||||
@ -27,10 +21,11 @@ mobs:register_mob("mobs_doomed:skeleton", {
|
||||
walk_velocity = 1,
|
||||
run_velocity = 2.5,
|
||||
jump = true,
|
||||
drops = dropsf,
|
||||
drops = {
|
||||
{name = "bones:bones", chance = 5, min = 3, max = 6},
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 1,
|
||||
light_damage = 1,
|
||||
fall_damage = 0,
|
||||
fear_height = 10,
|
||||
@ -50,4 +45,4 @@ mobs:register_mob("mobs_doomed:skeleton", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:skeleton", "Skeleton", "default_dirt.png", 1)
|
||||
mobs:register_egg("dmobs:skeleton", "Skeleton", "default_dirt.png", 1)
|
||||
|
@ -1,16 +1,5 @@
|
||||
|
||||
local dropstor
|
||||
|
||||
dropstor = {{name = "default:stick", chance = 1, min = 1, max = 1},}
|
||||
|
||||
if minetest.get_modpath("farming") then
|
||||
dropstor = {
|
||||
{name = "default:stick", chance = 1, min = 1, max = 1},
|
||||
{name = "farming:string", chance = 2, min = 0, max = 1},
|
||||
}
|
||||
end
|
||||
|
||||
mobs:register_mob("mobs_doomed:tortoise", {
|
||||
mobs:register_mob("dmobs:tortoise", {
|
||||
type = "animal",
|
||||
passive = false,
|
||||
reach = 1,
|
||||
@ -33,18 +22,16 @@ mobs:register_mob("mobs_doomed:tortoise", {
|
||||
jump = false,
|
||||
jump_height = 0.5,
|
||||
floats = true,
|
||||
drops = dropstor,
|
||||
drops = {
|
||||
{name = "default:stick", chance = 1, min = 1, max = 1},
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
fall_damage = 1,
|
||||
fall_speed = -10,
|
||||
fear_height = 4,
|
||||
follow = {
|
||||
{"default:papyrus"},
|
||||
{"default:leaves"}
|
||||
},
|
||||
follow = {"default:papyrus"},
|
||||
view_range = 14,
|
||||
animation = {
|
||||
speed_normal = 6,
|
||||
@ -63,9 +50,9 @@ mobs:register_mob("mobs_doomed:tortoise", {
|
||||
return
|
||||
end
|
||||
|
||||
mobs:capture_mob(self, clicker, 0, 50, 80, false, nil)
|
||||
mobs:capture_mob(self, clicker, 30, 50, 80, false, nil)
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:tortoise", "Tortoise", "default_grass.png", 1)
|
||||
mobs:register_egg("dmobs:tortoise", "Tortoise", "default_grass.png", 1)
|
||||
|
@ -1,6 +1,6 @@
|
||||
-- Treeman
|
||||
|
||||
mobs:register_mob("mobs_doomed:treeman", {
|
||||
mobs:register_mob("dmobs:treeman", {
|
||||
type = "monster",
|
||||
reach = 3,
|
||||
damage = 2,
|
||||
@ -25,8 +25,7 @@ mobs:register_mob("mobs_doomed:treeman", {
|
||||
{name = "default:tree", chance = 5, min = 3, max = 6},
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 4,
|
||||
fire_damage = 3,
|
||||
lava_damage = 2,
|
||||
light_damage = 0,
|
||||
fall_damage = 1,
|
||||
fear_height = 10,
|
||||
@ -46,4 +45,4 @@ mobs:register_mob("mobs_doomed:treeman", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:treeman", "Treeman", "default_tree.png", 1)
|
||||
mobs:register_egg("dmobs:treeman", "Treeman", "default_tree.png", 1)
|
||||
|
@ -1,5 +1,5 @@
|
||||
--Wasps!
|
||||
mobs:register_mob("mobs_doomed:wasp", {
|
||||
mobs:register_mob("dmobs:wasp", {
|
||||
type = "monster",
|
||||
reach = 1,
|
||||
damage = 2,
|
||||
@ -27,7 +27,6 @@ mobs:register_mob("mobs_doomed:wasp", {
|
||||
jump = true,
|
||||
water_damage = 2,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
view_range = 14,
|
||||
animation = {
|
||||
@ -45,15 +44,15 @@ mobs:register_mob("mobs_doomed:wasp", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:wasp", "Wasp", "dmobs_wasp_bg.png", 1)
|
||||
mobs:register_egg("dmobs:wasp", "Wasp", "dmobs_wasp_bg.png", 1)
|
||||
|
||||
mobs:register_mob("mobs_doomed:wasp_leader", {
|
||||
mobs:register_mob("dmobs:wasp_leader", {
|
||||
type = "monster",
|
||||
reach = 1,
|
||||
damage = 2,
|
||||
attack_type = "shoot",
|
||||
shoot_interval = 1,
|
||||
arrow = "mobs_doomed:sting",
|
||||
arrow = "dmobs:sting",
|
||||
shoot_offset = 0,
|
||||
hp_min = 82,
|
||||
hp_max = 122,
|
||||
@ -83,13 +82,12 @@ mobs:register_mob("mobs_doomed:wasp_leader", {
|
||||
do_custom = function(self)
|
||||
if math.random(1, 500) >= 500 then
|
||||
local pos = self.object:get_pos()
|
||||
if not pos then return end
|
||||
minetest.add_entity(pos, "mobs_doomed:wasp")
|
||||
minetest.add_entity(pos, "dmobs:wasp")
|
||||
end
|
||||
end,
|
||||
replace_rate = 700,
|
||||
replace_what = {"air"},
|
||||
replace_with = "mobs_doomed:hive",
|
||||
replace_with = "dmobs:hive",
|
||||
water_damage = 2,
|
||||
lava_damage = 2,
|
||||
light_damage = 0,
|
||||
@ -109,4 +107,4 @@ mobs:register_mob("mobs_doomed:wasp_leader", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:wasp_leader", "King of Sting", "dmobs_wasp_bg.png", 1)
|
||||
mobs:register_egg("dmobs:wasp_leader", "King of Sting", "dmobs_wasp_bg.png", 1)
|
||||
|
@ -1,4 +1,4 @@
|
||||
mobs:register_mob("mobs_doomed:whale", {
|
||||
mobs:register_mob("dmobs:whale", {
|
||||
type = "animal",
|
||||
passive = false,
|
||||
reach = 1,
|
||||
@ -26,7 +26,6 @@ mobs:register_mob("mobs_doomed:whale", {
|
||||
fly_in = "default:water_source",
|
||||
water_damage = 0,
|
||||
lava_damage = 2,
|
||||
fire_damage = 2,
|
||||
light_damage = 0,
|
||||
follow = {"fishing:fish_cooked"},
|
||||
view_range = 14,
|
||||
@ -60,4 +59,4 @@ mobs:register_mob("mobs_doomed:whale", {
|
||||
})
|
||||
|
||||
|
||||
mobs:register_egg("mobs_doomed:whale", "Whale", "default_water.png", 1)
|
||||
mobs:register_egg("dmobs:whale", "Whale", "default_water.png", 1)
|
||||
|
5
mod.conf
5
mod.conf
@ -1,4 +1 @@
|
||||
name = mobs_doomed
|
||||
depends = default, mobs, wool, farming
|
||||
optional_depends = bones, ethereal, caverealms, mobs_animal, player_api
|
||||
description = MOBS for more monsters like dragons, orcs, ogres, elephans, etc
|
||||
name = dmobs
|
||||
|
14
nodes.lua
14
nodes.lua
@ -2,21 +2,21 @@
|
||||
|
||||
--wasps nest
|
||||
|
||||
minetest.register_node("mobs_doomed:hive", {
|
||||
minetest.register_node("dmobs:hive", {
|
||||
description = "Wasp Nest",
|
||||
tiles = {"dmobs_hive.png"},
|
||||
groups = {crumbly=1, oddly_breakable_by_hand=1, falling_node=1, flammable=1},
|
||||
on_destruct = function(pos, oldnode)
|
||||
minetest.add_entity(pos, "mobs_doomed:wasp")
|
||||
minetest.add_entity(pos, "mobs_doomed:wasp")
|
||||
minetest.add_entity(pos, "mobs_doomed:wasp")
|
||||
minetest.add_entity(pos, "mobs_doomed:wasp")
|
||||
minetest.add_entity(pos, "dmobs:wasp")
|
||||
minetest.add_entity(pos, "dmobs:wasp")
|
||||
minetest.add_entity(pos, "dmobs:wasp")
|
||||
minetest.add_entity(pos, "dmobs:wasp")
|
||||
end,
|
||||
})
|
||||
|
||||
--golem
|
||||
|
||||
minetest.register_node("mobs_doomed:golemstone", {
|
||||
minetest.register_node("dmobs:golemstone", {
|
||||
description = "golem stone",
|
||||
tiles = {"dmobs_golem_stone.png",},
|
||||
groups = {cracky=1},
|
||||
@ -25,7 +25,7 @@ minetest.register_node("mobs_doomed:golemstone", {
|
||||
local node2 = minetest.get_node({x=pos.x, y=pos.y-2, z=pos.z}).name
|
||||
local node3 = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name
|
||||
if node1 == "default:stone" and node2 == "default:stone" and node3 == "air" then
|
||||
minetest.add_entity(pos, "mobs_doomed:golem_friendly")
|
||||
minetest.add_entity(pos, "dmobs:golem_friendly")
|
||||
minetest.remove_node({x=pos.x, y=pos.y-1, z=pos.z})
|
||||
minetest.remove_node({x=pos.x, y=pos.y-2, z=pos.z})
|
||||
minetest.remove_node({x=pos.x, y=pos.y, z=pos.z})
|
||||
|
BIN
screenshot.png
BIN
screenshot.png
Binary file not shown.
Before Width: | Height: | Size: 642 KiB |
Binary file not shown.
Before Width: | Height: | Size: 888 KiB |
@ -1,15 +0,0 @@
|
||||
# if enabled will spawn most new common animals from this mod
|
||||
mobs_doomed.regulars (Enable most common new animals) bool true
|
||||
|
||||
# Timer for the egg mechanics, default 100
|
||||
mobs_doomed.eggtimer (Spawn timer eggs Mobs) int 100
|
||||
|
||||
# if enabled be destructive for structure nodes each fireball or explotion from mobs
|
||||
mobs_doomed.destructive (Fire balls will be destructive) bool true
|
||||
|
||||
# If disabled only a common dragon will be spawned
|
||||
mobs_doomed.dragons (Enable all the dragons not only common) bool true
|
||||
|
||||
# if enabled will load a mobs very ugly and stupid.. nyancat.. a pig that fly and leve arciris
|
||||
mobs_doomed.allow_nyanc (Enable the stupid NyanCat mob fliying pig) bool false
|
||||
|
86
spawn.lua
86
spawn.lua
@ -1,7 +1,7 @@
|
||||
-- spawn.lua rewritten, using this latest function frim mobs_redo :
|
||||
--
|
||||
--mobs:spawn({
|
||||
-- name = "mobs_doomed:dragon",
|
||||
-- name = "dmobs:dragon",
|
||||
-- nodes = {"air"},
|
||||
-- neighbor = {"default:stone"},
|
||||
-- min_light = 10,
|
||||
@ -22,69 +22,67 @@
|
||||
--local cr = minetest.get_modpath("caverealms")
|
||||
--local nodes, neighbor = {}, {}
|
||||
|
||||
if mobs_doomed.regulars then
|
||||
if dmobs.regulars then
|
||||
-- friendlies
|
||||
-- nodes = {"darkage:marble"}
|
||||
-- neighbor = {"darkage:slate"}
|
||||
if mobs_doomed.allow_nyanc then
|
||||
mobs:spawn({name = "mobs_doomed:nyan", nodes = {"air"}, neighbor = {"group:leaves"},
|
||||
min_light = 10, max_light = 15, interval = 300, chance = 64000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:nyan", nodes = {"air"}, neighbor = {"ethereal:mushroom", "nyanland:meseleaves"},
|
||||
min_light = 10, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
end
|
||||
mobs:spawn({name = "mobs_doomed:hedgehog", nodes = {"group:flora", "ethereal:prairie_dirt"},
|
||||
neighbor = {}, min_light = 0, max_light = 8, interval = 300, chance = 8000, active_object_count = 3, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:whale", nodes = {"default:water_source"}, neighbor = {"group:sand"},
|
||||
min_light = 0, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = -100, max_height = 0})
|
||||
mobs:spawn({name = "mobs_doomed:owl", nodes = {"group:tree"}, neighbor = {},
|
||||
min_light = 0, max_light = 7, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:gnorm", nodes = {"default:dirt_with_grass", "ethereal:bamboo_dirt"}, neighbor = {},
|
||||
min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = -100, max_height = 0})
|
||||
mobs:spawn({name = "mobs_doomed:tortoise", nodes = {"default:water_source", "group:sand"}, neighbor = {},
|
||||
min_light = 5, max_light = 10, interval = 300, chance = 8000, active_object_count = 2, min_height = -100, max_height = 500})
|
||||
mobs:spawn({name = "mobs_doomed:elephant", nodes = {"default:dirt_with_dry_grass", "ethereal:grove_dirt"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:nyan", nodes = {"air"}, neighbor = {"group:leaves"},
|
||||
min_light = 10, max_light = 15, interval = 300, chance = 64000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "dmobs:nyan", nodes = {"air"}, neighbor = {"ethereal:mushroom", "nyanland:meseleaves"},
|
||||
min_light = 10, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:pig", nodes = {"default:dirt_with_grass", "ethereal:prairie_dirt", "nyanland:cloudstone"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:hedgehog", nodes = {"group:flora", "ethereal:prairie_dirt"},
|
||||
neighbor = {}, min_light = 0, max_light = 8, interval = 300, chance = 8000, active_object_count = 3, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "dmobs:whale", nodes = {"default:water_source"}, neighbor = {"group:sand"},
|
||||
min_light = 0, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = -100, max_height = 0})
|
||||
mobs:spawn({name = "dmobs:owl", nodes = {"group:tree"}, neighbor = {},
|
||||
min_light = 0, max_light = 7, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "dmobs:gnorm", nodes = {"default:dirt_with_grass", "ethereal:bamboo_dirt"}, neighbor = {},
|
||||
min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = -100, max_height = 0})
|
||||
mobs:spawn({name = "dmobs:tortoise", nodes = {"default:water_source", "group:sand"}, neighbor = {},
|
||||
min_light = 5, max_light = 10, interval = 300, chance = 8000, active_object_count = 2, min_height = -100, max_height = 500})
|
||||
mobs:spawn({name = "dmobs:elephant", nodes = {"default:dirt_with_dry_grass", "ethereal:grove_dirt"}, neighbor = {},
|
||||
min_light = 10, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "dmobs:pig", nodes = {"default:dirt_with_grass", "ethereal:prairie_dirt", "nyanland:cloudstone"}, neighbor = {},
|
||||
min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:panda", nodes = {"default:dirt_with_grass", "ethereal:bamboo_dirt"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:panda", nodes = {"default:dirt_with_grass", "ethereal:bamboo_dirt"}, neighbor = {},
|
||||
min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
|
||||
|
||||
-- baddies
|
||||
|
||||
mobs:spawn({name = "mobs_doomed:wasp", nodes = {"air"}, neighbor = {"group:leaves"}, min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:wasp", nodes = {"mobs_doomed:hive"}, neighbor = {}, min_light = 10, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:wasp_leader", nodes = {"group:leaves", "mobs_doomed:hive"}, neighbor = {}, min_light = 10, max_light = 15, interval = 300, chance = 64000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "dmobs:wasp", nodes = {"air"}, neighbor = {"group:leaves"}, min_light = 10, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "dmobs:wasp", nodes = {"dmobs:hive"}, neighbor = {}, min_light = 10, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "dmobs:wasp_leader", nodes = {"group:leaves", "dmobs:hive"}, neighbor = {}, min_light = 10, max_light = 15, interval = 300, chance = 64000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
|
||||
mobs:spawn({name = "mobs_doomed:golem", nodes = {"group:stone"}, neighbor = {}, min_light = 0,
|
||||
mobs:spawn({name = "dmobs:golem", nodes = {"group:stone"}, neighbor = {}, min_light = 0,
|
||||
max_light = 7, interval = 300, chance = 16000, active_object_count = 2, min_height = -32000, max_height = 100})
|
||||
mobs:spawn({name = "mobs_doomed:pig_evil", nodes = {"group:leave", "ethereal:bamboo_leaves"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:pig_evil", nodes = {"group:leave", "ethereal:bamboo_leaves"}, neighbor = {},
|
||||
min_light = 10, max_light = 15, interval = 300, chance = 64000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:fox", nodes = {"group:leaves"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:fox", nodes = {"group:leaves"}, neighbor = {},
|
||||
min_light = 0, max_light = 10, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:rat", nodes = {"group:stone", "group:sand"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:rat", nodes = {"group:stone", "group:sand"}, neighbor = {},
|
||||
min_light = 0, max_light = 10, interval = 300, chance = 32000, active_object_count = 2, min_height = -30000, max_height = 100})
|
||||
mobs:spawn({name = "mobs_doomed:treeman", nodes = {"group:leaves"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:treeman", nodes = {"group:leaves"}, neighbor = {},
|
||||
min_light = 7, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:skeleton", nodes = {"group:stone","caverealms:stone_with_salt","default:desert_sand"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:skeleton", nodes = {"group:stone","caverealms:stone_with_salt","default:desert_sand"}, neighbor = {},
|
||||
min_light = 0, max_light = 10, interval = 300, chance = 16000, active_object_count = 2, min_height = -31000, max_height = -1000})
|
||||
|
||||
-- Orcs and ogres spawn more often when dragons are disabled
|
||||
if not mobs_doomed.dragons then
|
||||
mobs:spawn({name = "mobs_doomed:orc",
|
||||
if not dmobs.dragons then
|
||||
mobs:spawn({name = "dmobs:orc",
|
||||
nodes = {"default:snow_block", "default:permafrost_with_moss", "default:permafrost_with_stone", "ethereal:cold_dirt"},
|
||||
neighbor = {}, min_light = 0, max_light = 10, interval = 300, chance = 6000,
|
||||
active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:ogre",
|
||||
mobs:spawn({name = "dmobs:ogre",
|
||||
nodes = {"default:snow_block", "default:permafrost_with_moss", "default:permafrost_with_stone", "ethereal:cold_dirt"},
|
||||
neighbor = {}, min_light = 0, max_light = 10, interval = 300, chance = 16000,
|
||||
active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
else
|
||||
mobs:spawn({name = "mobs_doomed:orc",
|
||||
mobs:spawn({name = "dmobs:orc",
|
||||
nodes = {"default:snow_block", "default:permafrost_with_moss", "default:permafrost_with_stone", "ethereal:cold_dirt"},
|
||||
neighbor = {}, min_light = 0, max_light = 10, interval = 300, chance = 8000,
|
||||
active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
mobs:spawn({name = "mobs_doomed:ogre",
|
||||
mobs:spawn({name = "dmobs:ogre",
|
||||
nodes = {"default:snow_block", "default:permafrost_with_moss", "default:permafrost_with_stone", "ethereal:cold_dirt"},
|
||||
neighbor = {}, min_light = 0, max_light = 10, interval = 300, chance = 32000,
|
||||
active_object_count = 2, min_height = 0, max_height = 2000})
|
||||
@ -97,24 +95,24 @@ end
|
||||
-------------
|
||||
|
||||
-- Generic dragon always spawn, the others only if enabled
|
||||
mobs:spawn({name = "mobs_doomed:dragon", nodes = {"group:leaves"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:dragon", nodes = {"group:leaves"}, neighbor = {},
|
||||
min_light = 5, max_light = 15, interval = 300, chance = 16000, active_object_count = 2, min_height = 0, max_height = 30000})
|
||||
|
||||
if mobs_doomed.dragons then
|
||||
mobs:spawn({name = "mobs_doomed:dragon1", nodes = {"ethereal:fiery_dirt", "default:desert_sand"}, neighbor = {},
|
||||
if dmobs.dragons then
|
||||
mobs:spawn({name = "dmobs:dragon1", nodes = {"ethereal:fiery_dirt", "default:desert_sand"}, neighbor = {},
|
||||
min_light = 5, max_light = 15, interval = 300, chance = 24000, active_object_count = 2, min_height = 0, max_height = 30000})
|
||||
mobs:spawn({name = "mobs_doomed:dragon2", nodes = {"ethereal:crystal_dirt", "default:dirt_with_dry_grass"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:dragon2", nodes = {"ethereal:crystal_dirt", "default:dirt_with_dry_grass"}, neighbor = {},
|
||||
min_light = 5, max_light = 15, interval = 300, chance = 24000, active_object_count = 2, min_height = 0, max_height = 30000})
|
||||
mobs:spawn({name = "mobs_doomed:dragon3", nodes = {"ethereal:jungle_dirt", "default:jungleleaves"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:dragon3", nodes = {"ethereal:jungle_dirt", "default:jungleleaves"}, neighbor = {},
|
||||
min_light = 0, max_light = 10, interval = 300, chance = 24000, active_object_count = 2, min_height = 0, max_height = 30000})
|
||||
mobs:spawn({name = "mobs_doomed:dragon4",
|
||||
mobs:spawn({name = "dmobs:dragon4",
|
||||
nodes = {"default:snow_block", "default:permafrost_with_moss", "default:permafrost_with_stone", "ethereal:cold_dirt"}, neighbor = {},
|
||||
min_light = 5, max_light = 15, interval = 300, chance = 24000, active_object_count = 2, min_height = 0, max_height = 30000})
|
||||
mobs:spawn({name = "mobs_doomed:waterdragon", nodes = {"default:water_source"}, neighbor = {"air"},
|
||||
mobs:spawn({name = "dmobs:waterdragon", nodes = {"default:water_source"}, neighbor = {"air"},
|
||||
min_light = 0, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = -10, max_height = 100})
|
||||
mobs:spawn({name = "mobs_doomed:wyvern", nodes = {"group:leaves"}, neighbor = {},
|
||||
mobs:spawn({name = "dmobs:wyvern", nodes = {"group:leaves"}, neighbor = {},
|
||||
min_light = 0, max_light = 10, interval = 300, chance = 32000, active_object_count = 2, min_height = 0, max_height = 30000})
|
||||
mobs:spawn({name = "mobs_doomed:dragon_great",
|
||||
mobs:spawn({name = "dmobs:dragon_great",
|
||||
nodes = {"ethereal:jungle_dirt", "default:jungleleaves", "default:lava_source", "caverealms:glow_mese",
|
||||
"caverealms:glow_amethyst", "caverealms:glow_crystal", "caverealms:glow_emerald","cavereals:glow_ruby"}, neighbor = {},
|
||||
min_light = 0, max_light = 15, interval = 300, chance = 32000, active_object_count = 2, min_height = -30000, max_height = 30000})
|
||||
|
@ -1 +0,0 @@
|
||||
dmobs_nyancat.png
|
Loading…
x
Reference in New Issue
Block a user