I think you can simplify that a bit. Maybe something like:
Code:
var total as number
total = 0
~Make sure at least two Combat Edges exist.
foreach pick in hero where "EdgeType.Combat"
total += 1
if (total >= 2)
validif (total >= 2)
done
endif
nexteach
~if we got here, we're invalid
if (@ispick <> 0) then
altpick.linkvalid = 0
endif
That "done" should get your dropped out of the code a lot quicker if it gets there. I'm also not sure you should bother including the whole "if (@ispick <> 0) then" section since is stays invalid unless it's forced valid by the validif line, but there could be some completely other reason for that of which I'm utterly unaware (which is entirely likely, mind you).