Serious refactoring, moved game state out into a seperate object, created HeroStateService for isolating control of stats and so on from the hero's AI.