From 153633819906854cbb1b114bc65a2b213ef255c9 Mon Sep 17 00:00:00 2001 From: gldrk Date: Sat, 14 Jan 2023 01:32:42 +0300 Subject: [PATCH] Allow passive mobs to have protectors --- mods/ENTITIES/mcl_mobs/combat.lua | 48 +++++++++++++++---------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/combat.lua b/mods/ENTITIES/mcl_mobs/combat.lua index 9c9fd7626..b7d176855 100644 --- a/mods/ENTITIES/mcl_mobs/combat.lua +++ b/mods/ENTITIES/mcl_mobs/combat.lua @@ -746,7 +746,7 @@ function mob_class:on_punch(hitter, tflp, tool_capabilities, dir) local name = hitter:get_player_name() or "" - -- attack puncher and call other mobs for help + -- attack puncher if self.passive == false and self.state ~= "flop" and (self.child == false or self.type == "monster") @@ -758,37 +758,37 @@ function mob_class:on_punch(hitter, tflp, tool_capabilities, dir) self:do_attack(hitter) self._aggro= true end + end - -- alert others to the attack - local objs = minetest.get_objects_inside_radius(hitter:get_pos(), self.view_range) - local obj = nil + -- alert others to the attack + local objs = minetest.get_objects_inside_radius(hitter:get_pos(), self.view_range) + local obj = nil - for n = 1, #objs do + for n = 1, #objs do - obj = objs[n]:get_luaentity() + obj = objs[n]:get_luaentity() - if obj then - -- only alert members of same mob or friends - if obj.group_attack - and obj.state ~= "attack" - and obj.owner ~= name then - if obj.name == self.name then - obj:do_attack(hitter) - elseif type(obj.group_attack) == "table" then - for i=1, #obj.group_attack do - if obj.group_attack[i] == self.name then - obj._aggro = true - obj:do_attack(hitter) - break - end + if obj then + -- only alert members of same mob or friends + if obj.group_attack + and obj.state ~= "attack" + and obj.owner ~= name then + if obj.name == self.name then + obj:do_attack(hitter) + elseif type(obj.group_attack) == "table" then + for i=1, #obj.group_attack do + if obj.group_attack[i] == self.name then + obj._aggro = true + obj:do_attack(hitter) + break end end end + end - -- have owned mobs attack player threat - if obj.owner == name and obj.owner_loyal then - obj:do_attack(self.object) - end + -- have owned mobs attack player threat + if obj.owner == name and obj.owner_loyal then + obj:do_attack(self.object) end end end