Passive Deerclops?!


Fledge
  • Version: PC/MAC/Linux Pending

This has happened to me twice now in two different games, and once to someone else on the fan wiki, so I think it bears reporting. Unless you have nerfed Deerclops, which would be a shame...

Deerclops is spawning as usual and stomping around targeting structures, fighting other mobs etc. - but seems completely indifferent to the player! Not that I tried whacking him, because I'm not suicidal, but usually if you get anywhere within sight range he comes after you with a vengeance - and I actually wanted to lead him to my trap field. Suddenly it seems I can run around under his nose and he doesn't care! So I was able to gather materials as he stomped around a forest and even stop to light a nice warm fire... Really not the sort of thing you expect to do in his vicinity!

I'm playing RoG with SW enabled but haven't built the Seaworthy yet. I'm using a few mods, but nothing mob related (Combined Status, Smart Crockpot, Storeroom and Wormhole Marks) and they are all RoG/SW compatible.


Steps to Reproduce
Um... run up to Deerclops and see whether he aggros on you or not? :)

Status: Pending

This issue has not been confirmed by a developer yet.


  Report Bug


User Feedback


....

This is the retarget function of the deerclops:

local function RetargetFn(inst)
    return FindEntity(inst, TARGET_DIST, function(guy)
        return inst.components.combat:CanTarget(guy)
               and not guy:HasTag("prey")
               and not guy:HasTag("smallcreature")
               and (inst.components.knownlocations:GetLocation("targetbase") == nil or guy.components.combat.target == inst)
    end)
end

So if you don't attack him, he needs to forget your base location before the check passes.

So, when does this happen?

Vanilla:

local function AfterWorking(inst, data)
    if data.target then
        local recipe = GetRecipe(data.target.prefab)
        if recipe then
            inst.structuresDestroyed = inst.structuresDestroyed + 1
            if inst.structuresDestroyed >= 2 then
                inst.components.knownlocations:ForgetLocation("targetbase")
            end
        end
    end
end

He will get pissed at you for being close after breaking 2 structures or more.

RoG:

local function AfterWorking(inst)
    inst.structuresDestroyed = inst.structuresDestroyed + 1
end

Never forgets.

Shipwrecked:

local function AfterWorking(inst)
    inst.structuresDestroyed = inst.structuresDestroyed + 1
end

Never forgets.

So yeah, it is a bit inconsistent.

Share this comment


Link to comment
Share on other sites
....
On 05/09/2016 at 1:48 AM, DarkXero said:

This is the retarget function of the deerclops:


local function RetargetFn(inst)
    return FindEntity(inst, TARGET_DIST, function(guy)
        return inst.components.combat:CanTarget(guy)
               and not guy:HasTag("prey")
               and not guy:HasTag("smallcreature")
               and (inst.components.knownlocations:GetLocation("targetbase") == nil or guy.components.combat.target == inst)
    end)
end

So if you don't attack him, he needs to forget your base location before the check passes.

So, when does this happen?

Vanilla:


local function AfterWorking(inst, data)
    if data.target then
        local recipe = GetRecipe(data.target.prefab)
        if recipe then
            inst.structuresDestroyed = inst.structuresDestroyed + 1
            if inst.structuresDestroyed >= 2 then
                inst.components.knownlocations:ForgetLocation("targetbase")
            end
        end
    end
end

He will get pissed at you for being close after breaking 2 structures or more.

RoG:


local function AfterWorking(inst)
    inst.structuresDestroyed = inst.structuresDestroyed + 1
end

Never forgets.

Shipwrecked:


local function AfterWorking(inst)
    inst.structuresDestroyed = inst.structuresDestroyed + 1
end

Never forgets.

So yeah, it is a bit inconsistent.

He destroyed one pig house, then just wandered around smashing trees and getting into fights with Treeguards. Never attempted to head for my base, and as stated, was oblivious to my presence (even when he wasn't fighting). Wondering if some mods I use have accidentally affected mob behaviour - I don't use any which specifically affect mobs, but you never know, they could have coding errors...

Share this comment


Link to comment
Share on other sites


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