Dwarf Fortress

Dwarf Fortress

water inertia
I see dwarfs get pushed by 1-2 deep water but they don't move at all in 7/7 water. do water currents or inertia not exist. I'm really sad that the dwarfs don't get flushed out of my water pipe before drowning.

Is this because water isn't moving in 7/7 blocks? is it simplified to just the end?
< >
Showing 1-9 of 9 comments
Fel Aug 9, 2023 @ 7:22pm 
Water can definitely be moving and at 7/7 but it tends to not affect dwarves much if at all (it does work for waterwheels for example).

Not sure if it makes sense but the way I think about it (to get my head around it since it makes little sense as you have seen) is that dwarves are small to it's the waves at the surface of the water that pushes them rather than the current that's lower.
its also a psychology thing, are they going to stay in the same block until they drown?
Fel Aug 9, 2023 @ 7:39pm 
Well, when there is a clear path to get out they can try to swim there.

The problem usually is that if they fall into water they start as "stunned" and if it's deep enough for them to drown they quickly enter the "drowning" status.

If they are not drowning they can usually be saved (or save themselves) but once they start drowning it's usually quickly followed by death.

Usually you try to avoid situations where they ever go into water in the first place, or alternatively "teach" them the swimming skill to give them a significantly better chance at not drowning (and at moving faster when in water).
I know there is path difficulty. why isn't that applied to water? upstream is much more difficult. it might be why they couldn't make it out.
Fel Aug 9, 2023 @ 7:45pm 
Deep water (more than 4/7 I think it is?) applies a pretty big speed debuff that is only countered by the swimming skill.
Most dwarves will take a long time moving even a single tile in deep water, which adds to the whole "already drowning".
Other Aug 9, 2023 @ 7:57pm 
Water flow (as opposed to the tile state "flowing water"), mostly does not happen in 7/7 water. As a simplification, if water is trying to "fall" into a tile of 7/7 water, it gets teleported to an empty tile on the new level (or lower) that has less than 7/7 water and can be reached passing (orthogonally only) through only 7/7 tiles from the one it was on top of. Logically, this should produce a current in all the tiles it passes through, but that is part of what was discarded to keep things simple. The fact that the teleported tile must be at least one level lower than the source tile is why water does not rise all the way to the top on the far side of a U-bend, and the "orthogonal only" requirement is why a diagonal-only section of pipe resets water pressure.

In addition to the teleporting behaviour, water also tries to spread out on the level it is currently on, so a 3/7 tile next to a 1/7 tile will become two 2/7 tiles, and a 3/7 tile surrounded by 2/7 tiles may randomly wander onto one of them. This sort of spread does move objects and creatures around, and does work diagonally.

The "flowing water" tile state required for water wheels to work (and which affects the animation of the tile) either requires a recent instance of water moving down to an adjacent tile with less water, or requires a continuous water path of at least 1/7 depth from the tile to a water sink (either the map edge or the top of an aquifier).
RadCon One Aug 9, 2023 @ 8:22pm 
Originally posted by Other:
Water flow (as opposed to the tile state "flowing water"), mostly does not happen in 7/7 water. As a simplification, if water is trying to "fall" into a tile of 7/7 water, it gets teleported to an empty tile on the new level (or lower) that has less than 7/7 water and can be reached passing (orthogonally only) through only 7/7 tiles from the one it was on top of. Logically, this should produce a current in all the tiles it passes through, but that is part of what was discarded to keep things simple. The fact that the teleported tile must be at least one level lower than the source tile is why water does not rise all the way to the top on the far side of a U-bend, and the "orthogonal only" requirement is why a diagonal-only section of pipe resets water pressure.

In addition to the teleporting behaviour, water also tries to spread out on the level it is currently on, so a 3/7 tile next to a 1/7 tile will become two 2/7 tiles, and a 3/7 tile surrounded by 2/7 tiles may randomly wander onto one of them. This sort of spread does move objects and creatures around, and does work diagonally.

The "flowing water" tile state required for water wheels to work (and which affects the animation of the tile) either requires a recent instance of water moving down to an adjacent tile with less water, or requires a continuous water path of at least 1/7 depth from the tile to a water sink (either the map edge or the top of an aquifier).

It would be nice if each water tile had its own flow vector associated with it so that movement of objects could be simulated. I understand it would add more things for our CPUs to calculate / keep track of every second, but it would be nice to be able to watch systems flush themselves without having to pull tricks to get it done. The teleporting is fine, as that only effects fluids themselves that are added, and 1 tile of water is no more distinguishable than another, but a flow vector is needed so that other objects in the water know where to go.
Last edited by RadCon One; Aug 9, 2023 @ 8:25pm
Fel Aug 9, 2023 @ 8:33pm 
In the "interview" from blind a few months ago toady said he wanted to eventually fix the water, meaning no more "corner resets presure" but also no more "instant flooding of the whole map".

In order for it to work properly you would need water flows to be known, one way or another.
So it would probably be able to move items and entities.

It's a "maybe in a distant future" kind of thing though.
Originally posted by Fel:
In the "interview" from blind a few months ago toady said he wanted to eventually fix the water, meaning no more "corner resets presure" but also no more "instant flooding of the whole map".

In order for it to work properly you would need water flows to be known, one way or another.
So it would probably be able to move items and entities.

It's a "maybe in a distant future" kind of thing though.
That's something I could definitely get excited for
< >
Showing 1-9 of 9 comments
Per page: 1530 50

Date Posted: Aug 9, 2023 @ 7:14pm
Posts: 9