Normally they patrol a zone just as the zombies but they need to "see" the player for starting to "attack" him, not just basing on a simple range check.
Once they discover the player they can perform two different kind of behaviour with a frequency based on their "aggression" level:
They starts by checking a cover point from player. Once they reached the cover point they hide and after 1-2 seconds they start to shoot him.
They immediately starts to chase the player, or search for him if they do not directly see him.
Higher is the aggression level more frequently they will perform the behaviour "b".
Both types of enemy have at least 2 gameMachines for performing their actions, the first gameMachine is related to the locomotion system which works on the movement animations, on top of the locomotion system is the "logic" gameMachine which works on the decision to take in a given situation.
The enemyCharacter class specific parameters are the following: