diff --git a/mobs/icelizard.lua b/mobs/icelizard.lua index 03d2652..a1574b3 100644 --- a/mobs/icelizard.lua +++ b/mobs/icelizard.lua @@ -55,6 +55,7 @@ mobs:register_mob("nssm:icelizard", { animation = { speed_normal = 20, speed_run = 40, + speed_punch = 5, stand_start = 0, stand_end = 80, walk_start = 110, @@ -67,9 +68,13 @@ mobs:register_mob("nssm:icelizard", { punch_end = 170, }, custom_attack = function(self) - local pos = self.object:getpos() - tnt_boom_nssm(pos, {damage_radius=0,radius=4,ignore_protection=false},"nssm:coldest_ice") - self.object:remove() + self.icelizard_timer = self.icelizard_timer or os.time() + set_animation(self, "punch") + if (os.time()-self.icelizard_timer) > 0.9 then + local pos = self.object:getpos() + tnt_boom_nssm(pos, {damage_radius=0,radius=4,ignore_protection=false},"nssm:coldest_ice", false) + self.object:remove() + end end, do_custom = function(self) putting_ability(self, "default:ice", self.run_velocity) diff --git a/mobs/morvalar.lua b/mobs/morvalar.lua index ddb244b..f18b9c3 100644 --- a/mobs/morvalar.lua +++ b/mobs/morvalar.lua @@ -363,7 +363,7 @@ mobs:register_mob("nssm:morvalar5", { local p = self.attack:getpos() minetest.after(2, function(self) set_animation(self, "punch") - tnt_boom_nssm(p, {damage_radius=6,radius=5,ignore_protection=false}) + tnt_boom_nssm(p, {damage_radius=6,radius=5,ignore_protection=false}, nil, true) self.morvalar5_timer = os.time() end,self) end @@ -874,14 +874,14 @@ minetest.register_entity("nssm:kamehameha_bad", { local objects = minetest.env:get_objects_inside_radius(pos, 1) for _,obj in ipairs(objects) do if obj:is_player() then - tnt_boom_nssm(pos, {damage_radius=6,radius=5,ignore_protection=false}) + tnt_boom_nssm(pos, {damage_radius=6,radius=5,ignore_protection=false}, nil, true) self.object:remove() minetest.chat_send_all("Dentro il raggio piccolo") end if obj:get_luaentity() then local name = obj:get_luaentity().name if name ~= "nssm:morvalar0" and name ~="nssm:kamehameha_bad" then - tnt_boom_nssm(pos, {damage_radius=6,radius=5,ignore_protection=false}) + tnt_boom_nssm(pos, {damage_radius=6,radius=5,ignore_protection=false}, nil, true) self.object:remove() end end diff --git a/nssm_api.lua b/nssm_api.lua index a575aab..bfbfa3a 100644 --- a/nssm_api.lua +++ b/nssm_api.lua @@ -874,7 +874,7 @@ local function tnt_explode(pos, radius, ignore_protection, ignore_on_blast, bloc return drops, radius end -function tnt_boom_nssm(pos, def, block) +function tnt_boom_nssm(pos, def, block, effects) minetest.sound_play("tnt_explode", {pos = pos, gain = 1.5, max_hear_distance = 2*64}) minetest.set_node(pos, {name = "tnt:boom"}) local drops, radius = tnt_explode(pos, def.radius, def.ignore_protection, def.ignore_on_blast, block) @@ -884,5 +884,7 @@ function tnt_boom_nssm(pos, def, block) if not def.disable_drops then eject_drops(drops, pos, radius) end - add_effects(pos, radius, drops) + if effects then + add_effects(pos, radius, drops) + end end