forked from mtcontrib/mobs_monster
Compare commits
13 Commits
7bd9080eda
...
b3e50d295c
Author | SHA1 | Date | |
---|---|---|---|
b3e50d295c | |||
ae0e50bb69 | |||
f792de52af | |||
cab9cf25c6 | |||
23e24bff06 | |||
f39fc78e4a | |||
cd201150b6 | |||
70d92995bb | |||
1c4ce9e402 | |||
69ca619580 | |||
5009e7439d | |||
9b3c1e156f | |||
949bfec484 |
@ -1,5 +1,5 @@
|
||||
default
|
||||
mobs
|
||||
default?
|
||||
lucky_block?
|
||||
toolranks?
|
||||
intllib?
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
local S = mobs.intllib
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
local dirt_types = {
|
||||
|
||||
|
@ -1,5 +1,15 @@
|
||||
|
||||
local S = mobs.intllib
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
local master_types = {
|
||||
|
||||
{ nodes = {"nether:rack"},
|
||||
skins = {"mobs_dungeon_master_nether.png"},
|
||||
},
|
||||
{ nodes = {"nether:rack_deep"},
|
||||
skins = {"mobs_dungeon_master_netherdeep.png"},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-- Dungeon Master by PilzAdam
|
||||
@ -62,13 +72,39 @@ mobs:register_mob("mobs_monster:dungeon_master", {
|
||||
speed_normal = 15,
|
||||
speed_run = 15,
|
||||
},
|
||||
|
||||
-- check surrounding nodes and spawn a specific monster
|
||||
on_spawn = function(self)
|
||||
|
||||
local pos = self.object:get_pos() ; pos.y = pos.y - 1
|
||||
local tmp
|
||||
|
||||
for n = 1, #master_types do
|
||||
|
||||
tmp = master_types[n]
|
||||
|
||||
if minetest.find_node_near(pos, 1, tmp.nodes) then
|
||||
|
||||
self.base_texture = tmp.skins
|
||||
self.object:set_properties({textures = tmp.skins})
|
||||
|
||||
if tmp.drops then
|
||||
self.drops = tmp.drops
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return true -- run only once, false/nil runs every activation
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
if not mobs.custom_spawn_monster then
|
||||
mobs:spawn({
|
||||
name = "mobs_monster:dungeon_master",
|
||||
nodes = {"default:stone", "default:sandstone", "nether:netherrack"},
|
||||
nodes = {"default:stone", "nether:rack", "nether:rack_deep", "hell:hellrack"},
|
||||
max_light = 5,
|
||||
chance = 9000,
|
||||
active_object_count = 1,
|
||||
|
98
fire_spirit.lua
Normal file
98
fire_spirit.lua
Normal file
@ -0,0 +1,98 @@
|
||||
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
local mob_drops = {
|
||||
{name = "fireflies:firefly", chance = 1, min = 1, max = 1}
|
||||
}
|
||||
|
||||
if minetest.get_modpath("ethereal") then
|
||||
|
||||
table.insert(mob_drops,
|
||||
{name = "ethereal:fire_dust", chance = 1, min = 1, max = 1})
|
||||
end
|
||||
|
||||
-- Fire Spirit
|
||||
|
||||
mobs:register_mob("mobs_monster:fire_spirit", {
|
||||
type = "monster",
|
||||
passive = false,
|
||||
attack_type = "dogfight",
|
||||
pathfinding = true,
|
||||
reach = 2,
|
||||
damage = 4,
|
||||
hp_min = 25,
|
||||
hp_max = 45,
|
||||
armor = 100,
|
||||
collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
|
||||
visual_scale = {x = 0.5, y = 0.5, z = 0.5},
|
||||
visual = "sprite",
|
||||
textures = {
|
||||
{"mobs_fire_spirit.png"}
|
||||
},
|
||||
glow = 14,
|
||||
blood_texture = "fire_basic_flame.png",
|
||||
immune_to = {
|
||||
{"bucket:bucket_water", 1},
|
||||
{"bucket:bucket_river_water", 1},
|
||||
{"all"}
|
||||
},
|
||||
makes_footstep_sound = false,
|
||||
sounds = {
|
||||
random = "fire_fire",
|
||||
damage = "fire_extinguish_flame",
|
||||
death = "fire_extinguish_flame"
|
||||
},
|
||||
view_range = 14,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 3,
|
||||
jump = true,
|
||||
jump_height = 6,
|
||||
drops = mob_drops,
|
||||
water_damage = 1,
|
||||
lava_damage = 0,
|
||||
fire_damage = 0,
|
||||
light_damage = 0,
|
||||
fall_damage = false,
|
||||
fear_height = 8,
|
||||
animation = {},
|
||||
|
||||
on_die = function(self, pos)
|
||||
|
||||
mobs:effect(pos, 20, "tnt_smoke.png", 3, 5, 2, 0.5, nil, false)
|
||||
|
||||
self.object:remove()
|
||||
end,
|
||||
|
||||
do_custom = function(self, dtime)
|
||||
|
||||
self.flame_timer = (self.flame_timer or 0) + dtime
|
||||
|
||||
if self.flame_timer < 0.25 then
|
||||
return
|
||||
end
|
||||
|
||||
self.flame_timer = 0
|
||||
|
||||
local pos = self.object:get_pos()
|
||||
|
||||
-- pos, amount, texture, min_size, max_size, radius, gravity, glow, fall
|
||||
mobs:effect(pos, 5, "fire_basic_flame.png", 1, 2, 0.1, 0.2, 14, nil)
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
if not mobs.custom_spawn_monster then
|
||||
mobs:spawn({
|
||||
name = "mobs_monster:fire_spirit",
|
||||
nodes = {"default:obsidian", "caverealms:hot_cobble"},
|
||||
neighbors = {"group:fire"},
|
||||
min_light = 12,
|
||||
max_light = 15,
|
||||
chance = 1500,
|
||||
active_object_count = 1,
|
||||
max_height = -150
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
mobs:register_egg("mobs_monster:fire_spirit", S("Fire Spirit"), "fire_basic_flame.png", 1)
|
31
init.lua
31
init.lua
@ -2,10 +2,32 @@
|
||||
-- Load support for intllib.
|
||||
local path = minetest.get_modpath(minetest.get_current_modname()) .. "/"
|
||||
|
||||
local S = minetest.get_translator and minetest.get_translator("mobs_monster") or
|
||||
dofile(path .. "intllib.lua")
|
||||
local S
|
||||
|
||||
mobs.intllib = S
|
||||
-- Check for translation method
|
||||
local S
|
||||
if minetest.get_translator ~= nil then
|
||||
S = minetest.get_translator("mobs_monster") -- 5.x translation function
|
||||
else
|
||||
if minetest.get_modpath("intllib") then
|
||||
dofile(minetest.get_modpath("intllib") .. "/init.lua")
|
||||
if intllib.make_gettext_pair then
|
||||
gettext, ngettext = intllib.make_gettext_pair() -- new gettext method
|
||||
else
|
||||
gettext = intllib.Getter() -- old text file method
|
||||
end
|
||||
S = gettext
|
||||
else -- boilerplate function
|
||||
S = function(str, ...)
|
||||
local args = {...}
|
||||
return str:gsub("@%d+", function(match)
|
||||
return args[tonumber(match:sub(2))]
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
mobs.intllib_monster = S
|
||||
|
||||
|
||||
-- Check for custom mob spawn file
|
||||
@ -30,6 +52,7 @@ dofile(path .. "mese_monster.lua")
|
||||
dofile(path .. "spider.lua") -- AspireMint
|
||||
dofile(path .. "minotaur.lua") -- NALC(sys4 fork MFF) Kalabasa
|
||||
dofile(path .. "land_guard.lua")
|
||||
dofile(path .. "fire_spirit.lua")
|
||||
|
||||
|
||||
-- Load custom spawning
|
||||
@ -42,4 +65,4 @@ end
|
||||
dofile(path .. "lucky_block.lua")
|
||||
|
||||
|
||||
print (S("[MOD] Mobs Redo Monsters loaded"))
|
||||
print ("[MOD] Mobs Redo Monsters loaded")
|
||||
|
@ -1,3 +0,0 @@
|
||||
-- Support for the old multi-load method
|
||||
dofile(minetest.get_modpath("intllib").."/init.lua")
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
local S = mobs.intllib
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
|
||||
local guard_types = {
|
||||
|
@ -1,6 +1,5 @@
|
||||
|
||||
local S = mobs.intllib
|
||||
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
-- Lava Flan by Zeg9 (additional textures by JurajVajda)
|
||||
|
||||
@ -36,7 +35,7 @@ mobs:register_mob("mobs_monster:lava_flan", {
|
||||
{name = "mobs:lava_orb", chance = 15, min = 1, max = 1},
|
||||
},
|
||||
water_damage = 8,
|
||||
lava_damage = 0,
|
||||
lava_damage = -1,
|
||||
fire_damage = 0,
|
||||
light_damage = 0,
|
||||
immune_to = {
|
||||
@ -53,7 +52,7 @@ mobs:register_mob("mobs_monster:lava_flan", {
|
||||
run_start = 20,
|
||||
run_end = 28,
|
||||
punch_start = 20,
|
||||
punch_end = 28,
|
||||
punch_end = 28
|
||||
},
|
||||
on_die = function(self, pos)
|
||||
|
||||
@ -174,9 +173,13 @@ minetest.register_tool(":mobs:pick_lava", {
|
||||
inventory_image = "mobs_pick_lava.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.4,
|
||||
max_drop_level=3,
|
||||
groupcaps={
|
||||
cracky = {times={[1]=1.80, [2]=0.80, [3]=0.40}, uses=40, maxlevel=3},
|
||||
max_drop_level = 3,
|
||||
groupcaps = {
|
||||
cracky = {
|
||||
times = {[1] = 1.80, [2] = 0.80, [3] = 0.40},
|
||||
uses = 40,
|
||||
maxlevel = 3
|
||||
}
|
||||
},
|
||||
damage_groups = {fleshy = 6, fire = 1},
|
||||
},
|
||||
@ -189,7 +192,7 @@ minetest.register_craft({
|
||||
recipe = {
|
||||
{"mobs:lava_orb", "mobs:lava_orb", "mobs:lava_orb"},
|
||||
{"", "default:obsidian_shard", ""},
|
||||
{"", "default:obsidian_shard", ""},
|
||||
{"", "default:obsidian_shard", ""}
|
||||
}
|
||||
})
|
||||
|
||||
@ -253,7 +256,7 @@ mobs:register_mob("mobs_monster:obsidian_flan", {
|
||||
run_start = 20,
|
||||
run_end = 28,
|
||||
punch_start = 20,
|
||||
punch_end = 28,
|
||||
punch_end = 28
|
||||
}
|
||||
})
|
||||
|
||||
@ -296,9 +299,11 @@ mobs:register_arrow("mobs_monster:obsidian_arrow", {
|
||||
|
||||
local radius = 1
|
||||
local def = minetest.registered_nodes[node]
|
||||
|
||||
if def then
|
||||
node = { name = node }
|
||||
node = {name = node}
|
||||
end
|
||||
|
||||
if def and def.tiles and def.tiles[1] then
|
||||
texture = def.tiles[1]
|
||||
end
|
||||
@ -325,7 +330,7 @@ mobs:register_arrow("mobs_monster:obsidian_arrow", {
|
||||
texture = texture,
|
||||
-- ^ only as fallback for clients without support for `node` parameter
|
||||
node = node,
|
||||
collisiondetection = true,
|
||||
collisiondetection = true
|
||||
})
|
||||
|
||||
minetest.set_node(pos, {name = "air"})
|
||||
|
@ -30,3 +30,7 @@ mobs.fireball.png was originally made by Sapier and edited by Benrob:
|
||||
--
|
||||
-- (c) Sapier
|
||||
-- Contact sapier a t gmx net
|
||||
|
||||
Textures created by wwar (cc0)
|
||||
mobs_dungeon_master_nether.png
|
||||
mobs_dungeon_master_netherdeep.png
|
||||
|
14
locale/mobs_monster.es.tr
Normal file
14
locale/mobs_monster.es.tr
Normal file
@ -0,0 +1,14 @@
|
||||
# textdomain:mobs_monster
|
||||
Cobweb=Telarania
|
||||
Dirt Monster=Mounstro de tierra
|
||||
Dungeon Master=Maestro de mazmorra
|
||||
Lava Flan=Flan de lava
|
||||
Lava Pickaxe=Hacha de lava
|
||||
Lava orb=Esfera de lava
|
||||
Mese Monster=Mounstro de mese
|
||||
#Obsidian Flan=
|
||||
Oerkki=Oerkki
|
||||
Sand Monster=Mounstro de arena
|
||||
Spider=Arania
|
||||
Stone Monster=Mounstro de piedra
|
||||
Tree Monster=Mounstro de madera
|
@ -1,6 +1,5 @@
|
||||
|
||||
local S = mobs.intllib
|
||||
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
-- Mese Monster by Zeg9
|
||||
|
||||
@ -12,6 +11,9 @@ mobs:register_mob("mobs_monster:mese_monster", {
|
||||
shoot_interval = 0.5,
|
||||
arrow = "mobs_monster:mese_arrow",
|
||||
shoot_offset = 2,
|
||||
--arrow_override = function(self)
|
||||
-- self.velocity = 20
|
||||
--end,
|
||||
hp_min = 10,
|
||||
hp_max = 25,
|
||||
armor = 80,
|
||||
|
4
mod.conf
4
mod.conf
@ -1,4 +1,4 @@
|
||||
name = mobs_monster
|
||||
depends = default, mobs
|
||||
optional_depends = lucky_block, toolranks, intllib
|
||||
depends = mobs
|
||||
optional_depends = default, lucky_block, toolranks, intllib
|
||||
description = Adds many types of monsters.
|
||||
|
@ -1,6 +1,5 @@
|
||||
|
||||
local S = mobs.intllib
|
||||
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
-- Oerkki by PilzAdam
|
||||
|
||||
|
@ -41,4 +41,8 @@ Land Guard
|
||||
|
||||
- These huge monsters roam the land in cold, hot and temperate areas and don't like players wandering around their domain.
|
||||
|
||||
Fire Spirit
|
||||
|
||||
- Fire Spirits will not tolerate players roaming around their domain and will fiercely attack until their dying puff of smoke. Will drop it's spirit and some fire dust when using ethereal.
|
||||
|
||||
Lucky Blocks: 11
|
||||
|
@ -1,6 +1,5 @@
|
||||
|
||||
local S = mobs.intllib
|
||||
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
-- custom particle effects
|
||||
local effect = function(
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
local S = mobs.intllib
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
local get_velocity = function(self)
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
local S = mobs.intllib
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
local stone_types = {
|
||||
|
||||
|
BIN
textures/mobs_dungeon_master_nether.png
Normal file
BIN
textures/mobs_dungeon_master_nether.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
textures/mobs_dungeon_master_netherdeep.png
Normal file
BIN
textures/mobs_dungeon_master_netherdeep.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
BIN
textures/mobs_fire_spirit.png
Normal file
BIN
textures/mobs_fire_spirit.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 274 B |
@ -1,5 +1,5 @@
|
||||
|
||||
local S = mobs.intllib
|
||||
local S = mobs.intllib_monster
|
||||
|
||||
local tree_types = {
|
||||
|
||||
|
Reference in New Issue
Block a user