I'm working on an 2D overhead topdown game in Unity3D and I want the enemies to have lots of diverse behaviours.
How should I design the architecture with this in mind?
For example I want:
A simple walking monster, which can move on walkable tilemaps, attack the player on sight.
A spider like creature, which jumps from wall tile to wall tile, and approaches the player in this manner.
I want a snail which walks on a route, and makes a trail (ie by flagging the tiles) behind itself, apart from this, it's unresponsive (like doesn't care if the player attacks itself)
A werewolf, which can smell the player from X tile away. (Like there is a walkable path to the player)
50 more unique behaviours...
Needless to say, I'm not talking about how to implement this, but how could I design a system which will be robust enough for this many behaviours, not really error-prone, low amount of code duplication, etc.
Thanks in advance!