Не пойму почему валидатор принял такое решение. При этом вывод получился таким: null атаковал робота null, атакована рука, защищена нога null атаковал робота null, атакована нога, защищена грудь null атаковал робота null, атакована грудь, защищена null null атаковал робота null, атакована null, защищена null null атаковал робота null, атакована null, защищена null null атаковал робота null, атакована null, защищена null null атаковал робота null, атакована null, защищена null null атаковал робота null, атакована null, защищена null Подскажите что нужно изменить, чтобы отображалось корректно?
public class Solution {
    public static void main(String[] args) {
        Robot amigo = new Robot("Амиго");
        Robot enemy = new Robot("Сгибальщик-02");

        doMove(amigo, enemy);
        doMove(amigo, enemy);
        doMove(enemy, amigo);
        doMove(amigo, enemy);
        doMove(enemy, amigo);
        doMove(amigo, enemy);
        doMove(enemy, amigo);
        doMove(amigo, enemy);
    }

    public static void doMove(AbstractRobot robotFirst, AbstractRobot robotSecond) {
        BodyPart attacked = robotFirst.attack();
        BodyPart defenced = robotFirst.defense();
        System.out.println(String.format("%s атаковал робота %s, атакована %s, защищена %s",
                robotFirst.getName(), robotSecond.getName(), attacked, defenced));
    }
}
public abstract class AbstractRobot implements Attackable, Defensable{
    private static int hitCount;
    private String name;
    public String getName() {
        return name;
    }
    public BodyPart attack() {
        BodyPart attackedBodyPart = null;
        hitCount = hitCount + 1;

        if (hitCount == 1) {
            attackedBodyPart = BodyPart.ARM;
        } else if (hitCount == 2) {
            attackedBodyPart = BodyPart.HEAD;
        } else if (hitCount == 3) {
            attackedBodyPart = BodyPart.CHEST;
        } else if (hitCount == 4) {
            hitCount = 0;
            attackedBodyPart = BodyPart.LEG;
        }
        return attackedBodyPart;
    }

    public BodyPart defense() {
        BodyPart defencedBodyPart = null;
        hitCount = hitCount + 2;

        if (hitCount == 1) {
            defencedBodyPart = BodyPart.HEAD;
        } else if (hitCount == 2) {
            defencedBodyPart = BodyPart.CHEST;
        } else if (hitCount == 3) {
            defencedBodyPart = BodyPart.LEG;
        } else if (hitCount == 4) {
            hitCount = 0;
            defencedBodyPart = BodyPart.ARM;
        }
        return defencedBodyPart;
    }
}
public class Robot extends AbstractRobot {
    private String name;
    public Robot(String name) {
        this.name = name;
    }
}