can you explain a bit more about your logic how it should work? is hard to debug without looking at your project.
What your events do at the moment is
1-Pick all the "Empty" slots that are not "onlyonce" >>>> and set empty to false and onlyonce to true
The question is if you send one axe in the function why are you setting all the slots that picks the conditions? shouldnt you pick just one slot?
Check on the Debug and make sure there is at least one slot that have:
-Empty = true
-onlyonce = false
So the else can Run when the slotfull is = 6
If you still cannot find the issue share a small demo to look at it.