Refactor this method, you have 4 comparisons. Also, you will be returning 0.5 if length and opacity, then you will return 0 if opacity, not sure but, wont you always return 0???

Also, for the last comparison, you're returning true if something and if everything fails return false mmm this have a lot of work, splitting into smaller methods, reviewing the conditions and returns