CharacterStateController
Responsibility: to identify
character states, initialized in BattleController
It has a bunch of dependencies, like HealthProvider,
DistanceProvider, etc.
There’s a specific controller for each state in the constructor to create state
controllers.
Every frame the Battle controller calls Calculate(), inside method based on the amount of
health or distance to the opponent character, etc.
class determines whether the character’s state should
change or not