was wondering if there was a specific reason why you kept calling get component say attacker/ animator in the if statements (that are continuously checked, rather than caching the reference in start, eg.
private Animator animator;
animator = GetComponent();