Some of the pool floats were damaged, which means that 120 / 4 = <<120/4=30>>30 pool floats were discarded.
This left the class with 120 – 30 = <<120-30=90>>90 pool floats that were actually part of the donations they need to organize.
This means there were a total of 60 basketball hoops + 90 pool floats + 50 footballs + 40 tennis balls = <<60+90+50+40=240>>240 donations that were not basketballs.
So out of the donations, there were 300 donations – 240 = <<300-240=60>>60 basketballs.
In addition, half of the basketball hoops were donated with a basketball included which amounts to 60 basketball hoops / 2 = <<60/2=30>>30 basketballs.
There was therefore a total of 60 + 30 = <<60+30=90>>90 basketballs donated.
#### 90