Hey Kurzidan,
In essence, you are right, if I understood you correctly.
The code, initially checks for any matching weapon type. Then when it found a matching weapon type, it proceeds to check if it has the right material type and then if it has already been sold. Once all of the requests are true, it will save the weapon in a variable which then is used throughout the other parts of the code. However, that block of "code" is pretty much all in the same line of "code". In UE4's Blueprint(which is what i'm using at the moment), i'd say "follows the same trail" if you get my meaning. So, although every second or so, its first checks to see if the weapon type exists, once the query result is true, it will then check the next query. If non is true, the Customer won't recognize the weapon as a valid weapon for him/her to purchase, because the weapon variable is not set.