Link to .capx file (required!):
https://iu.box.com/s/dxkwpmokj7fiz163lgenSteps 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.Observed result:
When a nested condition triggers, it picks whatever the parent picks, regardless of the nested condition that fires.Expected result:
The nested condition picks the objects, narrowing down what the parent picks.More info:
For those of you who can't go into the simple CAPX file provided, here's a quick screenshot of the issue:
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.Browsers affected:
Internet Explorer: yesOperating system & service pack:
Windows 8 Pro 64-bitConstruct 2 version: