Dwarf Fortress Bug Tracker - Dwarf Fortress
View Issue Details
0010681Dwarf FortressDwarf Mode -- Environmentpublic2018-03-30 16:182021-09-16 07:30
PatrikLundell 
 
normalminorhave not tried
newopen 
PCWindows10.1
0.44.05 
 
0010681: Smash & Grab Adamantine Mining attempt causes hell to be unleashed outside of hell, with no reveal
I tried to be clever and use cave-ins of cast obsidian to smash into the top of adamantine spire such that they should land on top of the spire if the layer below is solid (and can be mined safely) or smash through the roof of the spire to reveal hell but immediately plug the hole created by the top of the cave-in block.
The cave-in phase worked technically: the block smashed through the roof of the hollow, landed on the rim of the level below, and sealed the hole, but without hell being revealed.
I then dug out the corner tile rendered safe by the obsidian plug inside of it, but as soon as that was done, the hell reveal message appeared (screams, etc), but instead of revealing anything the army that usually spawn below the spire was spawned outside of it. adjacent to the tile just dug out.
Engineer a cave-in that smashes through the roof of the hollow part of an adamantine spire such that the cave-in seals the break. Channel out an adamantine tile of the outside of the hollow tube, but sealed by the cave-in plug in the inside.
I have a save before the lever to release the cave-in was pulled and copied it over to 0.44.08 and repeated the lever pull/mining. As expected, the behavior was the same.

My save is too large for DFFD, but can be found here: https://www.dropbox.com/s/ks086w6nppz6i2h/region6%20Smash%20and%20Grab.zip?dl=0. [^] I can also provide the save before the lever is pulled if desired.

The game was generated with 0.44.X and has been ported at least once, but it might be between LNP versions rather than DF versions.
The current version is LNP r03 using the Phoebus tile set. Raws have been modified to lower (semi)megabeast attack triggers as well as civilization siege triggers. Goblins have been set to start only on glaciers. The PSV world was DFHacked during world gen to make all plants/creatures legal to each surface biome present in them, all glaciers were set to Evil, and playable (i.e. dwarf) civs that ought to be dead were slabbed. At pre embark, dead playable civs were made available for embark, and one such civ was selected. Later the save has been raw hacked with Orkel's booze syndrome work around and banana trees have been set to yield wood, as they won't appear on the embark without it (separate report). I don't expect any of this to affect the issue, though.

No tags attached.
Issue History
2018-03-30 16:18PatrikLundellNew Issue
2018-03-31 03:53PatrikLundellNote Added: 0038091
2018-03-31 08:05FantasticDorfNote Added: 0038093
2018-03-31 10:15PatrikLundellNote Added: 0038096
2018-03-31 10:38PatrikLundellNote Edited: 0038096bug_revision_view_page.php?bugnote_id=0038096#r15492
2021-09-16 07:30QuietustNote Added: 0041147

Notes
(0038091)
PatrikLundell   
2018-03-31 03:53   
Additional investigation results:
Engineering the cave-in, but reveal Hell after that using a "normal" method (carved fortification) revealed Hell and spawned the legion in the normal fashion. It was then possible to mine the secured part of the adamantine sheath without any issues or events. Thus, it seems the logic assumes biting into the sheath reveals Hell and thus allows for placement of the legion in the normal fashion, but when Hell isn't actually revealed, legion placement favors placement of the legion in visible tiles over placing them where they would be placed normally (which would be in unrevealed areas).
(0038093)
FantasticDorf   
2018-03-31 08:05   
Similar to PatrikLundell I would say the method of incurring the cave in is a similar event to a magma piston's teleportation of liquids which it has landed upon which are forcefully teleported to the top, except the legion's spawning space implicitly is in the area surrounding the adamantine undergoing the same effect.

( http://dwarffortresswiki.org/index.php/DF2014:Magma_piston [^] )

It remains to be seen hypothetically whether it can move other implicit features like muddy ponds, seas & rivers with unique worldgen only ground tiles which activate and fill with rain as a extension for the capability of this bug by just transferring the area space.
(0038096)
PatrikLundell   
2018-03-31 10:15   
(edited on: 2018-03-31 10:38)
I don't think FantasticDorf is correct here. Cave-ins are instantaneous, and nothing is teleported or moved here (apart from the cave-in obsidian). The instantaneous movement of the obsidian and fusing with the roof means that there is never an instant where Hell is actually breached, so the breaching even and message isn't triggered by it. At the same time, the Wail event is triggered by biting into the adamantine sheath around the hollow part of the pillar. Normally, this biting will trigger both events, but when a cave-in has been used to block part of the interior of the sheath, the Wail event doesn't have any revealed space in Hell in which to spawn the legion, and tries the next best thing (which nevertheless is far superior to a crash).
A cave-in on top of a muddy pond ought to just destroy the pond feature in the same way as when you floor it over (remove the floor and you have normal ground that supports plants, but does not accumulate rain water), not teleport it to the top of the cave-in rock (which would have to be cast obsidian, as you can't find any ponds with rock above them). When you smash obsidian into the top of a hollow spire the roof material becomes obsidian, not the smashed away adamantine.

Edit: I have to pull the save from dropbox to make room for one that's probably more important (and this issue probably doesn't need a save anyway), namely a Nemesis Id Load crash.

(0041147)
Quietust   
2021-09-16 07:30   
What's happening here is that DF keeps track of all of the map tiles located inside the "deep special tube" features, and when one of them is revealed it triggers the "screams" event and spawns all of the demons.

The problem is that it seems to spawn them all around the bottom-most revealed tile it finds - under normal circumstances that will be at the very bottom of the tube (since the entire thing will be revealed all at once), but in this case it spawns them directly in front of the miner that broke through.

Possible improvements:
1. Spawn demons at the bottom-most tube tile regardless of whether it's revealed.
2. Only allow discovered tube tiles to trigger the "screams" event if they are open - if they've been filled in with solid material, just erase them from the list. This would allow "smart" players to work their way further down and get more adamantine, but it wouldn't save them when they finally break through to the Underworld.