* Moves the decision of what attack is used next to CombatState and
defers selecting the attack until the player is actually ready to hit
their target for damage.
* Adds a distance check so combat is only initiated within the correct
range. If the player isn't close enough to their target, they will run
towards it and check every tick if they're close enough to make an
attack.