Jump to content

Get double merm when attacking loyal lunar merm


Littlefat1213
  • Fixed

 
function Follower:SetLeader(new_leader)
	local prev_leader = self.leader
	local changed_leader = prev_leader ~= new_leader

    if prev_leader and changed_leader then
        local leader = self.leader.components.leader
        if leader then
      --- I THINK HERE'S THE REASON ---
      -- notice RemoveFollower will call follower:SetLeader, so it's a recursion
      -- and the leader has not change yet so it will call OnChangedLeader for twice
            leader:RemoveFollower(self.inst)
        end

        self:StopLeashing()

        self.inst:RemoveEventCallback("onremove", self.OnLeaderRemoved, prev_leader)

        self:CancelLoyaltyTask()

        self.leader = nil
    end

    if new_leader and self.leader ~= new_leader then
        self:ClearCachedPlayerLeader()

        self.leader = new_leader

        local leader = new_leader.components.leader
        if leader then
            leader:AddFollower(self.inst)
        end

        self.inst:ListenForEvent("onremove", self.OnLeaderRemoved, new_leader)

        if new_leader:HasTag("player") or new_leader.components.inventoryitem ~= nil then
            --Special case for pets leashed to players or inventory items
            self:StartLeashing()
        end
    end

	if changed_leader and self.OnChangedLeader ~= nil then
		self.OnChangedLeader(self.inst, new_leader, prev_leader)
	end
end

function Leader:RemoveFollower(follower, invalid)
    if follower ~= nil and self.followers[follower] then
        self.followers[follower] = nil
        self.numfollowers = self.numfollowers - 1

        self.inst:RemoveEventCallback("death", self._onfollowerdied, follower)
        self.inst:RemoveEventCallback("onremove", self._onfollowerremoved, follower)

        if self.onremovefollower ~= nil then
            self.onremovefollower(self.inst, follower)
        end

		if not invalid then
            follower:PushEvent("stopfollowing", { leader = self.inst })
	        follower.components.follower:SetLeader(nil)
		end
    end
end

 


Steps to Reproduce

Follow the video




User Feedback


A developer has marked this issue as fixed. This means that the issue has been addressed in the current development build and will likely be in the next update.


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
  • Create New...