CleverRaven / Cataclysm-DDA

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

Tone Down the Hub01 Spybot spawn #53358

Closed estebandellasilva closed 2 years ago

estebandellasilva commented 2 years ago

Describe the bug

Can the Hub01 Spybot spawn be toned down a lot? I get the idea behind them but they are litterly a reason as to why not do the hub 01 quests because they trash your whole gameworld.

I included a picture for reference.

Steps to reproduce

Do the Hub01 Quests Get overwhelmed with the hub01 spybot spawn

Expected behavior

Maybe limit spawning them to only when you do have a quest for hub01 running? because spawning them forever even if you arent doing quests for them seems annoying especially since they can draw aggro from zombies and lead them to you.

if you still gotta spawn them limit them to like max 1 per 2 days.

Screenshots

image

Versions and configuration

Additional context

I dont think they are generally a bad idea, but they are too many, like insane amounts of them and they are annoying as hell the more you play.

Proxima-b commented 2 years ago

WIll the destruction of hub01 resolve this issue ?

estebandellasilva commented 2 years ago

WIll the destruction of hub01 resolve this issue ?

I only do that to hotels or Forests, but i never checked

catdach commented 2 years ago

From digging through the spawn conditions for the bot, it looks like it's supposed to spawn one about 7-14 days after you talk to the terminal. so talking to the terminal basically gives you a debuff that pawns the thing. My guess is that it doesn't have a cap for how often it spawns in the 7-14 day window. Or there isn't a cap on how many times you can be given the debuff, so if you talk to the terminal a lot(even just to trade), you get another debuff. You might even get the debuff more than once per conversation with the terminal. It could even be a combination of all these things, I'm not sure, I honestly don't understand the code very well. Regardless its going to take a long time to trouble shoot.

John-Candlebury commented 2 years ago

Yeah unless theres some weirdness going on with stacking effects/EOCs the robots should only spawn for 14 days after interacting with the intercom, a camspy has a chance to spawn every two days, and at least one should spawn every seven days.

If you have more than one spawning in the same day, theres definitely some weirdness going on.

estebandellasilva commented 2 years ago

Whenever i visited i was trading with the intercom - often times multiple times as i could not carry all the loot and had to look up how much money they have so this could be a possible reason.

And as i said often times 2 or 3 Spybots would spawn very fast after each other

stale[bot] commented 2 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.

Ilysen commented 2 years ago

This happens because the surveillance EOC is run every time you open the services menu via [Identify yourself before the intercom.]. It functions by immediately spawning a camspy drone, then queueing itself to run again between 1 to 7 days from now, with the valid conditions either having the ancillary trait or having the surveillance effect itself (which is 14 days long when it's given to the player).

Since the EOC is run again each time you open the services menu, it'll spawn a camspy every time you do so. You can reproduce this by opening it a bunch of times on a debug world with no camspies visible, and rapidly accrue a bunch of the little buggers. A fix for this might be to use the recurring framework that now exists for EOCs, keep the existing activation conditions, and removing the self-queueing part entirely. Not sure if this is bad code smell, though.

After some testing, it appears that this also causes a new instance of the EOC to stack up on the player each time it's added, which can result in some truly hilarious outcomes like constant floods of camspies if you stack it enough times. This also means that just making it into an always-active recurring EOC won't fix the issue on existing saves - it'll just mean that they keep spawning at crazy frequencies for any character that already has the EOC whenever they have the surveillance effect, because even if you keep the deactivate_condition, it'll just deactivate every instance of the EOC instead of removing them like it does with ones that don't use the built-in recurrence system. cataclysm-tiles_RLpt9QjXO9