CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.34k stars 4.14k forks source link

Weird follower combat behavior. Lack of NPC combat tests means that regressions are common. #68410

Open Maleclypse opened 1 year ago

Maleclypse commented 1 year ago

Describe the bug

On reddit people were reporting that followers no longer attack zombies. I felt like I had experienced something like that while testing different things so I booted up my today experimental and started trying stuff out. Spawned an NPC in the middle of a city with me. She had a combat weapon but only seemed to use it a single time while getting mobbed by a horde of zombies. Maybe there are too many zombies and she's trying to flee even though she's basically surounded. Teleport to the edge of a city. Spawn in three npcs and convince them to follow. one crossbow, one glock, one stone spear. Spawn in a single zombie. All three charge the zombie and attack it in melee. Tell crossbow man to guard and wander off. Block away, summon another zombie. Both NPCs charge it and attack it in melee. glock is never fired. Check glock and it is fully loaded. Leave glock man behind and wander a block away. Spawn in a new zombie. Spear follower freaks out, drops spear, throws cans of food at the zombie with me between them, then wields an entrenching tool and attacks the zombie.

Tested on a different world with MAgiclysm enabled and NPC used magic missile after I gave him 12 levels of it.

Attach save file

Palo Alto-trimmed.tar.gz

Steps to reproduce

Spawn in NPCs in various situations and see that many of their behaviours have regressed.

Expected behavior

NPCs to continue to shoot ranged weapons and not throw away actual weapons to throw food.

Screenshots

No response

Versions and configuration

Additional context

No response

Termineitor244 commented 1 year ago

Same problem, I thought I was doing something wrong when my follower refused to use his crossbow for anything other than melee...

PatrikLundell commented 1 year ago

Given the experience of the reporter(s), I assume the companions engagement settings were checked and rechecked to verify the companions actually were instructed to use ranged weapons and what recklessness level in their usage was accepted. However, it would still be useful to mention it in the report.

Termineitor244 commented 1 year ago

I personally tried in different ways in the last weeks, I tried: Ranged weapons allowed, with or without silent weapon usage.

Engagement rules tried in "Atack anything", "Only enemies you can reach without moving", "Only enemies I attack first".

Aiming rules were only tried with "take your time" and "Don't worry much about it" or whatever they are called.

The rule for worrying about hitting an ally was always activated (I did not want to see the first ranged attack of my companion be at my back when fighting a bunch of zombies).

In my... 2 weeks? Of playthrough my NPC companion has never made use of its wooden crossbow (loaded, with more ammo in storage), so I just gave it a spear and called it a day (and they definitely use the spear).

Nebnis commented 1 year ago

I believe a part of it is because erk has done some changes to NPC behavior recently to make them be less prone to avoid being surrounded and ganked. You can see some outline in discord and maybe ask him about it. https://discord.com/channels/598523535169945603/598523535169945607/1143917073785954555

Some probably unintended consequence is that they are now incredibly cowardly and is really hard to get them to fight more than a few zombies at time

pwalsh0 commented 1 year ago

NPCs seem to be reacting to threats that are out of vision range. They panic and start to flee even with nothing visible sometimes.

I-am-Erk commented 11 months ago

I'm leaving this open though I think the NPC behaviour has been fixed, because the lack of NPC combat tests is a relevant concern.

I-am-Erk commented 11 months ago

List of npc tests we should have (idk if any of these exist already)