I was just looking at the options available for defining win or loss conditions in Zillions-of-Games, and I think your best bet would be to use a conjunction of several absolute-config goals. If you make a zone of the entire board, and you check whether there is no instance of each piece type, you may be able to check whether the board is free of royals or free of non-royals. Here's an example of how this might work for one piece:
I have not tested this or worked out how the whole condition would work. So, just think of this as a lead and do some more investigating. Since you have two main conditions, your entire win or loss condition would have to be a disjunction. I have not tested whether disjunctive goals will work. Also, you should figure out whether it will work best as a loss condition or as a win condition. Either one will do, and you don't need both.
I was just looking at the options available for defining win or loss conditions in Zillions-of-Games, and I think your best bet would be to use a conjunction of several absolute-config goals. If you make a zone of the entire board, and you check whether there is no instance of each piece type, you may be able to check whether the board is free of royals or free of non-royals. Here's an example of how this might work for one piece:
(absolute-config (not (any-piece Knight)) (board-zone))
I have not tested this or worked out how the whole condition would work. So, just think of this as a lead and do some more investigating. Since you have two main conditions, your entire win or loss condition would have to be a disjunction. I have not tested whether disjunctive goals will work. Also, you should figure out whether it will work best as a loss condition or as a win condition. Either one will do, and you don't need both.