Lo haría con algún tipo de solución de árbol de comportamiento: su camino hacia la meta y tomar nota de todos los obstáculos que han estado bloqueando su A *. Si falla, verifica si hay objetos que pueden ayudar a superar esos obstáculos, en ese caso, el camino hacia ese objeto. Repetir. Esto significa que el agente debe tratar de llegar al objetivo y fracasar antes de tener la idea de usar herramientas, lo que puede llevar tiempo, especialmente si hay un gran mundo de mosaicos que todos deben verificarse. Sin embargo, podría no parecer demasiado fuera de lugar que el agente se tome un tiempo para contemplar cómo resolver el problema.
Sin embargo, puedo imaginar una solución real y dura. Agregue otra dimensión a su cuadrícula de búsqueda de ruta. Por lo tanto, en el caso de un mapa 2D, hace que la cuadrícula de trazado de ruta sea 3D. En este ejemplo simple, esta nueva dimensión solo tendría una profundidad de dos, pero en un juego real se haría grande rápidamente.
En z = 0 mapeas el terreno durante circunstancias normales, lo que significa que las baldosas de agua se consideran intransitables.
En z = 1 mapeas el terreno tal como está mientras tienes el rastrillo, lo que significa que las baldosas de agua se consideran transitables (pero si tienes, por ejemplo, baldosas de pared, esas podrían permanecer sólidas).
El hallazgo de la ruta es un A * ordinario en las dimensiones xey, lo que significa que se considera que cada celda de la cuadrícula tiene acceso a sus vecinos. Sin embargo, en la dimensión z, NO se permite que A * se propague.
Excepto donde está el rastrillo. El objeto rastrillo actúa como una abertura entre z = 0 y z = 1 en la cuadrícula de búsqueda de ruta.
Esto significa que el A * se inundará en z = 0, golpeará el agua y se quedará sin opciones; luego se extenderá a z = 1 a través del mosaico de rastrillo y en z = 1 (donde el agua es transitable) encuentra su camino hacia la meta. El efecto es que el PNJ sin dudar se mueve hacia el rastrillo, y luego mueve el camino más corto hacia la meta.