So the question is kinda broad, but the specific thing I wanna know is this :
I have a base Enemy class, and EnemySniper, EnemyPistol etc inheriting from it.
and I use FSM to manage the states. Now the thing is I want my enemies to have different behaviours in states, like enemyPatrol to be smoking in idle state, but enemySniper to be whistling for example.
I did this by implementing ISmoke and IWhistle interfaces to child enemy classes, so when I call an Idle method from Base Enemy class, In the child class it will override it to be whistling etc.
Now my problem is that, I dont want all my enemyPistols to whistle in idle state, or snipers to smoke. I wanna have variety between all of them, some enemyPistols can would smoke, some would whistle, some would talk etc. I dont know how to do this with good code, anybody can give me an idea on how to achieve this?