forked from mtcontrib/mobs_monster
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
69ca619580
98
fire_spirit.lua
Normal file
98
fire_spirit.lua
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
|
||||||
|
local S = mobs.intllib
|
||||||
|
|
||||||
|
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)
|
1
init.lua
1
init.lua
@ -30,6 +30,7 @@ dofile(path .. "mese_monster.lua")
|
|||||||
dofile(path .. "spider.lua") -- AspireMint
|
dofile(path .. "spider.lua") -- AspireMint
|
||||||
dofile(path .. "minotaur.lua") -- NALC(sys4 fork MFF) Kalabasa
|
dofile(path .. "minotaur.lua") -- NALC(sys4 fork MFF) Kalabasa
|
||||||
dofile(path .. "land_guard.lua")
|
dofile(path .. "land_guard.lua")
|
||||||
|
dofile(path .. "fire_spirit.lua")
|
||||||
|
|
||||||
|
|
||||||
-- Load custom spawning
|
-- Load custom spawning
|
||||||
|
@ -36,7 +36,7 @@ mobs:register_mob("mobs_monster:lava_flan", {
|
|||||||
{name = "mobs:lava_orb", chance = 15, min = 1, max = 1},
|
{name = "mobs:lava_orb", chance = 15, min = 1, max = 1},
|
||||||
},
|
},
|
||||||
water_damage = 8,
|
water_damage = 8,
|
||||||
lava_damage = 0,
|
lava_damage = -1,
|
||||||
fire_damage = 0,
|
fire_damage = 0,
|
||||||
light_damage = 0,
|
light_damage = 0,
|
||||||
immune_to = {
|
immune_to = {
|
||||||
@ -53,7 +53,7 @@ mobs:register_mob("mobs_monster:lava_flan", {
|
|||||||
run_start = 20,
|
run_start = 20,
|
||||||
run_end = 28,
|
run_end = 28,
|
||||||
punch_start = 20,
|
punch_start = 20,
|
||||||
punch_end = 28,
|
punch_end = 28
|
||||||
},
|
},
|
||||||
on_die = function(self, pos)
|
on_die = function(self, pos)
|
||||||
|
|
||||||
@ -174,9 +174,13 @@ minetest.register_tool(":mobs:pick_lava", {
|
|||||||
inventory_image = "mobs_pick_lava.png",
|
inventory_image = "mobs_pick_lava.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.4,
|
full_punch_interval = 0.4,
|
||||||
max_drop_level=3,
|
max_drop_level = 3,
|
||||||
groupcaps={
|
groupcaps = {
|
||||||
cracky = {times={[1]=1.80, [2]=0.80, [3]=0.40}, uses=40, maxlevel=3},
|
cracky = {
|
||||||
|
times = {[1] = 1.80, [2] = 0.80, [3] = 0.40},
|
||||||
|
uses = 40,
|
||||||
|
maxlevel = 3
|
||||||
|
}
|
||||||
},
|
},
|
||||||
damage_groups = {fleshy = 6, fire = 1},
|
damage_groups = {fleshy = 6, fire = 1},
|
||||||
},
|
},
|
||||||
@ -189,7 +193,7 @@ minetest.register_craft({
|
|||||||
recipe = {
|
recipe = {
|
||||||
{"mobs:lava_orb", "mobs:lava_orb", "mobs:lava_orb"},
|
{"mobs:lava_orb", "mobs:lava_orb", "mobs:lava_orb"},
|
||||||
{"", "default:obsidian_shard", ""},
|
{"", "default:obsidian_shard", ""},
|
||||||
{"", "default:obsidian_shard", ""},
|
{"", "default:obsidian_shard", ""}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -253,7 +257,7 @@ mobs:register_mob("mobs_monster:obsidian_flan", {
|
|||||||
run_start = 20,
|
run_start = 20,
|
||||||
run_end = 28,
|
run_end = 28,
|
||||||
punch_start = 20,
|
punch_start = 20,
|
||||||
punch_end = 28,
|
punch_end = 28
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -296,9 +300,11 @@ mobs:register_arrow("mobs_monster:obsidian_arrow", {
|
|||||||
|
|
||||||
local radius = 1
|
local radius = 1
|
||||||
local def = minetest.registered_nodes[node]
|
local def = minetest.registered_nodes[node]
|
||||||
|
|
||||||
if def then
|
if def then
|
||||||
node = { name = node }
|
node = {name = node}
|
||||||
end
|
end
|
||||||
|
|
||||||
if def and def.tiles and def.tiles[1] then
|
if def and def.tiles and def.tiles[1] then
|
||||||
texture = def.tiles[1]
|
texture = def.tiles[1]
|
||||||
end
|
end
|
||||||
@ -325,7 +331,7 @@ mobs:register_arrow("mobs_monster:obsidian_arrow", {
|
|||||||
texture = texture,
|
texture = texture,
|
||||||
-- ^ only as fallback for clients without support for `node` parameter
|
-- ^ only as fallback for clients without support for `node` parameter
|
||||||
node = node,
|
node = node,
|
||||||
collisiondetection = true,
|
collisiondetection = true
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.set_node(pos, {name = "air"})
|
minetest.set_node(pos, {name = "air"})
|
||||||
|
@ -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.
|
- 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
|
Lucky Blocks: 11
|
||||||
|
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 |
Loading…
Reference in New Issue
Block a user