-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consoles for MISSION_SCIENCE_REP_3 spawn in refugee center #49106
Comments
Hmm, I can't find any overmap specials (in json or c++) that can generate the "basement_hidden_lab_stairs" OMT needed for this mission. That sounds like the root cause of the bug. Now I guess I'll have to dig through the code history to find out when and why that happened. |
As far as I can tell hidden lab basements were still working at the time of #37939 in February 2020. But #39198 removed all basement conversions (as obsolete). As a result, since April 2020 there haven't been any more basement_hidden_lab_stairs generated in the game world. Now I see 2 possible solutions:
|
Tagging in @Venera3 who seems to be an expert on overmap specials. Could you offer any advice about the proposed solutions? In particular, is it possible to create an overmap special that has a chance to replace one specific OMT with another OMT (e.g. basement -> basement_hidden_lab_stairs)? |
Note that you could also copy house_31 and house_32 and have the copied versions be the ones with basement_hidden_lab_stairs, with the total rates of occurrence of these left unchanged. |
I dug into it briefly while fixing some other mission weirdness. There's a way to essentially unhardcode that whole questline, doing away with a lot of JSON mission starts can search for a set terrain tile, update it with a new map tile or nested mapgen and even spawn a fitting overmap special, so theoretically one could just throw out all that hardcoded stuff and redo them using that system. They could even point at the more common microlabs, or show off tower labs while we're at it. |
Regarding un-hardcoding specials - @Night-Pryanik? |
I always support de-hardcoding stuff. It's just really time-consuming work. |
Ok, I've started working on this. Going to try implementing the hidden lab as a map special using only JSON, but I can tweak the C++ code too if necessary. I must say that both https://github.com/CleverRaven/Cataclysm-DDA/blob/master/doc/MAPGEN.md and the code itself are very confusing in terms of figuring out how map special placements are validated, especially for "connections". Also terms like "terrain" and "location" seem to be used inconsistently. Please check out #49230 if interested. |
I've just experienced it on F-stable version of the game. But Im playing my save file exported from E-2 stable version of the game, maybe it is important |
Ok, I can confirm that this is broken on 0.F with a newly generated map and no mods. It's broken in a different way compared to last time. The hidden lab does spawn, but for some reason the mission code is unable to find it. Here's a save file. Talking to the doctor and asking for the next mission triggers the bug. The closest hidden lab is at -1,169 x 67. |
@ZhilkinSerg Could you please reopen this issue? |
This is my safe, it has 2 consoles spawned near Refugee Center entrance and mission pointer points to a clear field, there are no buildings around |
Created #49957 to fix this again. If you're playing 0.F you won't be able to get the fix until the first patch release. |
Describe the bug
The 3rd mission for the refugee center doctor ("Download Encryption Codes", a.k.a. MISSION_SCIENCE_REP_3) tasks you with finding and hacking some console in a hidden underground lab. The mission marker points you to an underground tile in a nearby lab (usually the same lab where you did "Download Workstation Data" a.k.a. MISSION_SCIENCE_REP_2) but the consoles spawn right outside the front entrance to the refugee center.
Steps To Reproduce
As an alternative to steps 1-4, load this save: DebugWorld2.zip
Expected behavior
Screenshots
Versions and configuration
Dark Days Ahead [dda],
Disable NPC Needs [no_npc_food]
]
Additional context
The next mission, which sends you to the nearest ice lab to hack yet another console does appear to be working properly (more-or-less, I found the console 1 room below the quest marker).
Unrelated: The screenshot shows the mercenary spawning in the locked room with the doctor, I guess you'd need a blowtorch to get them out after recruiting, but that's a separate issue.
I might have a go at fixing this. I noticed that create_hidden_lab_console() in mission_start.cpp doesn't use overmap_buffer.find_closest like the other 2 (create_lab_console, create_ice_lab_console) so I could try changing that to see what happens.
The text was updated successfully, but these errors were encountered: