CleverRaven / Cataclysm-DDA

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

Wraitheon Sentinel-lx (and other bots) potential changes #45227

Closed Fosheze closed 1 year ago

Fosheze commented 3 years ago

Is your feature request related to a problem? Please describe.

Recently I have been on a string of Wraitheon Executive runs relying solely for the Sentinels for defense. During this time I have noticed a few things that make them annoying to deal with or that don't make sense in context. Many of these points could be applied to other robots as well.

  1. The Wraitheon Sentinels use hit and run tactics. While this is great and fun in theory, it doesn't make much sense in practice. They are described as bodyguards for the wealthy but when they sprint away after hitting a zombie once and leave you standing there alone with the undead breathing down your neck it makes them pretty poor bodyguards. Realistically they should be throwing themselves at any danger and staying there to protect their owner possibly even to the point of annoyance on the part of their owner.

  2. They randomly smash objects when moving around like zombies. I'm not sure if this effect is just something that goes along with the BASHES tag or what exactly causes this. It doesn't make a whole lot of sense for these elite bodyguards to be passively smashing up their owners home for no reason though.

  3. They cannot be activated from the ground. This seems to be an issue with heavy activatable items in general but it is particularly annoying with these. I recently had a run where I left them deactivated at home while I went on a looting spree in an area I though was cleared. I ended up getting a broken arm during that looting spree and that meant that I couldn't pick up the Sentinels to reactivate them anymore as physically picking them up requires 2 functioning arms.

  4. They loose track of you incredibly easily especially indoors. As soon as the player gets more than about 6 tiles away they completely stop following them. This is particularly frustrating when you have to go track them down after they lead a horde of zombies away with their hit and run tactics. (removing hit and run would help with this problem as well).

Describe the solution you'd like

  1. Remove the HIT_AND_RUN tag from the Wraitheon Sentinel-lx. If possible also make them prioritize targets closer to the player to better demonstrate their "bodyguard" programming.

  2. Make them stop randomly smashing things as they're walking around. Once again, I don't know what exactly causes this behavior but if I had to guess it is something in the BASHES behavior. This change should likely apply to all other robots in general because a robot most likely isn't going to just be mindlessly smashing everything around it.

  3. Allow them to be activated without picking them up. Possibly just create an item tag that allows items to be activated remotely similar to ALLOWS_REMOTE_USE. If possible it would also be interesting if the Executive smartphone / Control Laptop could remotely activate and deactivate friendly robots within their range. Once again this is something that could be applied to all robots.

  4. Increase the range at which the Wraitheon Sentinel-lx will track the player and make them properly track noise. They do have the GOODHEARING tag so I'm not sure why that second part isn't already the case.

Describe alternatives you've considered

None yet. Just wanted to see what people thought about this.

Additional context

anothersimulacrum commented 3 years ago

ping @John-Candlebury @Maleclypse

John-Candlebury commented 3 years ago

Remove the HIT_AND_RUN tag from the Wraitheon Sentinel-lx. If possible also make them prioritize targets closer to the player to better demonstrate their "bodyguard" programming.

This is necesary from my original play testing. Not giving them HIT_AND_RUN means its very hard to get them to disengage properly and also means the robots get surronded very easily (leaving you even less protected). It also means you at least have to pay attention to your positioning mid battle, and use that to lead zombies and the bots to favorable combat positions. Managing the HIT_AND_Run flag of the robots is pretty much the central challenge of playing this profesion, otherwise it gets to easy.

You are probably playing the class to aggressively, you should mostly let the robots screen the area ahead you, and use the hit and run brhavior of the robots to either make them retreat from combat or to shoot and weaken the horde.

Although they could be smarter about picking foes that are closer to you, I agree.

Make them stop randomly smashing things as they're walking around. Once again, I don't know what exactly causes this behavior but if I had to guess it is something in the BASHES behavior. This change should likely apply to all other robots in general because a robot most likely isn't going to just be mindlessly smashing everything around it.

Agreed I'll look both into this one and number 3.

Increase the range at which the Wraitheon Sentinel-lx will track the player and make them properly track noise. They do have the GOODHEARING tag so I'm not sure why that second part isn't already the case.

This one is a bit tricky to solve, it probably requires some improved general framework to give orders to your pets, as just increasing the bots senses will make them more likely to wander off.

Fosheze commented 3 years ago

Remove the HIT_AND_RUN tag from the Wraitheon Sentinel-lx. If possible also make them prioritize targets closer to the player to better demonstrate their "bodyguard" programming.

This is necesary from my original play testing. Not giving them HIT_AND_RUN means its very hard to get them to disengage properly and also means the robots get surronded very easily (leaving you even less protected). It also means you at least have to pay attention to your positioning mid battle, and use that to lead zombies and the bots to favorable combat positions. Managing the HIT_AND_Run flag of the robots is pretty much the central challenge of playing this profesion, otherwise it gets to easy.

I guess I can see your point there. I have removed the hit and run tag myself on my last few runs and it is definitely impossible to get them to disengage which at least to me that seems like what a bodyguard robot would do. However to your point as well it does make combat easier. While they're on their murder spree you are left defenseless but at the same time you can just go hide for a few minutes. Not to mention that because of prioritize_targets even the zombies that could hurt them (shockers, zappers) don't stick around long enough to do much more than scratch the paint. The only way I could see to balance them without the hit_and_run tag would be to also remove prioritize_targets which seems even less desirable.

I guess my main problem with hit and run is their engage range. Before I removed it they would occasionally hit a zombie and then run far enough for the zombie to be out of their engagement range or far enough away from you that they would stop following you. They also won't engage zombies until they are right on top of you so if they lose interest in the zombie and you then the zombie is your problem. If they had a longer distance from which they would start following the player this problem would be almost entirely rectified because even if they moved out of their attack range then they would just start moving back towards you. I'm not sure if it helps but I noticed that hacked firefighter robots will start following you from what seems like 30+ tiles away. If that behavior could be added to the sentinels it would make them much easier to handle and I don't see any reason they need to have that short of a player tracking distance unless it is a code limitation.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not \'bump\' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

linonetwo commented 3 years ago

What is the progress of these changes?

These problems and the NO_REPAIR flag on the dead body of lx , make this run not so interesting.

linonetwo commented 3 years ago

Can you make lx NPC, so I can make NPC combat order to them, to ask them to follow or stand or just leave the battle field?

Fosheze commented 3 years ago

What is the progress of these changes?

These problems and the NO_REPAIR flag on the dead body of lx , make this run not so interesting.

You can still repair them when deactivated before they are completely destroyed. I think it makes sense that you can patch them when there is a little damage but when they are completely destroyed you can't put them back together. These are supposed to be incredibly high tech and top of the line bots so I don't imagine that a person would be able to put them completely back together without very specialized factory equipment.

linonetwo commented 3 years ago

Okay, That is true. Currently, there seems no factory overmap terrain in CDDA.

But , How to fix them when deactivated? My repair option is gray, do I need some tool to repair it (it is not completely destroyed)?

Fosheze commented 3 years ago

Okay, That is true. Currently, there seems no factory overmap terrain in CDDA.

But , How to fix them when deactivated? My repair option is gray, do I need some tool to repair it (it is not completely destroyed)?

You need to activate either a soldering iron or a welder (I can't remember which) and use the repair option.

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not bump or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.