[B18] Bug - with pics - Pawns not using the most efficient path when climbing

Started by Epishade, June 11, 2018, 02:28:33 AM

Previous topic - Next topic

Epishade

Hello.  The title somewhat describes the problem to an extent.  It's a bit more though.  Currently the game does not correctly check for a pawn's most efficient path if it involves climbing over objects using chairs/stools as a "step ladder".  They will actively take a route that takes longer to get to their destination than if they had just climbed over the object blocking them in the first place.  Some things first to know:

1. Pawns take an amount of time to "climb up" on top of an object.  After they are up, they can cross any adjacent objects (ie beds, workbenches, tables) without movement speed penalty.
2. Different objects take a different amount of time for the pawn to "climb up" on.  Chairs and stools take the least amount of time out of all objects in the game to climb.  Something like the high-tech research bench takes a much larger amount of time to climb.

You can use this knowledge to your advantage... sort of.  If a pawn climbs up on a stool/chair first and then crosses a research bench (or other object), they will take significantly less time than if they had just started by climbing the research bench itself.  The problem is that pawn pathing is not programmed to correctly take this extra bit of efficiency into account.  If a chair is placed next to a research bench, the pawn will actively avoid using the chair as a step ladder if ordered to climb over the bench (which would be faster) and will prefer to just climb up the bench itself.

Here's an example where, on the left, I forced a pawn to use the chairs as stepladders in order to climb the research benches by giving her no other option.  On the right, the pawn avoids using the chairs as stepladders, and instead prefers to jump down from each research bench after they're up, instead of using the adjacent chairs to stop them from having to climb up again.  If the pathing was written to be the most efficient, the pawn on the left should have taken a straight line, instead of avoiding the chairs like he has.
Example in pics 1 and 2: https://imgur.com/a/4sXA3Il

Pictures 3 and 4 are an actual example in my base where pawns not taking the most efficient path makes them considerably slower than they should be going through the room.

On the left, I manually ordered Webster onto the first research bench chair, and then ordered her into the room, which she did by climbing through the medical bed.  On the right, I simply ordered Kelvin into the room without telling him to get onto the research bench chair first.  You can see he takes a route through the standing lamp and vitals monitor and then climbs onto the medical bed to cross it, resulting in a much slower path.

Hoping this might be able to be addressed with 1.0.  Thank you.