Couldn't you use VCE to check what kind of piece each was and then specify a movement range?
I think that would be possible.
Possible, but incredible hard.
Like
onActivate -> Getposition
Getpiece
If piece = [ .. ]
allow moves to [..]
end if
if any other pieces blocking
if friendly pieces
disallow moves to [...] (unless horse)
elseif enemy pieces
disallow moves but allow capturing
end
end
Not to mention all the checks that have to be done in order to make sure that your not moving into check / exposing a piece to check. Or moving outside the board.
Sure. It could be done. But the eventing would take ages, and (probably) be very buggy and laggy.