@Override
    public boolean isInsideCircle(int cX, int cY, int rad, FieldObject fo) {
        int dx = cX - fo.getX();
        int dy = cY - fo.getY();
        
        boolean insSq = Math.abs(dx) <= rad && Math.abs(dy) <= rad;
        if (!insSq) { return false; }
        if (dx * dy < 0) { return true; }
        
        int stX = Math.max(cX - rad, 0);
        int stY = Math.max(cY - rad, 0);
        
        int diagX = fo.getX() - stX;
        int diagY = fo.getY() - stY;
        return (rad <= diagX + diagY) && (diagX + diagY <= 3*rad);
    }