@Override
    public void moveInto(GameEntity target) {
        if (target == GamePanel.get().getPlayer()) {
            // Only attack the target if it's the GamePanel.get().getPlayer()
            ((Actor) target).applyDamage(attack((Actor) target), this);
        } else {
            // Else, try to move around the obstruction
            int dx = target.getX() - getX() + (Math.random() > .5 ? 1 : -1);
            int dy = target.getY() - getY() + (Math.random() > .5 ? 1 : -1);

            int ddx = dx > 0 ? 1 : dx < 0 ? -1 : 0;
            int ddy = dy > 0 ? 1 : dy < 0 ? -1 : 0;

            int direction = facings[ddx + 1][ddy + 1];
            if (!GamePanel.get().getCurrentDungeon().getCurrentMap()
                    .wallAt(getX() + ddx, getY() + ddy)) {
                move(direction);
            }
        }
    }