What if we allowed constant instance variables? Then you could have Player.ATTACKING, Player.CHASING as well as Enemy.ATTACKING, Enemy.CHASING etc. without spamming your global variables.
Alternatively you can just use strings like "attacking", "chasing", "hiding" etc. Javascript takes this approach, and while it's susceptible to typos, it works surprisingly well and has the added convenience you don't need to do anything to define a new enum.