Delay custom actions.
This commit is contained in:
parent
f8678a3d44
commit
234b71064c
12 changed files with 83 additions and 15 deletions
|
@ -70,8 +70,15 @@ mobs:register_mob("fun_caves:dangler", {
|
|||
--replace_with = "air",
|
||||
--replace_offset = -1,
|
||||
do_custom = function(self)
|
||||
if not self.custom_time or self.custom_time % fun_caves.custom_delay == 0 then
|
||||
self.custom_time = fun_caves.custom_delay - 1
|
||||
else
|
||||
self.custom_time = self.custom_time - 1
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.climb(self)
|
||||
fun_caves.search_replace(self.object:getpos(), 200, {"air"}, "mobs:cobweb")
|
||||
fun_caves.search_replace(self.object:getpos(), 100, {"air"}, "mobs:cobweb")
|
||||
|
||||
fun_caves.surface_damage(self)
|
||||
end,
|
||||
|
|
|
@ -108,6 +108,13 @@ mobs:register_mob("fun_caves:goblin_coal", {
|
|||
end,
|
||||
|
||||
do_custom = function(self)
|
||||
if not self.custom_time or self.custom_time % fun_caves.custom_delay == 0 then
|
||||
self.custom_time = fun_caves.custom_delay - 1
|
||||
else
|
||||
self.custom_time = self.custom_time - 1
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_torch_freq, {"default:torch"}, "air")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"default:stone"}, "default:mossycobble")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"group:stone"}, "fun_caves:stone_with_coal_trap")
|
||||
|
|
|
@ -112,6 +112,13 @@ mobs:register_mob("fun_caves:goblin_cobble", {
|
|||
end,
|
||||
|
||||
do_custom = function(self)
|
||||
if not self.custom_time or self.custom_time % fun_caves.custom_delay == 0 then
|
||||
self.custom_time = fun_caves.custom_delay - 1
|
||||
else
|
||||
self.custom_time = self.custom_time - 1
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_torch_freq, {"default:torch"}, "air")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"default:stone", "default:desert_stone", "default:sandstone"}, "default:mossycobble")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"default:mossycobble"}, "fun_caves:mossycobble_trap")
|
||||
|
|
|
@ -108,6 +108,13 @@ mobs:register_mob("fun_caves:goblin_copper", {
|
|||
end,
|
||||
|
||||
do_custom = function(self)
|
||||
if not self.custom_time or self.custom_time % fun_caves.custom_delay == 0 then
|
||||
self.custom_time = fun_caves.custom_delay - 1
|
||||
else
|
||||
self.custom_time = self.custom_time - 1
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_torch_freq, {"default:torch"}, "air")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"default:stone"}, "default:mossycobble")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"group:stone"}, "fun_caves:stone_with_copper_trap")
|
||||
|
|
|
@ -110,6 +110,13 @@ mobs:register_mob("fun_caves:goblin_diamond", {
|
|||
end,
|
||||
|
||||
do_custom = function(self)
|
||||
if not self.custom_time or self.custom_time % fun_caves.custom_delay == 0 then
|
||||
self.custom_time = fun_caves.custom_delay - 1
|
||||
else
|
||||
self.custom_time = self.custom_time - 1
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_torch_freq, {"default:torch"}, "air")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"default:stone"}, "default:mossycobble")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"group:stone"}, "fun_caves:stone_with_diamond_trap")
|
||||
|
|
|
@ -87,7 +87,7 @@ local goblin_tunneling = function(self, type)
|
|||
end
|
||||
end
|
||||
|
||||
if self.state == "stand" and math.random() < 0.05 then
|
||||
if self.state == "stand" and math.random() < 0.5 then
|
||||
self.state = "tunnel"
|
||||
elseif self.state == "tunnel" and math.random() < 0.05 then
|
||||
self.state = "room"
|
||||
|
@ -204,6 +204,13 @@ mobs:register_mob("fun_caves:goblin_digger", {
|
|||
end,
|
||||
|
||||
do_custom = function(self)
|
||||
if not self.custom_time or self.custom_time % fun_caves.custom_delay == 0 then
|
||||
self.custom_time = fun_caves.custom_delay - 1
|
||||
else
|
||||
self.custom_time = self.custom_time - 1
|
||||
return
|
||||
end
|
||||
|
||||
goblin_tunneling(self, "digger")
|
||||
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_torch_freq, {"default:torch"}, "air")
|
||||
|
|
|
@ -108,6 +108,13 @@ mobs:register_mob("fun_caves:goblin_gold", {
|
|||
end,
|
||||
|
||||
do_custom = function(self)
|
||||
if not self.custom_time or self.custom_time % fun_caves.custom_delay == 0 then
|
||||
self.custom_time = fun_caves.custom_delay - 1
|
||||
else
|
||||
self.custom_time = self.custom_time - 1
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_torch_freq, {"default:torch"}, "air")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"default:stone"}, "default:mossycobble")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"group:stone"}, "fun_caves:stone_with_gold_trap")
|
||||
|
|
|
@ -107,6 +107,13 @@ mobs:register_mob("fun_caves:goblin_ice", {
|
|||
end,
|
||||
|
||||
do_custom = function(self)
|
||||
if not self.custom_time or self.custom_time % fun_caves.custom_delay == 0 then
|
||||
self.custom_time = fun_caves.custom_delay - 1
|
||||
else
|
||||
self.custom_time = self.custom_time - 1
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_torch_freq, {"default:torch"}, "air")
|
||||
--fun_caves.search_replace(self.object:getpos(), 20, {"default:stone"}, "default:mossycobble")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"default:ice"}, "fun_caves:ice_trap")
|
||||
|
|
|
@ -110,6 +110,13 @@ mobs:register_mob("fun_caves:goblin_iron", {
|
|||
end,
|
||||
|
||||
do_custom = function(self)
|
||||
if not self.custom_time or self.custom_time % fun_caves.custom_delay == 0 then
|
||||
self.custom_time = fun_caves.custom_delay - 1
|
||||
else
|
||||
self.custom_time = self.custom_time - 1
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_torch_freq, {"default:torch"}, "air")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"default:stone"}, "default:mossycobble")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"group:stone"}, "fun_caves:stone_with_iron_trap")
|
||||
|
|
|
@ -109,6 +109,13 @@ mobs:register_mob("fun_caves:goblin_king", {
|
|||
end,
|
||||
|
||||
do_custom = function(self)
|
||||
if not self.custom_time or self.custom_time % fun_caves.custom_delay == 0 then
|
||||
self.custom_time = fun_caves.custom_delay - 1
|
||||
else
|
||||
self.custom_time = self.custom_time - 1
|
||||
return
|
||||
end
|
||||
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_torch_freq, {"default:torch"}, "air")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"default:stone"}, "default:mossycobble")
|
||||
fun_caves.search_replace(self.object:getpos(), fun_caves.goblin_trap_freq, {"default:mossycobble"}, "fun_caves:mossycobble_trap")
|
||||
|
|
20
mobs.lua
20
mobs.lua
|
@ -17,13 +17,13 @@ fun_caves.search_replace = function(pos, search_rate, replace_what, replace_with
|
|||
end
|
||||
|
||||
fun_caves.surface_damage = function(self, cold_natured)
|
||||
if not self.fun_caves_damage_timer then
|
||||
self.fun_caves_damage_timer = 0
|
||||
end
|
||||
--if not self.fun_caves_damage_timer then
|
||||
-- self.fun_caves_damage_timer = 0
|
||||
--end
|
||||
|
||||
self.fun_caves_damage_timer = self.fun_caves_damage_timer + 1
|
||||
if self.fun_caves_damage_timer > 30 then
|
||||
self.fun_caves_damage_timer = 0
|
||||
--self.fun_caves_damage_timer = self.fun_caves_damage_timer + 1
|
||||
--if self.fun_caves_damage_timer > 30 then
|
||||
-- self.fun_caves_damage_timer = 0
|
||||
local pos = self.object:getpos()
|
||||
local minp = vector.subtract(pos, 1.5)
|
||||
local maxp = vector.add(pos, 1.5)
|
||||
|
@ -44,10 +44,12 @@ fun_caves.surface_damage = function(self, cold_natured)
|
|||
end
|
||||
|
||||
check_for_death(self)
|
||||
end
|
||||
--end
|
||||
end
|
||||
|
||||
|
||||
fun_caves.custom_delay = 50
|
||||
|
||||
local path = minetest.get_modpath(minetest.get_current_modname())
|
||||
dofile(path .. "/danglers.lua")
|
||||
dofile(path .. "/spider.lua")
|
||||
|
@ -88,8 +90,8 @@ end
|
|||
|
||||
|
||||
fun_caves.goblin_spawn_frequency = 150
|
||||
fun_caves.goblin_trap_freq = 500
|
||||
fun_caves.goblin_torch_freq = 10
|
||||
fun_caves.goblin_trap_freq = 25
|
||||
fun_caves.goblin_torch_freq = 2
|
||||
|
||||
fun_caves.goblin_drops = { "default:pick_steel", "default:sword_steel", "default:shovel_steel", "farming:bread", "bucket:bucket_water", "default:pick_stone", "default:sword_stone" }
|
||||
--{"group:stone"} = { "default:stone", "default:mossycobble", "default:sandstone", "default:desert_stone", "default:stone_with_coal", "default:stone_with_iron", "default:stone_with_copper", "default:stone_with_gold", "default:stone_with_diamond" }
|
||||
|
|
|
@ -48,10 +48,6 @@ mobs:register_mob("fun_caves:spider", {
|
|||
punch_end = 90,
|
||||
},
|
||||
do_custom = function(self)
|
||||
if not self.fun_caves_damage_timer then
|
||||
self.fun_caves_damage_timer = 0
|
||||
end
|
||||
|
||||
fun_caves.surface_damage(self)
|
||||
end,
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue