ludica-squamata / mano-gift

Proyecto de engine para el juego, usando pygame.
0 stars 0 forks source link

Agregar una postura social #131

Open danielrossyamitrano opened 6 years ago

danielrossyamitrano commented 6 years ago

El botón Acción distingue dos modos: si se está en postura de combate, el mob ataca. De otro modo, la interacción con lo que el mob tiene en frente depende de lo que sea: si es otro mob, intenta hablar con él; si es un prop interactuable, intenta usarlo (sea agarrarlo u operar con él), y si no, lo examina. Sin embargo, ocurre un problema: si el objeto de interacción (mob o prop) está cerca de otro objeto de interacción, el engine no sabe qué hacer primero e intenta ejecutar ambas acciones simultáneamente (examinando un prop y hablando con otro mob a la vez). Para solventar esto, propongo agregar un stance nuevo, diferente de "combate", al que llamaría "social". En él, Accion sólo se utilizaría para hablar (se me ocurre incluso "hablar con tap, gritar con hold"). Esto nos dejaría con tres posturas: combate, en la que Acción significa "ataque"; exploración, en la que Acción depende del objeto (agarrar, operar, examinar); y social, en la que Acción significa hablar. Se podría agregar una stance adicional magia, en la que Acción significa lanzar un conjuro, pero eso ya es territorio de otro issue.

danielrossyamitrano commented 5 years ago

También se podría dejar la puerta abierta para que el modder agrege las stances que necesite.

danielrossyamitrano commented 4 years ago

Este issue está relacionado con el #134

danielrossyamitrano commented 3 years ago

Una forma de solucionar este issue sería que la AI del héroe tomara sus propias decisiones. Hace rato que vengo pensando en un Behaviour Tree que tome inputs del player para seguir sus branches, pero no lo hice todavía porque no sé como implementar eso.

danielrossyamitrano commented 2 years ago

Otra solución a este problema es tomando como ejemplo el mundo real. Es mucho menos probable que te agaches a ver un objeto si hay una persona al lado.