Describe the bug
Security Bots spawning in lab on computer check failure is bad gameplay mechanics.
To Reproduce
try to hack computers. Fail.
https://youtu.be/ZBK33SpfrtI?t=2879
Expected behavior
Not have instant, unrecoverable death for a mid game play-through. Even the bone juggernauts and grenadiers are survivable (if sometimes you need some luck); this isn't.
Screenshots
https://youtu.be/ZBK33SpfrtI?t=2879
Versions and configuration(please complete the following information):
Additional context
https://github.com/CleverRaven/Cataclysm-DDA/blob/93d2b034f5e421a2952608e01c491cac97bf337c/src/mapgen.cpp#L7583
and related other lines (i think, my cpp is about 20 years rusty, but the context looks right)
I saw that too on Vormithrax playthrough. And I must agree - that is a bit too much. A few manhacks falling from the ceiling is ok, but sudden appearance of a bot or turret next to you without a warning or previous knowledge that that might happen, and where might it happen is realy terrible. Not to mention - where would there be a room/space for such big robots? Ceiling and floor on multi level labs would not, unless there is an assumption, that the levels are separated by a large amount of ground in between.
Security measures are introduced to deter thieves, trespassers, etc. - if potential thieves know of the danger, they are less likely to attempt theft. Following this logic its always good to inform and warn: "No fiddling or else!"
@BrianLefler, since you are our beloved lab-guy, can you perhaps consider one or more of these options, please:
This is the action in question:
It's used on computers in a few places in the lab (primarily the finale), and in one missile silo layout:
https://github.com/CleverRaven/Cataclysm-DDA/search?q=secubots&unscoped_q=secubots
No wonder the player @yarbelk linked to wouldn't have expected this. It's a failure mode that's only implemented in a handful of places.
I also think that the secubot itself is fine, but it should spawn from somewhere instead of appearing out of thin air next to the player.
I like the place them in something and release them upon fail. I'm thinking fallout protectrons here.
I like most of @nexusmrsep's suggestions. This one in particular:
place a warning sign in the room and/or in the terminal that the room is protected.
I would strongly encourage actually putting a warning in the terminal itself before the user decides to take the action. This is an entity that can very, very easily end a run. We should be hitting a user over the head with warnings, much in the same way that this would be implemented in the real world.
I really like those suggestions; they convey the potential doom prior to the action. The bots not bad per-say, but rather its the combination of surprise and lack of agency that really causes the problem.
I also like that your suggestions make use of a clear design language that is common in most media (danger colours, doors with warnings, countdowns): this should really help ratchet up the anxiety without removing all options out except RNG.
From an implementation standpoint, a very quick change would be:
1) Allow a custom json-specifiable msg to replace "ERROR! Access denied!"
2) Change COMPFAIL_SECUBOTS to place the spawned secubot on a red floor tile if it exists.
3) Update the ~15 existing places that have a secubot failure to include a new error msg like "ERROR! Access denied! WARNING: Secubot protection!" and a nearby red floor tile if the map permits.
That would not prevent someone from adding secubots as a failure mode without adding warnings, would not break mods, and would not add any complexity to computer.cpp. So pros and cons.
Well, going into an evil government lab unprotected knowing there are still powered robots and having no way to deal with them except one EMP and messing with a terminal specifically placed for access to a vault wasn't a good idea. +I would give it a run over the terminal, given possible speed advantage and a chance to dodge or survive one hit it might have worked. Well, who knows now...
At the same time time points outlined seem to be very correct and don't seem to make sense from the realism point of view. As a guy designing an evil lab I would put a lockdown on the place, fire an alarm over the whole lab or to security officers specifically and probably would despatch security bots either from remote location or from would activate turrets in this room that were already around but dormant. Or put active ones at the first place. Bot with a machinegun appearing out of nowhere seems kinda out of place and even reduces immersion.
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.
If we still insta-spawn bots on computer failure, then I feel this issue of providing ample warning to the player is still relevant.
Most helpful comment
I like most of @nexusmrsep's suggestions. This one in particular:
I would strongly encourage actually putting a warning in the terminal itself before the user decides to take the action. This is an entity that can very, very easily end a run. We should be hitting a user over the head with warnings, much in the same way that this would be implemented in the real world.