[B18] Pawns ignore allowed area restrictions under certain non-threat conditions

Started by Calahan, December 31, 2017, 08:15:42 AM

Previous topic - Next topic

Calahan

1.What the circumstances were. / 2.What happened.
Pawns are ignoring their allowed area restrictions under certain non-threat conditions.

3.What you expected to happen.
I expected Pawns not to ignore their allowed areas unless there was a threat or danger they were fleeing from/avoiding.

4. Simple reproduction steps:
A save can easily be provided if needed, but this issue is very quick and easy to reproduce from any new or current game.

1: Spawn some food outdoors on a single tile (or find a tile outdoors with some food on it).
2: Place a 1x1 allowed area on the above tile.
3: Assign a Pawn to that allowed area and wait for that Pawn to move there.
4: Order the Pawn to eat the food in the 1x1 allowed area.
5: Watch as the Pawn ignores the 1x1 allowed area and chooses a random nearby tile to eat the food from instead.


Notes and additional testing on this bug:

a - In step #5 the Pawn is not acting as if they are unrestricted either, as they don't choose to use any nearby tables in the area. They just choose a random tile. Which also means they are not overriding the allowed area to avoid a negative "ate without table" moodlet either. They are just ignoring the allowed area fullstop.

b
- This is not limited to just 1x1 areas. As for Test #2 I used half a screen full of food tiles (with matching allowed area coverage) and they still ignored the allowed area.

b1 - It's also not that the Pawn won't eat on an occupied tile either, as in Test #2 sometimes the "random tile" chosen by the Pawn was one of the tiles inside the allowed area. ie. a tile with food in it (which is likely due to the allowed area covering half the screen, thereby reducing the availability of empty tiles).

b2 - For Test #2a I added a single empty tile to the allowed area, with the expectation that the Pawn would always choose that empty tile to eat on, and so with it always respect their allowed area restriction. Surprisingly, they didn't always choose the empty tile, with the frequency of them choosing it being directly related to how close the food was they were told to eat. But secondly, the addition of this empty tile ensured the Pawn always respected their allowed area and never once ignored it. Not even when choosing to eat on the non-empty tile.


In Summary:

If there is even a single empty tile in the allowed area then the Pawn will always respect their allowed area (when choosing a tile to eat on), irrespective of anything else. But if there are no empty tiles then they will ignore their allowed area and just pick a nearby random tile (which may or may not be inside the allowed area if the allowed area is greater than 1x1).

Edit / Update. This only applies to outdoors, as if a Pawn is in a room then they will (according to my tests) never leave that room in regards to choosing a random tile to eat the food from. Which logic suggest is WAD. So a Pawn in a 1x1 room with food on the tile would stay in that room if told to eat it (regardless of any allowed area). So even if an allowed area was set that didn't include the room, they would still never leave the room before they finished eating. ie. Staying in the room trumps allowed area. Although I'm less certain that this last part is WAD (as maybe it would be more logical to expect the Pawn to take the food and then move to a tile inside their allowed area to eat it, rather than eating it first. But implementing that might be a lot of work for a very minor gain in some rare edge cases).


Personal view:

I don't think this issue is one that's going to occur too often during the course of "normal" gameplay (depending on how normal is defined of course). But while players usually accept and/or have no issue with randomness and exceptions to a point, ignoring allowed areas is likely a point that falls outside of this. As restrictions/allowed areas do suggest a black and white, non-grey area absolute. And while ignoring them in view of certain threats would be understandable, ignoring them for non-threats far less so.

And this isn't even an example of where Pawns are temporarily leaving an allowed area due to it being non-contiguous, which can be explained. As here they are just ignoring it because all the tiles are occupied. Although as Test #2a showed this factor appears to be irrelevant, meaning it's a lot harder for the player to simply "accept" Pawns ignoring their allowed areas (as it's due to an irrelevant factor).


Thank you for your time in reading this (rather lengthy bug report. And a lot of text for what is likely a rather minor bug/issue).