Link to .capx file (required!):
Steps to reproduce:
1. Create any Object: Pick condition (for example, Sprite: Is on-screen, or Sprite: X > 0)
2. Nest within the above event an OR block that picks the same kind of object that the parent condition picks (for example, Sprite: Y > 300).
3. Make some kind of action that verifies that picking was correct.
When a nested condition triggers, it picks whatever the parent picks, regardless of the nested condition that fires.
The nested condition picks the objects, narrowing down what the parent picks.
For those of you who can't go into the simple CAPX file provided, here's a quick screenshot of the issue:
<img src="http://cannedessence.com/construct2screens/orBlockBug.png" border="0" />
There are three root-level events, two of which are disabled. The two that are disabled work as expected, but the one that is not disabled is where the bug lies.
In the first root-level event, all Sprites on-screen should be picked, then only the ones that are less than 200 or greater than 400 should be picked. However, all of the Sprites on-screen are picked, as can be verified by the Debug text object.
The second root-level event is exactly the same as the first, except that it isn't nested within the arbitrary Sprite: is on-screen event, but for some reason it works as expected.
The third root-level event is exactly the same as the first, except that the parent event does System: Pick all Sprite instead of functionally the same condition in this case Sprite: Is on-screen. This one works as expected.
What truly verifies this as an OR block bug is that if you delete one of the conditions in the OR in the broken 1st root-level event, thus ridding the OR block, it works as expected.
Most revealing is that strangely, if you disable one of the OR block conditions, thus effectively nullifying the OR block, it is still broken.
Internet Explorer: yes
Operating system & service pack:
Windows 8 Pro 64-bit
Construct 2 version: